martes, 25 de septiembre de 2012

Desarrollo WAP en Visual Web Developer 2010


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






















No hay comentarios:

Publicar un comentario