Esta mañana se supone que me llega mi nuevo Pocket PC Phone. Es un i-Mate JasJar con Windows Mobile 5.0.
En cuanto lo reciba quiero migrar algunas aplicaciones que tengo hechas con .NET Compact Framework 1.0 a la versión 2.0 y ver cómo funcionan en el nuevo sistema.
Cuando lo tenga resuelto iré contando las experiencias.
Ya está disponible la versión final (RTM) de Visual Studio 2005 para los suscriptores de MSDN.
Ojo si quieres programar con WinFX, porque la versión pública de WinFX no es compatible con esta versión de Visual Studio, sólo con la Beta 2.
Si tienes instaladas versiones anteriores de Visual Studio 2005 y quieres actualizar, hay que hacer varias cosas (hasta 23 pasos) aunque hay una herramienta que puede ser útil. Más información sobre esto en: http://www.sellsbrothers.com/news/showTopic.aspx?ixTopic=1894
Y si tu interés está en el desarrollo para dispositivos y quieres saber qué herramientas usar para qué tipo de dispositivos de los que hay disponibles, aquí tienes un cuadro que cruza las versiones de las herramientas de desarrollo con las de los equipos:
http://blogs.msdn.com/windowsmobile/archive/2005/06/02/424382.aspx
Desde ayer ya están disponibles los cursos de Campus MVP.
Yo participo con un curso de momento sobre desarrollo de aplicaciones Web para dispositivos móviles.
Pues eso, que si tenéis una suscripción a MSDN, ya está disponible para descarga la imágen del DVD de Visual Stucio 2005 RC. Es una versión más reciente que la Beta 2, aunque no está cubierta por la licencia GoLive (con lo que no hay soporte para ponerla en producción).
Debido al creciente Spam en los comentarios del blog, he deshabilitado esta característica hasta que encuentre una solución.
Si quieres ponerte en contacto conmigo usa la página de contacto del Web.
En la universidad Chalmers de Suecia han diseñado un pequeño robot humanoide con una capacidad grande de movimiento, habla, visión en estéreo (lo que permite coordinar vista y 'manos'), reconocimiento de caras e imitación de movimientos.
Hay un video de demostración donde se ve todo lo que puede hacer...
(Yo quiero uno...)
He añadido una nueva utilidad a la sección de herramientas. Se trata de un componente que permite enviar ‘pings’ de ICMP a equipos remotos desde aplicaciones Compact Framework en dispositivos Windows Mobile 2003.
Podéis descargar sólo el ejecutable para Pocket PC, aunque también disponéis del código para incorporarlo en vuestras aplicaciones.
Espero que resulte interesante.
Parece que por fin se va a poder usar el móvil en los aviones. Según esta nota de prensa, Siemens y Airbus han firmado un acuerdo para incluir una estación base de GSM en los aviones que permita usar los teléfonos durante el vuelo, ya sea para voz o datos.
Veremos cuánto tarda en llegar...
Recientemente me he encontrado con dos proyectos donde el uso de Visual C++ .NET ha ahorrado mucho tiempo y esfuerzo.
En ambos casos el problema estaba en cómo crear ‘wrappers’ en .NET para acceder a varios APIs nativos (Win32). Uno estaba relacionado con el acceso a APIs de Windows y el otro es un API propietario de un fabricante de unos equipos de video digital.
Inicialmente en los dos proyectos se intentó primero la creación de un ‘wrapper’ en C#. Esta aproximación siempre suena razonable, pero en cuanto el API a usar sea un poco elaborado, donde se necesite el uso de estructuras complejas, o necesitemos el uso de ‘callbacks’, la situación se complica bastante y, lo que en principio parecía una tarea sencilla, se convierte en horas y horas de intentar definir cómo escribir correctamente los tipos de datos para que se pasen adecuadamente al API, probar las modificaciones y obtener errores difíciles de depurar.
Mediante el uso de Visual C++ .NET y aproximando el problema de otra manera, es bastante fácil crear este tipo de ‘wrappers’. La idea usada en los dos casos anteriores fue la siguiente:
• Crear un proyecto de class library en Visual C++ .NET.
• En ese proyecto se crea una clase C++ .NET (que incluye las extensiones ‘manejadas’). Esta expone las propiedades y métodos deseados a la aplicación .NET final, que se desarrollará en el lenguaje .NET seleccionado, ya sea VB.NET o C#.
• En el mismo proyecto se incluye una clase no manejada (Win32) que es la que hará uso del API nativo requerido.
• La clase C++ .NET usará esta otra clase Win32 interna de manera exclusiva, exponiendo la funcionalidad del API a través de su interface .NET.
De esta manera, no hay que hacer traducciones complejas de estructuras ya que se usan de manera natural dentro de C++. En el caso de funciones de callback, estas se pueden exponer al exterior como eventos o delegados, convirtiéndose en algo natural también a la hora de su uso desde la aplicación cliente final.
Es cierto que hay que conocer algo de C++ para utilizar esta aproximación, pero como su uso se centra en algo bastante concreto, merece la pena hacer ese esfuerzo inicial que se traduce posteriormente en menos dolores de cabeza.
Aquí tenéis un link a una serie de artículos que me pasó mi amigo David García como referencia http://www.ondotnet.com/pub/a/dotnet/2004/03/29/mcpp_part3.html
Por si alguien las quiere. Sólo tenéis que pedirlas.