WCF y transporte basado en Exchange 2007. Ejemplo para PC y .NET Compact Framework 3.5 del evento TechDays

Al igual que el ejemplo anterior, ya están disponibles tanto la presentación (en formato de Office 2007) como la aplicación de ejemplo "eLoc" (proyectos de Visual Studio 2008) de la sesión impartida en el evento de Microsoft TechDays del martes pasado (26 de Febrero).

Este ejemplo muestra el uso del transporte WCF basado en Microsft Exchange 2007 tanto en un entorno de PC con .NET Framework 3.5 como en un entorno de Windows Mobile, con .NET Compact Framework 3.5.

Para aquellos que quieran probar los ejemplos, van a necesitar lo siguiente:

  • Un servidor Exchange 2007 (si es SP1 mejor)
  • Dos buzones creados, uno de ellos con acceso por ActiveSync
  • Un terminal Windows Mobile (o emulador) con uno de los buzones anteriores configurado para su sincronización mediante ActiveSync
  • Un PC en el que configurar la aplicación Windows Forms con acceso al servidor Exchange.
  • Un certificado para SSL de comunicación con el servidor Exchange
  • Configurar tanto el PC como el terminal Windows Mobile para que acepten el certificado raiz del certificado SSL. Si es un certificado comprado a Verisign o alguna entidad similar no será necesario hacer nada. Si es un certificado propio, el certificado raíz deberá estar configurado en el store de "Trusted Roots" del PC y del dispositivo Windows Mobile.
  • Un dispositivo GPS/GSM si se quiere probar la funcionalidad en vivo. Si no, este dispositivo no es necesario y se puede probar WCF para Exchange simulando el mensaje de respuesta.

 

El escenario presentado por el ejemplo es el de poder localizar a un terminal GPS remoto (con capacidad de GSM) mediante un mensaje SMS (útil por ejemplo en el caso de un equipo de personas que trabajen en un servicio de emergencias). La solicitud de localización se puede enviar tanto desde la aplicación de la ‘central’ como desde el terminal Windows Mobile. El terminal GPS, una vez recibido el SMS, devuelve otro SMS al dispositivo Windows Mobile, quien, a su vez, envía un mensaje WCF mediante Exchange a la aplicación de la ‘central’, que mostrará la localización del terminal GPS en un mapa de Virtual Earth.

Existen diversos terminales de GPS/GSM en el mercado de forma que en el código no se ha incluido ningun mensaje específico para ninguno de ellos. Si el lector cuenta con uno de esos terminales tendrá que establecer el texto del SMS a enviar en la clase Localizador y configurar el código del MessageInterceptor en el formulario principal de la aplicación Windows Mobile para capturar los mensajes SMS recibidos.

Como no es común que se disponga de estos terminales, se puede probar la funcionalidad en la aplicación de Windows Mobile sin necesidad de tener uno de ellos ya que ésta dispone de un botón que pemite enviar una respuesta simulada.

Una vez configurado esto, la solución Visual Studio 2008 cuenta con tres proyectos:

  • Un proyecto Web que dispone de dos páginas, una con un mensaje de espera y otra que muestra en un mapa la localización de un GPS encontrado. Esta aplicación Web se usará integrada en el cliente de la ‘central’.
  • Un proyecto .NET Compact Framework 3.5 que envía y recibe mensajes WCF mediante la conexión de ActiveSync.
  • Un proyecto .NET Framework 3.5 que envía y recibe mensajes WCF mediante los servicios Web de Exchange 2007.

 

Para terminar de configurar el código, el lector deberá modificar los parámetros de cuentas de correo, usuarios y contraseñas y números de teléfono (si se va a usar el GPS real) en el código para adecuarlos a su entorno. Los parámetros son cadenas de texto encontradas en las clases ‘MainForm’ de cada uno de los proyectos.

Gracias a todos los asistentes su participación y espero que los ejemplos les resultasen interesantes.

WCF y .NET Compact Framework 3.5, ejemplo de "LugaresVisitados" del evento TechDays

Ya están disponibles la presentación (en formato de Office 2007) y la aplicación de ejemplo "LugaresVisitados" (proyectos de Visual Studio 2008) de la sesión práctica impartida en el evento de Microsoft TechDays del martes pasado (26 de Febrero).

La solución de Visual Studio de ejemplo consta de dos proyectos, una aplicación .NET Compact Framework 3.5 y una aplicación servidor basada en ASP.NET (con .NET Framework 3.5)

La aplicación cliente permite tomar una foto con la cámara de fotos de un terminal Windows Mobile, añadirle unas notas y, si hay un GPS conectado, asociarle a la foto unas coordenadas. Una vez tomada la foto y definidas las notas la aplicación, ésta puede ser subida al servidor Web donde quedará almacenada. Para quellos que se instalen el ejemplo, lo primero que han de hacer es modificar el archivo de configuración "config.txt" (en formato XML) para establecer un nombre de un puerto de serie correcto para el GPS y una URL válida de conexión al servicio Web.

La aplicación servidora es una aplicación ASP .NET que permite visualizar las fotos, taanto en una lista como individualmente y, para aquellas fotos que tengan asociadas coordenadas GPS, visualizarlas además en un mapa de Virtual Earth. En esta aplicación hay dos servicios Web WCF definidos. El primero permite subir las fotos al servidor (FotoUploader.svc) y el segundo permite obtener la lista de fotos que tienen coordenadas GPS asociadas (FotosCoordenadas.svc). Este último servicio existe para poder ser invocado desde JavaScript, desde la página que tiene el mapa de Virtual Earth obteniendo los datos en formato JSON.

Es conveniente revisar la presentación para ver qué parámetros de configuración de los servicios WCF se han establecido en el archivo Web.Config de la aplicación Web para configurar el sistema tal como funciona.

Por otro lado, para poder crear aplicaciones cliente en .NET Compact Framework para este tipo de servicios WCF, hay que recordar que es necesario instalarse los Power Toys para .NET Compact Framework 3.5, que incluyen, entre otras cosas, la utilidad "netcfsvcutil.exe" que es la que permite la generación del proxy que realiza la llamada al servicio Web.

Quiro agradecer a todos los asistentes su participación y espero que los ejemplos les resultasen interesantes.

Artículo: Novedades para desarrolladores en Windows Mobile 6

He replicado un artículo que apareció originalmente en la revista PC World de Julio-Agosto de 2007 con el título original de "Desarrollando ‘On the road’ con Windows Mobile 6".

En este artículo se comentan las novedades incluidas en la plataforma y en los SDKs de Windows Mobile 6 y se desarrolla una pequeña aplicación paso a paso de la que el código está disponible para su descarga.

Podéis acceder al artículo completo aquí.

Sony Ericsson se apunta al carro de Windows Mobile

Se acaba de anunciar un nuevo modelo de teléfono de Sony-Ericsson, el XPERIA X1, que vendrá con Windows Mobile. Al parecer el terminal está fabricado por HTC (cómo no) y será el primero de una nueva línea de móviles de Sony Ericsson con este nuevo sistema operativo para ellos. El terminal parece bastante completo, e incorpora un nuevo UI que, si funciona como aparece en el vídeo promocional, quiere competir directamente con el UI del iPhone.

El movimiento resulta bastante interesante ya que Sony Ericsson es uno de los fabricantes que más apoya (apoyaba?) Symbian en su línea UIQ. Por lo que parece, de entre todos los fabricantes grandes de móviles, ya sólo falta Nokia por unirse al carro de Windows Mobile; aunque ha licenciado parte de sus tecnologías, eso sí.

Por experiencia os puedo decir que, desde el punto de vista del programador, nos ahorrarían muchos dolores de cabeza si lo hicieran.