Primero, si buscan los templates para
desarrollo wap en visual studio 2010 notaran que ya no existen. Los
componentes aun vienen pero la gente de microsoft argumenta que ya no
tiene sentido incorporar al IDE los mismos, o disponibilizar
templates dado que es un tipo de desarrollo obsoleto.
Cualquier dispositivo móvil moderno
soporta html básico, el soporte para desarrollo WAP no parece ser
una necesidad.
Esto es casi cierto, me ha tocado
desarrollar una pequeña aplicación para dispositivos móviles, y
los dispositivos móviles no soportaban html, solo WAP.
¿Como podemos encarar este desarrollo?
¿Sera necesario instalar un viejo
Visual Studio 2003?
No necesariamente, veamos los pasos
para un efectivo desarrollo.
1.Descargar templates
Primero tenemos que descargar los
templates para forms WAP, estos template pueden ayudar, se pueden
descargar de aquí:
Luego descomprimir y seguir las
instrucciones, las cuales básicamente dicen de colocar los templates
en la carpeta
[My Documents]\Visual Studio
2010\Templates\ItemTemplates\Visual C#
o si prefiere
C:\Users\FulanoDeTal\Documents\Visual
Studio 2010\Templates\ItemTemplates\Visual Web Developer
2.Si todo fue bien cree una Aplicación
WEB ASP.NET vacía
3.Luego Agregar->Nuevo elemento y
seleccione Mobile Web Form.
Ahora tenemos nuestro mobile web form,
el cual vamos a editar y efectivamente puede ser accedido desde
equipos que solo manejan WAP.
La mala noticia:
No estará disponible el diseño
visual.
La buena noticia:
Tampoco es estrictamente necesario, la
interfaces WAP son tan pobres y la cantidad de componentes tan pocos
que no debería quitarnos el sueño no tener el tan cómodo diseñador
visual, especialmente para quienes no son totalmente del palo web.
4.Diseñar
Bien, como dijimos no tenemos diseñador
visual, ¿Como hacemos?
Bueno ayudarse con el asistente de VS
para ir armando el formulario, es muy similar a un formulario html.
Colocar el carácter “<” escribir “mob” y alli aparecerán
las opciones de componente, como es de esperar muy pocos pero
suficientes para lo que tenemos que hacer, que también seguramente
sera muy simple (No se le puede pedir mucho a una aplicación WAP).
Recordar agregar las referencias al
asembly con los componentes mobile...puedes usar con copia local si
te trae problemas
El código abajo
muestra como quedaría el formulario. Observe que he creado dos
textbox, los he identificado como Runat=”Server”, les he puesto
un ID como corresponde y otras propiedades adicionales cuando fue
necesario.
También puse un
command, algo asi como el botón de asp.net en webforms, he declarado
también y codificado la función DoClick y se la he asignado al
OnClick del comando. Si no me he equivocado con los nombre cuando se
haga click sobre el boton se deberia ejecutar mi evento DoClick. A no
tener miedo de usar los textbox del lado servidor, ya están
disponibles como indica el código.
<%@
Page
Language="C#"
AutoEventWireup="true"
Inherits="WAPTEST.WAPLogin"
Codebehind="WAPLogin.aspx.cs"
%>
<%@
Register
TagPrefix="mobile"
Namespace="System.Web.UI.MobileControls"
Assembly="System.Web.Mobile"
%>
<html
xmlns="http://www.w3.org/1999/xhtml"
>
<body>
<mobile:Form
id="Form1"
runat="server">
Usuario:
<mobile:TextBox
Runat="server"
ID="tbUsuario"></mobile:TextBox>
Password:
<mobile:TextBox
Runat="server"
ID="tbPassword"
Password="True"
></mobile:TextBox>
<mobile:Command
ID="btnAceptar"
Runat="Server"
OnClick="DoClick">Aceptar</mobile:Command>
</mobile:Form>
</body>
</html>
using
System;
using
System.Collections;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Web;
using
System.Web.Mobile;
using
System.Web.SessionState;
using
System.Web.UI;
using
System.Web.UI.MobileControls;
using
System.Web.UI.WebControls;
using
System.Web.UI.HtmlControls;
namespace
WAPTEST
{
public
partial
class
WAPLogin
: System.Web.UI.MobileControls.MobilePage
{
protected
void
Page_Load(object
sender, EventArgs
e)
{
}
protected
void
DoClick(object
sender, EventArgs
e)
{
//Codificar
aca....
//Se
tiene acceso a los controles sin problemas por ej.
//string s = tbUsuario.Text; es perfectamente posible.
}
}
}
Aca el resultado en un navegador
Aca en un navegador wap