Nueva comunidad orientada al desarrollo para dispositivos

Los chicos de OpenNETCF acaban de abrir un nuevo sitio web orientado a la comunidad de desarrolladores para dispositivos basados en Windows CE / Windows Mobile / .NET Compact Framework. Son de los mayores expertos que hay en este tema con lo que el contenido que encontraréis será de calidad.

Inicialmente el sitio empieza con 3 puntos concretos:

  1. Artículos técnicos. Artículos interesantes sobre desarrollo. Si queréis contribuir, se les pueden mandar artículos para su publicación.
  2. Concursos de desarrollo. Organizan concursos de desarrollo cada mes con premios interesantes para los ganadores. Este mes se trata de presentar aplicaciones o componentes con interfaces de usuario atractivas. Los premios son una copia de Visual Studio y un dispositivo Windows Mobile a elegir de entre varios.
  3. Un servidor basado en Subversion donde alojar proyectos Open Source. Ellos han colgado de momento varios de sus proyectos Open Source pero ponen el servidor a disposición de la comunidad para alojar otros proyectos relacionados con el desarrollo orientado a dispositivos.

 

La idea promete, así que estaremos atentos a ver cómo evoluciona.

Características de WCF incluidas en .NET Compact Framework 3.5

Andrew Arnott, uno de los programadores de .NET Compact Framework, ha publicado una lista de las características de WCF (Windows Communication Foundation) que se van a incluir en la nueva versión de .NET Compact Framework (3.5), esperada junto con Visual Studio 2008. Como siempre (y lógicamente) .NET Compact Framework incorporará un subconjunto de las características de su hermano mayor. Pero en este caso, .NET Compact Framework incluye una funcionalidad diseñada en exclusiva para él que, según aparece en esa lista, podrá ser utilizada desde WCF en el PC y es la posibilidad de realizar mensajería entre aplicaciones utilizando Microsoft Exchange como transporte (ExchangeWebServiceMailBinding). Este transporte de WCF ofrece ciertas características bastante interesantes sobre todo en el caso de aplicaciones que se conectan esporádicamente a la red, ya que Exchange almacena los mensajes recibidos hasta que pueden ser descargados por el cliente cuando éste tenga conexión. He visto ejemplos de cómo funciona en dispositivos móviles pero no lo he visto funcionando en el PC, así que habrá que probarlo…

Microsoft Mobile Development Handbook

Hace un par de días he recibido mi copia de libro Microsoft Mobile Development Handbook editado por Microsoft Press del cual tuve el placer de revisar algunos capítulos mientras lo estaban escribiendo.

El libro lo han escrito Andy Wigley, Daniel Moth y Peter Foot, tres conocidos MVPs en desarrollo para dispositivos cuando iniciaron el libro aunque ahora Daniel Moth ha dejado de serlo ya que ha pasado a ser empleado de Microsoft en el área de movilidad.

Es un libro bastante completo (más de 600 páginas) que cubre casi todo lo relacionado con desarrollo para dispositivos Windows Mobile, centrándose en .NET Compact Framework 2.0 y ofreciendo una introducción a .NET Compact Framework 3.5 que vendrá con Visual Studio 2008, tratando temas de pruebas unitarias, LINQ y WCF para dispositivos.

En su primera parte se centra en lo ‘esencial’ del desarrollo de aplicaciones móviles, aunque muchos de los temas se pueden aplicar a cualquier otro entorno .NET; en concreto el capítulo 4 sobre pruebas de las aplicaciones y gestión de excepciones.

La segunda parte trata temas más concretos sobre los retos que presentan las aplicaciones móviles hablando sobre temas de red, threading, seguridad y criptografía, acceso a datos, gráficos, controles, etc…

Existe un capítulo, el capítulo 5, dedicado al rendimiento de .NET Compact Framework que explica bastante bien cómo funciona, entre otras cosas, el recolector de basura de .NET Compact Framework y cómo usar las herramientas existentes para medir el rendimiento de las aplicaciones. Este capítulo, aparte del interés que tiene para los desarrolladores de aplicaciones móviles, también puede ser de especial interés para los desarrolladores de juegos basados en XNA ya que esta plataforma se basa en .NET Compact Framework.

En definitiva Microsoft Mobile Development Handbook es un libro bastante recomendable para todos aquellos que quieran desarrollar aplicaciones para dispositivos Windows CE o Windows Mobile usando .NET Compact Framework escrito por gente que conoce bastante bien la plataforma.

Links para iniciarse en el desarrollo para Windows Mobile

Recientemente se ha publicado en un blog de sobre de Windows Mobile escrito por dos evangelistas de la plataforma (o eso creo) una serie de links de utilidad para todos aquellos que se estén iniciando en el desarrollo de aplicaciones para esta plataforma. Recopilan links desde las novedades de Windows Mobile 6 hasta dónde encontrar información en caso de que seas un programador de Palm u otra plataforma; interesante tenerlo guardado por si acaso.

De vuelta del Google Developer Day 2007

Hace un rato he vuelto del Google Developer Day 2007 donde nos han estado contando las novedades que los chicos de Google tienes preparadas. Allí me encontré con Miguel Jimenez y un compañero suyo de Ilitia, Pedro Pablo. Junto con ellos he asistido a varias sesiones.

El evento ha sido global; empezó ayer en Australia y Japón y estará terminando ahora en USA. Han querido hacer algo un poco diferente, realizando dos conexiones en directo con el evento de Londres y el de USA (una por la mañana y otra al final de la tarde) intentando dar la idea de globalidad. A primera vista eso parece una biena idea; pero al final ha resultado ser, en mi opinión, una repetición de la sesión de presentación, de manera que hemos tenido aproximadamente la misma charla tres veces. Primero la de Madrid, a continuación la de Londres y al final la de USA. También estaba previsto que los dos fundadores (o al menos uno) contara algo en la sesión inicial de USA, pero al final no se han presentado; pero bueno, se lo perdonaremos por ser la primera que hacen un evento de este tipo.

Luego, después de la comida, había una selección de charlas técnicas donde ha habido un poco de todo. Por cierto, muchas de las sesiones se han grabado y se pueden ver online. La primera a la que hemos asistido ha sido un taller de mapas donde hemos tocado un poco las novedades que está incluyendo esta gente, bastante interesante por cierto. Cuando practique con ello, si se me da bien, contaré algo. Luego tenía previsto asistir a una de programación con KML, el lenguaje XML de Google Maps y Google Earth, que me afectan directamente ahora por un proyecto que estoy haciendo, pero se suspendió sin sabe por qué, con lo que asistimos a la sesión de Google Gears. A esta nueva aplicación ya han hecho referencia en Geeks, aunque no es solo una aplicación para poner offline las aplicaciones de Google, como comenta El Bruno, sino que es una plataforma para que cualquiera pueda dar funcionalidad offline a su aplicación AJAX (Google Reader es la primera, eso si). El sistema se monta como un plugin del navegador y las aplicaciones Web que lo quieran usar lo tienen disponible desde ese momento. En esta charla hemos tenido la suerte de contar como ponente con Chris Wetherell, creador de Google Reader y uno de los programadores de Google Gears. Finalmente he asistido a una que trataba del API AJAX de búsqueda, que se me ha quedado un poco simplona.

En general el evento ha estado bien, aunque se me ha quedado un poco corto técnicamente. Parece que las sesiones más ‘duras’ (y por tanto interesantes en mi opinión) han sido las de los talleres de GData, impartidos entre otros por Ricardo Varela, pero la verdad, unas sesiones en las que había que meterse toda la tarde con eclipse y python pues como que no me apetecían mucho ;-), sobre todo porque no podría haber asistido a ninguna otra.

¿Surface computing?

Por si aún no os habéis enterado, Microsoft acaba de lanzar ‘Surface Computing’.

Si no lo habéis visto, lo primero es que os paséis por On10 para ver una demo.

Como alguien que tiene algo de experiencia en sistemas interactivos ‘alternativos’, este proyecto me parece bastante interesante. Se basa en un reconocimiento óptico (mediante un par de cámaras digitales) de ‘objetos’, ya sean los dedos del usuario u otros objetos que puedan llevar códigos que el sistema es capaz de reconocer como únicos. Al ser un reconocimiento visual, se pueden reconocer múltiples objetos simultáneamente. Una vez detectados, sólo queda ‘cuadrar’ su posición con respecto a una imagen generada por ordenador y proyectarla en algún sitio útil, en este caso en una mesa, teniendo así una Superficie interactiva (de ahí Surface Computing).

La parte más interesante, en mi opinión, son las posibilidades que se abren para las aplicaciones que se van a poder crear. Hay que tener en cuenta que no existe ni teclado ni ratón lo que va a obligar a cambiar mucho la forma en la que se diseñan los interfaces de las aplicaciones. En las demos que se ven en el vídeo la parte visual de las aplicaciones está hecha con WPF. Por otro lado, resulta especialmente interesante la manera de mezclar objetos reales, como los teléfonos o los vasos, con los objetos ‘virtuales’. Con imaginación se podrían hacer cosas espectaculares.

El principal problema de este sistema inicialmente va a ser el coste, estimado inicialmente en más de 10.000$ / unidad ya que hay que combinar un proyector, ya caro de por sí, un ordenador, las cámaras, la mesa (que hace las veces de pantalla) y el software; esperemos que vaya bajando porque yo *necesito* uno ya. 😉

Ejemplos de WCF para .NET Compact Framework

Siguiendo la línea que os comentaba en el post anterior donde se mostraba un ejemplo que nos contaron en el pasado MVP Summit (en ese caso acerca de SQL CE Sync Services del que, por cierto, se ha publicado la segunda parte), Mark Prentice publica ahora un ejemplo que nos mostraron sobre WCF para .NET Compact Framework 3.5.

WCF para Compact Framework se va a suministrar con dos canales de comunicación, uno basado en HTTP (ó HTTPS) y otro basado en Exchange Server. Se pueden usar  las versiones 2003 SP2 o 2007 de Exchange La versión 2007 dispone de algunas características adicionales, como la posibilidad de usar aplicaciones de escritorio que ‘hablen’ con el servidor Exchange mediante Servicios Web para mandar mensajes a los dispositivos. En este caso la comunicación con los dispositivos usará entonces el correo electrónico como base. El dispositivo recibirá un correo mediante Server ActiveSync con un formato determinado que la aplicación podrá capturar, no apareciendo así el mensaje en el buzón de correo del usuario. Esto causó bastantes preguntas ya que no todo el mundo dispone de Exchange y las necesidades de la gente pueden variar bastante, como, por ejemplo, ¿qué hacer si se quieren usar diversas direcciones de email para diferentes aplicaciones cuando ActiveSync sólo permite disponer de una cuenta configurada contra Exchange?

Si ninguno de estos canales nos sirve para nuestra aplicación, siempre se puede extender el sistema y usar el mecanismo de comunicación que nos interese/inventemos. La ventaja que tendremos es que desde el punto de vista del código cliente la utilización será similar, escondiéndose la implementación del canal para que sea transparente.

Screencast de SQL CE Sync Designer

Steve Lasker acaba de publicar un screencast sobre el nuevo motor de sincronización de datos para la nueva versión de SQL CE (la nueva versión futura v3.5 no la versión actual v3.1). En esta demo muestra cómo usar Visual Studio Orcas junto con el Sync Designer para crear una aplicación que utiliza de manera conjunta datos locales (sincronizados con una base de datos SQL Server) y datos en vivo, consultando directamente al servidor.


Esta demo es parte de una aplicación de ejemplo más completa que nos mostró en el MVP Summit de la semana pasada y que fue, en mi opinión, de lo más interesante que vimos.


El motor de sincronización se puede descargar para funcionar con Visual Studio 2005 (incluyendo SQL CE 3.5 que funciona en paralelo con SQL CE 3.1) pero, naturalmente, sin el diseñador que se ve en la demo. Si se quiere usar el diseñador, hay que descargarse la última CTP de Visual Studio Orcas.

Ya se pueden probar las aplicaciones móviles en Windows Mobile 6 con el SDK

Desde el viernes pasado están disponibles los SDK de Windows Mobile 6. Vienen en versión Pocket PC y Pocket PC Phone (a partir de ahora conocidos como Windows Mobile Professional) y en versión SmartPhone (ahora conocido como Windows Mobile Standard).


La base del sistema operativo de estos dispositivos es el nuevo Windows CE 6, que trae bastante mejoras con respecto a la versión anterior. Corrección: La base sigue siendo Windows CE 5. Windows CE 6 y Windows Mobile 6 se desarrollaron en paralelo con lo que Windows Mobile 6 no pudo usar Windows CE 6. Habrá que esperar a nuevas versiones de Windows Mobile para tener el nuevo CE.


También podéis leer las novedades desde el punto de vista del desarrollo que proporcionan estos dispositivos aquí.


De momento, y hasta que haya dispositivos Windows Mobile 6 reales a la venta, nos tendremos que conformar con estos SDKs y sus emuladores.