Blog de Francisco Velázquez

otro blog personal

Posts Tagged ‘mobileweb

ASP.NET4 y MobileCapabilities

leave a comment »

Parece que en la nueva versión del framework han realizado algunas modificaciones BrowserCapabilities, para adaptarse al mundo móvil y permitir usar diferentes repositorios de capabilities, por ejemplo, WURFL.

HttpCapabilitiesProvider.
– HttpCapabilitiesEvaluator.

En la librería de 51degrees ya hacen uso de ella.

PS. Algo que debería haber publicado antes 😛

Advertisements

Written by fravelgue

February 13, 2011 at 11:22 pm

Posted in development

Tagged with , , ,

Consultar el próximo bus en Sevilla (Tussam)

with 2 comments

Con la ayuda de un emulador de java, mi querido Fiddler, y 30 líneas de HTML/JS puedo consultar cuando llega el bus sin depender de aplicaciones iphone.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title></title>
    <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;">
     <style type="text/css">
    </style>
    <script language="javascript" >
        //http://www.infobustussam.com:9001/services.aspx?c=e&p=541&l=B5&v=1.3&k=0FE0D568420E1E27DC44BFDC210C84B2
        function createLink() {
            var l1 = "http://www.infobustussam.com:9001/services.aspx?c=e&p=",
                l2 = "&l=",
                l3 = "&v=1.3&k=0FE0D568420E1E27DC44BFDC210C84B2";
            document.getElementById("search").href = l1 + document.getElementById("tbxStop").value + l2 + document.getElementById("tbxLine").value + l3;
        }

    </script>

</head>
<body>
    <h1>Tussam - Bus Sevilla</h1>
    <label>Línea: </label><input type="text" id="tbxLine"  onchange="createLink()"/> <br />
    <label>Parada: </label><input type="text" id="tbxStop" onchange="createLink()" style='-wap-input-format: "NNN"' /> <br />
    <a href="" id="search">Buscar</a>
</body>
</html>

Written by fravelgue

February 11, 2011 at 9:56 pm

Posted in mobile

Tagged with , , ,

Gestión de sesiones en ASP.NET para Mobile Web

with 2 comments

Cuando se realiza un desarrollo de Mobile Web nos enfrentamos con unos problemas y algunas ventajas con respecto a la web de escritorio. En este post vamos a ofrecer una mejora en el gestor de sesiones web de ASP.NET.

La mayoría de los problemas que se nos presentarán, vienen por los WAP proxies que instalan los operadores o bien por otros transcoders externos como los de Google. Uno de los problemas que se presentan es que algunos no soportan cookies y por lo tanto nuestras sesiones se pierden.

Sin embargo, como hemos dicho no todo son problemas también tenemos herramientas de identificación de usuario y demás sistemas de cobro integrados con la factura de teléfono. Estos servicios pueden ser ofrecidos por los propios operadores o por diversos agregadores. La mayoría de estos sistemas tienen en común que de alguna u otra manera se debe realizar una redirección al usuario (consumidor) a su servicio para que ellos confirmen la identidad del usuario y redirijan de nuevo a nuestra aplicación.

Bueno como se puede imaginar nuestro gestor de sesiones va a ser una variación de cookieless, en la cual vamos a usar una Guid para identificar la sesión, por simplificar este identificador será el ID del consumidor, que estará persistido en base de datos. Por tanto, la idea será  heredar de SessionIDManager.

public class SessionIdManager : System.Web.SessionState.SessionIDManager
    {
        public override string CreateSessionID(System.Web.HttpContext context)
        {
            CarrierIdentificator identificator = new CarrierIdentificator();
            Guid sessionId = Guid.Empty;

            IConsumer consumer = CookieHelper.Get(context);

            if (consumer == null)
                consumer = identificator.Get(context);

            if (consumer != null)
                sessionId = consumer.Id;

            CookieHelper.Save(context, consumer);

            return sessionId.ToString("N");
        }

        public override bool Validate(string id)
        {
            // TODO validate session
        }
    }

También tendremos que registrar el session manager:

<system.web> 
        <sessionState cookieless="true" sessionIDManagerType="namespace.SessionIdManager" />
        ....
</system.web> 

Written by fravelgue

July 5, 2010 at 6:17 pm

Posted in development

Tagged with , , ,