desarrolloMobile.NET Noticias

martes, julio 31, 2007

MPx 300 Firmware updated!!!

Pues sí!! ya tengo la última versión ROM operativa para el MPx, (21 March 2005). Trabajito me ha costao.... si alguien está interesado contactarme!!!

lunes, junio 25, 2007

Local Server Framework for Windows Mobile

Local Server Framework(Sólo para Windows Mobile) forma parte de Windows Embedded CE Tests and Test Tools, herramienta que viene junta a Windows Mobile 6.0 SDK y cuyo objetivo principal es el del testeo de drivers y otras funcionalidades del sistema operativo a través de una linea de comandos(Sólo para Windows CE).

Local Server Framework se centra principalmente en el tedioso trabajo de testeo de aplicaciones móviles contra servicios Web, mediante la simulación de un falso servidor local que simula dicho contexto. Os recomiendo un WebCast que muestra en ejemplo de uso de esta herramienta.

Imagen enlazada al MSDN

Existen otras herramientas aunque son específicas para Windows CE a excepción de Local Server Framework que lo es para Windows Mobile. A continuación os muestro la lista de las misma con el enlace correspondiente:


martes, junio 12, 2007

Introducción a .NET Compact Framework 2.0

Estoy escribiendo una serie de articulos (en plan coleguitas ;-)) para introducirse en el desarrollo de Windows Mobile con .NET Compact Framework 2.0. Hasta ahora tengo acabado y ya podéis descargaros los siguiente:
  1. El primer proyecto con .NET Compact Framework 2.0. (Mayo 2007)
  2. AciveSync, Emuladores y el Device Emulator Manager. (Mayo 2007)
  3. Anatomia de un dispositivo móvil (Junio 2007)
Si deseas comunicarme al respecto algo (critica, sugerencia,..) no lo dudes y déjame un comentario.

lunes, junio 11, 2007

¿eres cirujano plástico.net?

Ante la inminente aceptación de WPF y Silverlight en dispositivos móviles, tablet pc, umpc (Mobile PC #Codename Origami#), smartdevice que se avecina ,explicaré mis opiniones respecto a la peculiaridades físicas de la pantalla antes de confeccionar una interfaz de usuario.

La resolución no suele ser muy grande y es, a veces, ligeramente más horizontal que un PC (p.e. 800x480 en Mobile PC). Los usuarios normalmente no utilizan teclados, sino que interactuaran con el dedo o con un lápiz táctil con lo que las zonas de selección son determinantes, entendiendo por zonas de selección (esto es la era WPF) todas aquellas partes del formulario encuadrado en la pantalla que contengan uno o varios controles que interactúen con la aplicación , botones, cajas de selección, etc. A muchos usuarios no les hará mucha gracia confundir una imagen con una zona de selección o lo que es peor no distinguir ninguna zona dentro del marco de la pantalla.

Hablando de usabilidad, traten de evitar el acercar las zonas de selección a los bordes de la pantalla. Se recomienda un tamaño aproximado de 10mm por área de selección. No permitan a un control Check Box navegar por vuestra aplicación con un tamaño inferior, no seria bueno hacer sentir al usuario, cuando éste tenga que seleccionar el valor de un Check Box, como si tuviera que tratar de 'hilar un hilo' en un alfiler. Recuerden que el ratón puede ser el dedo o el lápiz pero tampoco olviden que puede haber un teclado.

Eviten utilizar Scroll Bars. Sin embargo, como desarrollador de dispositivos móviles de plataformas Pocket PC y Smartphone yo los utilizo a menudo, pero siempre verticales. Si deciden poner que sean verticales, eso sí, cuanto menos mejor. Eviten las horizontales o lo que es peor las horizontales y verticales combinadas. No carguen la interficie gráfica en exceso. No exijan demasiado a los eventos; los botones de función que ofrece UMPC son muy bien avenidos, aprovéchenlos. Algunos Table PC ofrecen una pantalla táctil electromagnética que junto a sofisticados lápices permiten otro tipo de eventos. UMPC y Pocket PC no incorpora pantallas de ese tipo.

Las peculiaridades se centran principalmente en la pantalla y en el cambio de iteración entre ordenador y usuario en el que no hay ni teclado ni ratón, o en ocasiones sí. Por lo general los desarrolladores de dispositivos embebidos (desde Smartphone hasta Tablet PC dónde la características de las pantallas limitan las aplicaciones por motivos obvios), que son capaces de elaborar una interfície gráfica de usuario ágil, funcional y además gráficamente agradable son, para mí, auténticos 'cirujanos plásticos' del desarrollo.






domingo, junio 10, 2007

blogs y sites interesantes

No soy muy constante en eso de periódicamente "invertir" un tiempo en leer blogs y demás sites, los cuales no niego que sean interesantes. en este mismo blog, expongo a vuestra izquierda una lista de enlaces de los que más frecuento.

Ayer me comunicaron que uno de lo blogs que más leo había cambiado de "dominio". Recordé que tenia que cambiar el enlace de este blog cuando de repente no aparece. He vivido unos cuantos meses pensando que ese enlace enriquecía este blog (eso también vale ;-)) y cual ha sido mi sorpresa cuando no lo he visto.

El enlace en cuestión es del blog de Ramón Bosch. De aqui os aconsejo que no dejeis de echarle un vistazo, sus opiniones y forma de ver las cosas, sencillamente, son impresionantes.

viernes, junio 08, 2007

Office Mobile 2007 ¡por la patilla! (*)

Microsoft ha anunciado la disponibilidad de actualizaciones gratuitas de Office Mobile 2007 (*) para una selección de dispositivos durante el tercer trimestre del año. Office Mobile 2007 amplía las capacidades de Windows Mobile para leer y editar documentos creados con Microsoft Office 2007 y también incluye nuevas funcionalidades como Fax y ZIP.


Los fabricantes que lancen dispositivos con Windows Mobile 6 llevarán Office Mobile 2007 preinstalado a principios del tercer trimestre de 2007.

Microsoft también presenta una versión de Windows Mobile 6 para smartphones en japonés. El nuevo sistema operativo estará disponible en dispositivos de HTC, Sharp y Toshiba desde Junio de 2007 en Japón, con actualizaciones gratuitas a Office Mobile 2007 en una selección de dispositivos para el tercer trimestre de 2007. La última versión del sistema operativo ofrece funcionalidades vistas en el PC que ahora se trasladan a los dispositivos móviles.




martes, mayo 22, 2007

MPX: ¡¡Completé la trilogía!!

Pues si!! ya tengo en mi manos el gran MPX300 o MPx. Despues de haver pasado por el MPX200 y MPX220, con Windows Mobile Smartphone 2002 y 2003SE, adquirí por eBay una reliquia, el MPX300!!

Este movil "no ha visto la luz", ya que Motorola no lo comercializó en Europa. Despues de una tirada "Beta", fue comercializado en Singapur y debido a su alto precio (más de 1,000$) y la necseidad de Motorola de hacer competencia a Blackberry y Palm, decidió no comercializarlo, sacando en su lugar MotoQ.

Os dejo un video que encontré por YouTube con todas sus características. En realidad, en comparación con los actuales del mercado tiene poca memoria (64ROM y 28 RAM) y es lento (152Mhz) [#apareció en el 2004#], pero es una pieza digna de museo...


viernes, mayo 04, 2007

Sincronización ActiveSYnc con servidor Exchange (Lista de Errores)

Aqui teneis una completísima lista de errores, causas y soluciones de sincronización y otros entre ActiveSync y Exhange.

NOTA: Probablemente no cuente con los nuevos errores de Exchange 2007, en cuanto a sincronización con ActiveSync se refiere.

jueves, abril 26, 2007

WCF en .NET CF 3.5

Hace poco, a través del site de Alejandro Mezcua, encontré un post introductorio acerca de la utilización de WCF desde .NET CF 3.5. Ahora, Mark Prentice, autor de los post, muestra una de las utilizaciones que más beneficios va a aportar (creo yo) en entornos móviles, enlaces WCF a través de Exchange.

La idea nació dentro del equipo de desarrollo de .NET CF, concretamente de Mike Zintel, y fue Roman Batoukov quién a través de un post imprescindible, explicaba cómo desde entornos móviles podían sacar el máximo provecho WCF, ¿como? pues a través de correos electrónicos...

Si estais interesados sobre el tema os recomiendo primero, la teoria, de Roman y luego la puesta en marcha (practica) de Mark. El resultado... espectacular.

Si alguien quiere compartir su experiencia, por favor, dejad un comentario; quiero comprobar si os quedais tan impresionados como yo...

miércoles, abril 25, 2007

Se acercan MEDC (Las Vegas y Berlín)

Otro año más se celebra el Microsoft Mobile & Embedded Developer Conference en Las Vegas dónde las estrellas serán .NET CF 3.5 y Windows Mobile 6. Para la edición de Europa, este año pasa a celebrarse en Berlín.

Otro año más, también, que no puedo ir y me voy a quedar con las ganas. Si alguién va que lo disfrute!!!

lunes, abril 16, 2007

Taggeado!!

Pues si, mi buena amiga Fabiana, me ha taggeado. Confesaré 5 cosas sobre mí que normalmente no cuento. Me apunto a esta estupidez :-)

  1. Cuando sea grande quiero ser piloto de avión y caminar por los aeropuertos con las espaldas anchas y mis 'lupas' RayBan, que por cierto ya las tengo aunque solo me las pongo en el coche. Soy un chiflado del Flight Simulator.
  2. Estoy 'chiflao' por el cava catalán. Mis preferidos son el Kripta d'Agustí Torelló, Reserva de la Familia de Juvé i Camps, Reserva de Sumarroca, 'er' de Cristina Colomer Bernat, Celler Batlle de Gramona y el Gran Reserva de Robert J.Mur, entre otros...
  3. Confieso que siento una enorme admiración por Juan José Moreno Cuenca, del cual tengo todas las películas que hablan de su vida, así como el libro autobiográfico que he leído ya dos veces.
  4. En mi coche tengo una pegatina/retrato de José Monge Cruz. Para quién le guste el flamenco, estará conmigo, sobran las palabras.
  5. Cuando era pequeño gané el campeonato de catalunya de cross y fuí subcampeón varias veces en varias categorias. Tenía una prometedora carrera en el mundo del atletismo que se truncó, para mi desgracia. Posteriormente pasé a correr delante de la polícia...

Podría profundizar en alguna de ellas, pero tampoco hay que pasarse ¿¿no??

Ah! se me olvidaba, voy a taggear (o como se llame) a Marino Posadas, Santi Balboa.

Windows Mobile 6 (SDK y API obsoletas)

Ya se ha publicado el SDK de Windows Mobile 6, tanto para la versión Professional (WM 6 inc. Phone Edition) como para la Standard (WM6 Smartphone).

Microsoft ha modificado los nombres de las categorias del nuevo sistema operativo de la siguiente manera:
  • Windows Mobile (Smartphone) = Windows Mobile Standard
  • Windows Mobile (Pocket PC) = Windows Mobile Classic
  • Windows Mobile (Pocket PC Phone Edition) = Windows Mobile Professional

De esta forma debemos indentificar los nuevos nombres la a la hora de crear un nuevo proyecto (Tipo de Proyecto) e Imágenes del Emulador.

Por otro lado también se ha publicado las API que dejan de ser funcionales en Windows Mobile 6. La verdad es que la lista es larga, así que os invito a echar un vistazo en Channel 9.

Service Throttling

Throttling viene de throttle, y este termino sólo lo había utilizado en aviación "move throttle from idle,..." y se refería a la palanca de gases de los reactores modernos. Pero que carajo significa en WCF??

Throttling es una técnica que permite la restricción de clientes de un servicio WCF. Ésta se aplica al Servicio y todos sus EndPoints. Los tres parámetros que controla son:

  1. Concurrencia máxima de sesiones
  2. Concurrencia máxima de llamadas
  3. Concurrencia máxima de instancias

Pese a que se asigna al tipo de Servicio ésta, al igual que otras, es un aspecto del hosting, con lo que deberemos indicar los valores en el .config del proyecto que lo hospeda. Un ejemplo:

[serviceBehaviors
[behavior name = "MiServicio"
[service throttling maxConcurrentsSessions = "10"
maxConcurrentsCalls = "10"
maxConcurrentsInstances = "5" \]

\]
\]

NOTA: He utilizado brackets (paréntesis) en lugar de <>




miércoles, abril 11, 2007

CATdotNET.org

Hace poco más de un par de meses me reuní con Lleonard del Río, socio-fundador de Raona, ya que nos rondaba por la cabeza la creación de un grupo de usuarios que englobara tanto a profesionales, como estudiantes o simples entusiasta de la tecnología .NET. A partir de entonces y con la inestimable colaboración y ayuda de Diégo Gómez, empezó a tomar forma lo que ahora es CATdotNET.org, un grupo de usuarios de .NET para la Catalunya central, en el que pretendemos ofrecer un marco de colaboración a través de nuestra web, aún en construcción, con reuniones periódicas entre Igualada y Manresa.

CORRECCIÓN:
A principios del mes de Mayo, convocaremos la primera reunión y poder ofrecer un par de charlas sobre .NET. La fecha y la hora así como el temario de las charlas no estan concretadas por tanto, en cuanto se hagan oficiales las podreis encontrar en la Web.

Asi mismo, si estais interesados en obtener más información, colaborar o cualquier otra sugerenicia u opinión, no dudeis en contactarnos.

martes, abril 10, 2007

Smart Client Software Factory, excelente!!

He estado 'trasteando' con la versión Alpha 7 de Abril del Smart Client Guidance que podeis encontrar en CodePlex. Lo que más me ha llamado la atención és la posibilidad de utilizar el Connection Manager, que tantas veces he necesitado desde las aplicaciones en Windows Mobile, ahora para Windows XP/Vista y con resultados sorprendentes y de forma sencilla...





Smart Client Software Factory forma parte de Smart Client Guidance de patterns and practices, en el que también engloba Mobile Client Software Factory (del cual dedicaré una serie de post). Además del ConnectionManager también encontraremos ejemplos de extensibilidad de WPF para nuestras aplicaciones Windows, así como todo tipo de ejemplos fundamentados en el 'padre' de SCSF, Composite UI Application Block, un marco de trabajo basado en .NET 2.0 y que permite el desarrollo de UI ricas, flexibles, extensibles y "fáciles" de desarrollar.

En fín, Smart Client Guidance es toda una herramienta en la línia de Enterprise Library 2.0, al principio asusto pero luego disfrutas a lo grande!!

lunes, abril 09, 2007

Cliente VB6

Por lo que he podido ver la interoperabilidad de clientes no WCF está bastante presente sin embargo con algunas conotaciones, ya sea el cliente Java, COM o VC++.

En el caso de Visual Basic, por lo que he podido ver, existen tres escenarios en función del Runtime instalado. Así, si el cliente posee .NET Framework 3.0, la opción más lógica es la creación de un ensamblado COM Interop, que contenga el proxy al WCF Service. Es decir, el cliente que, normalmente, generamos con Svcutil.exe, lo exponemos a COM y exportamos la biblioteca de tipos para que sea referenciada por un proyecto Visual Basic 6.0. En el segundo caso, el cliente tiene .NET Framework 2.0. La alternativa anteriormente comentada no es válida así que podemos generar, el lugar de un proxy WCF, un proxy ASMX. De las misma forma pasamos en proxy a COM Interop, exportamos la biblioteca de tipos y referenciamos o instanciamos desde VB6. La última, en la que no tenemos el CLR de .NET instalado, podemos utilizar SOAP. Windows XP viene con las biliotecas

martes, abril 03, 2007

Escenarios de seguridad en WCF: A nivel de Mensaje

¿Transporte o Menaje? Bien, según el escenario, aunque ahora no hablaré de ello (quizás otro post). Ante la posibilidad de implantación de servicios desarrollados con WCF, se presentan varios escenarios dónde la utilización de los mismo vienen, sino determinada, sí influenciada por su política de seguridad.

Modos de seguridad hay 5 [None, Transport, Message, Both, TransportWithMessageCredentials, TransportCredential Only], si quereis ampliar información mirar aqui.

Message Security with Username Client

Ante este contexto explicaré tres posible modos de autenticación UserName. Primeramente saber que en los tres modos de autenticación en el Servidor debe existir un certificado X509 para que el cliente pueda constatar la autenticidad del servicio. Si quereis más info de como crearlo mirar aqui.

En el intercambio inicial desde una llamada del cliente los datos en formato binario son trasportados mediante la especificación WS-Trust (véase TLS Negotiation). Una vez el servicio ha sido autenticado se establece un contexto de seguridad compartido [Shared security context].

Los mensajes, por defecto, están encriptados y firmados (véase ProtectionLevel ) y són transportados bajo dicho contexto de seguridad. La peculiaridad de este escenario és que el cliente es autenticado mediante un User y un Password. El tipo de enlace es wsHttpBinding, el transporte HTTP.

Modos de Autenticación:

* Utilizando autenticación por Windows: El tipo de credencial por UserName requiere de un valor User y otro Password que se deberán especificar a la hora de llamar desde el cliente mediante la propiedad clienteproxy.ClientCredentials.UserName.User o Password. Bajo el escenario en que nos encontramos, si no se especifica el tipo concreto de autenticación será, por defecto, autenticación Windows. Es decir que si en la llamada pasamos en User algo tal que 'Dominio\Usuario' con el respectivo password, la autenticación, con el permiso del controlador de dominio, se validará.

* Utilizando autenticación MemberShip: Pues como si se tratara de un site en ASP.NET podemos utilizar la misma funcionalidad. De entrada se me ocurre como ideal si se va a consumir por Internet y/o se va a utilizar la misma autenticación de nuestra site web o Intranet. Sin embargo, debemos indicar en el comportamiento del servicio (ServiceBehaviors\Behavior\ServiceCredentials) del archivo de configuración el tag siguiente:

[userNameAuthentication="MembershipProvider" membershipProviderName="SqlMembershipProvider"]

En este punto los valores que debemos pasar como User y Password són los que tenemos asignados dentro de Membership. Un buen documento que profundiza más es el siguiente.

* Otro escenario, quizás algo menos útil [aparentemente, opinión personal], pero mucho más flexible es mediante la autenticación parametrizada o customizada. Esto es, añadiendo una clase a nuestro Proyecto Servicio, que herede de UserNamePasswordValidator y sobreescribiendo (override) el método Validate, cuyos parámetros son user y password del tipo string, podremos manipularlos de la forma que queramos. Para ello el tag a añadir es:

[usernameauthentication="Custom" membershipProviderName="mypoject.myservice.CustomUserNameValidator, Project1"]

Dónde indicamos la clase que manejará la autenticación (CustomUserNameValidator), que hereda de UserNamePasswordValidator, y que está en el ensamblado (proyecto) Project1.

Ejemplo:

public class CustomUserNameValidator : UserNamePasswordValidator {
public override void Validate(string userName, string password) {
if (userName != "miusuario" password != "mipwd") {
throw new SecurityTokenException("Usuario/Contraseña incorrecta");
}
}
}

lunes, abril 02, 2007

Excepciones en WCF I (FaultException)

Cuando planteas la creación de un sistema bajo Windows Communication Foundation, una capítulo entero, lo inviertes en la estrategia de manejo de excepciones. No resulta complejo entender que una excepción se transmite como una "avería" dentro de SOAP.

Durante la captación de información previa a tomar una decisión me encontré con enlaces interesantes, como este de, como no, Rodrigo Corral, o varios documentos explicativos muy útiles como éste o éste, pero sin embargo, desde un punto de vista muy elemental. Los ejemplos del SDK de Windows son, también, de ayuda aunque pasan, también, de escenarios elementales a escenarios muy complejos (o al menos eso me ha parecido a mí).

Una de las batallas más arduas en la que me he visto envuelto a sido una excepción, muy simpática, pero que me ha llevado de cabeza FaultException was unhandled by usercode. En una solución, he puesto todos los proyectos, desde la definición del servidor hasta la implementación del mismo desde el Cliente. Cuando se generaba una excepción en el servicio, ésta no era controlada por try...catch desde el cliente; bueno, a ver, si que lo hacía pero al segundo intento. Esto es, se produce un error en servidor, se para la ejecución, vuelvo a ejecutar con F5 y el cliente obtenía la excepción como era de esperar.

Por si os pasa alguna vez, me han ayudado mucho estos dos enlaces de los foros de MSDN. En concreto éste. (el otro es éste). Sinceramente no me acaba de convencer, pero es lo que hay, almenos por el momento hasta que alguien diga exactamente el por qué.

Ahora me toca probar la capacidad del Enterprise Library en el control de errores, ya os informo.

lunes, marzo 19, 2007

Windows Mobile 6, Demo, SDK, y demás...

En el Download Center de MS hay disponible una versión en flash de Windows Mobile 6. Además, también estan disponibles el SDK tanto de la versión Professional como Standard. Por último, también podeis descarga el MS Device Emulator 2.0.

jueves, marzo 15, 2007

Documentar comentarios de un proyecto

Hace tiempo leí en el blog de Jorge Serrano, una herramienta de Microsoft para generar documentación de un proyecto Visual Studio 2005. La herramienta en cuestión se llama SandCastle y despues de instalar y probarla, la verdad es que me ha sido muy útil.

Sin embargo, es una herramienta de línia de comandos, con lo que no incluye un IDE. Como era de esperar existen varias alternativas al respecto y me quedé con uno, de Eric Woodruff, el cual ofrece un IDE muy similar a NDoc y muy sencillo de utilizar.

Los resultados... estupendos!!! El único inconveniente ha sido que al establecer la propiedad SdkLinkType a MSDN, para que consuma los WebServices del mismo, y al requerir salida a Internet mediante proxy me generaba un error tal que:

Info: ResolveReferenceLinksComponent: Preparing to query MSDN topic URL web service.
Error: ResolveReferenceLinksComponent: An error occured while attempting to query the MSDN topic URL web service. The error message is: Error de la solicitud con el c¢digo de estado HTTP 407: Proxy Access Denied.
Last step completed in 00:00:46.6418


La solución (notificada por Eric W) es crear el archivo BuildAssembler.exe.config al mismo nivel que BuildAssembler.exe con la siguiente información que encontrareis en este post.

lunes, marzo 12, 2007

Lanzado .NET CF 2.0 SP2

El equipo de desarrollo de .NET CF ha lanzado el SP2. Por lo visto se realizaron multitud de pruebas de compatibilidad y pese a que la mayoría a pasado el test hay algunas anotaciones a tener en cuenta que podreis encontrar en el blog de los mismos.

La nuevas características se centran, fundamentalmente, en el Remote Performance Monitor, el cual provee posibilidades de supervisión de anomalías en el Garbage Collector. Ésta y demás errores solucionados los encontrareis aquí. Por otro lado, la descarga la teneis disponible aquí.

viernes, marzo 09, 2007

Bluetooth para .NET

Este mes de Marzo se ha publicado en dotNetManía (número 35) un artículo sobre como utilizar Bluetooth en aplicaciones .NET para la Microsoft Bluetooth Stack.

Este artículo es el resultado de la experiencia obtenida en el desarrollo de una libreria que podeis encontrar en desarrolloMobile.NET y que está tanto para Windows Mobile como para Windows XP/Vista.

Podeis también consultar el blog referente al desarrollo en Bluetooth en inglés aquí.

viernes, febrero 23, 2007

ActiveSync 4.5 y Windows Mobile Device Center 6 for Windows Vista, ya disponibles

Acaba de aparecer la versión final de ActiveSync 4.5 que os podeis descarga, bajo registro, desde aquí.

En cuanto a Device Center para Windows Vista el enlace esta aqui. También podeis encontrar las versiones y productos necesarios de ésta última así como las características del mismo.

martes, febrero 13, 2007

Anunciado Windows Mobile 6 en el 3GSM

Ayer 12 de Febrero Steve Ballmer anunció el nuevo software para dispositivos móviles Windows Mobile 6.0.

Siguiendo la evolución de sus antecesores el nuevo Sistema Operativo tendrá mayor integración con las herramientas Office y con servicios OnLine de Internet. Asímismo se ha prestado especial atención a las opciones de seguridad y protección de contenidos. Una de las características que mas me ha llevado la atención es la facilidad que prestará Windows Mobile 6.0 a las operadoras y fabricantes de aparatos para la integración de Voz IP. British Telecom y HP seran los primero en ofrecer dichos servicios.

viernes, febrero 09, 2007

[OT] 070-431: TS: Microsoft® SQL Server 2005 - Implementation and Maintenance

Acabo de llegar de realizar mi primer exámen de certificación de Microsoft. Me decidí, de una vez por todas, a la obtención de una certificación a mediados de enero. Me preparé para el exámen 70-431, Microsoft Certified Techonoly Specialist (MCTS) en SQL Server 2005, ya que era la herramienta cuyos conocimientos básicos llevaba más floja. De esta forma he pretendido confirmar lo que sabía del producto en sus versiones anteriores y por otro lado conocer las nuevas características de SQL Server 2005 y de paso profundizar en temas tan elementables como bloqueos y políticas de alta disponibilidad y rendimiento.

Para los que esteis interesados en este examen, os aconsejo el grupo de usuarios de MSN,

jueves, febrero 08, 2007

SD (Secure Digital) Memory

Interesante post acerca de qué es y como funciona las tarjetas de memoria SD. Además, nos puede ser de utilidad si tenemos pensado la utilización de dicho soporte para nuestras aplicaciones móviles en aspectos tan importantes como capacidad, rendimiento y velocidad.

lunes, febrero 05, 2007

LINQ con .NET Compact Framework 3.5

He estado haciendo las primeras pruebas con LINQ con el CTP de Enero. Realmente he podido aplicar muchos de los ejemplos del artículo de Don Box (The LINQ Project), sin ningún problema.

Cuando abres el Visual Studio Orcas para crear un nuevo proyecto Smart Device, puedes seleccionar entre .NET CF 2.0 y .NET CF 3.5. Aunque selecciones el 3.5 deberás buscar las referencias de LINQ en C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\ mediante Browse, donde encontrarás todos los ensamblados disponibles. Para el caso de LINQ debes seleccionar System.Core.dll, ya que ahí residen las clases (dentro del espacio de nombres System.Query).

jueves, febrero 01, 2007

¿Que es AKU?

AKU es una especie de Service Pack para mobile. Se puede actualizar dependiendo, como siempre, del fabricante, generalmente bajo pago y la web del mismo.

Para saber la versión AKU (Adaptation Kit Update) de tu PDA, mira en Acerca de. Justo después de la versión del sistema operativo 5.1.1702, por ejemplo, hay el apartado (Compilación 14366.1.0.1) o (Build in english). Bien pues el 1.0.1 es la versión del AKU.

ActiveSync 4.5, primeras impresiones


Pues me he instalado la Beta 2 y en principio la imagen 'se ha mejorado', evidentemente opinión personal, hacia un diseño más 'visto', es decir más parecido a Windows Vista.

He sincronizado con Exchange y la verdad es que no he tenido ningún problema. Existen opciones nuevas como la de conexión inhalambrica y demás, que serían interesante indagar cuando la versión sea estable.

A las pocas horas de estar conectado he tratado de transferir un archivo de apenas 1Mb y se ha cortado la conexión. A posteriori lo he intentado y tampoco ha sido posible. Desde entonces la conexión se corta intermitentemente. Por lo que indica en el readme.doc, existen cortes de conexiones si no se hace por USB (yo estoy conectando con Bluetooth). Así que, después de verlo un poco por encima lo he desinstalado, he eliminado el archivo RAPI.dll tal y como indica el famoso readme.doc y he vuelto a la normalidad con ActiveSync 4.2. Otro día lo probaré con la 'cuna' USB de la PDA ;-)

En fín, para los que no se atrevan, ya saben.

Lo he probado en Windows XP SP2 con un Windows Mobile 5.0 [AKU 1.0.1] el cual no lleva incorporado la tecnología Direct Push, con lo que entiendo, la sincronización con Exchange seria aún mejor (respecto a las mejoras que aporta dicha tecnología).

ActiveSync 4.5 Beta 2



Ya está disponible la Beta 2 de la nueva versión de Microsoft ActiveSync 4.5. Se trata de la implementación de mejoras que van desde la mejor integración con Windows Media Player 10, pasando por la optimización de sincronización con Outlook hasta la identificación de nombre 'amigables' de dispositivos.

Puede sincronizar desde dispositivos equipados con PPC 2002 hasta los recientes Windows Mobile 5.

lunes, enero 29, 2007

January 2007 Community Technology Preview (CTP) & .NET Compact Framework 3.5

Pues sí, .NET Compact Framework se va a la versión 3.5, juntamente con Orcas y esta vez lo podremos descargar con el CTP de Enero del 2007.

Evidentemente no se trata de la versión definitiva, de hecho algunas características no estaran disponibles en este CTP pero sí iran apareciendo en próximas versiones.

Básicamente el desarrollo del nuevo .NET Compact Framework, se ha orientado a cuatro areas. Desde la implementación de LINQ pasando por la resolución de problemas de creación de aplicaciones en entornos distribuidos hasta la integración con Windows Communication Foundation.

Para más información visitad el blog del equipo de desarrollo de .NET Compact Framework.

martes, enero 23, 2007

System.Transactions Classes

El pasado Diciembre, dotNetManía publicó un artículo referente a la utilización de las clases de System.Transaction en .NET Framework 2.0 del cual tuve el placer de escribir. Para todos aquellos que han 'lidiado' con transacciones antes y ahora podreis ver una situación de lo que aporta .NET Framework 2.0 al respecto.

miércoles, noviembre 08, 2006

Nueva librería bluetooth para Windows XP

Acabo de publicar aqui, la librería (en .NET 1.1) que venía desarrollando para Windows Mobile pero esta vez para Windows XP SP1 y superior. Esta librería permite la manipulación y conexión mediante Bluetooth con otros dispositivos y está en fase de desarollo. La primera versión inicial es la 0.95.

La verdad es que la migración a XP no ha sido muy dura y como era de esperar, gracias a la gran cantidad de API's de Microsoft Bluetooth Stack, el desarrollo y el debug, evidentemente, ha sido más facil.

Estoy acabando un proyecto de Windows Forms que muestre las capacidades de la librería. En cuanto lo tenga pondré un pantallazo y lo 'colgaré'. También voy a tratar de pasarla a .NET 2.0 y para el año que viene poder colgar una librería GPS en .NET que estoy acabando.

De la misma forma he 'colgado' también la versión 0.93 para la plataforma Windows Mobile, para solucionar un par de bugs, y parece ser cada vez más estable. Entre los objetivos de está librería están la conexión con dispositivos manos libres y transferencia de ficheros, aún en desarrollo.

Si estais interesados en cualquier cosa o tenéis alguna sugerencia/crítica ya sabéis, ¡¡un saludo!!

martes, octubre 17, 2006

Conexión entre Visual Studio y dispositivos Windows CE sin ActiveSync

Probablemente en alguna ocasión a surgido la pregunta de si se puede conectar nuestro dispositivo Windows Mobile con el PC de desarrollo sin la necesidad de estar conectado por ActiveSync. Pues es posible realizando las operaciones de copia de archivos necesarios y la comprobación de la IP del dispositivo, tarea que hay que hacer una sola vez, y establecer la conexión de nuestra instancia de Visual Studio con el dispositivo así como la implantación de la seguridad, tarea que debe hacerse cada vez que queramos volver a conectar el dispositivo.

Observaciones
  • Lo he probado utilizando Visual Studio 2005.
  • El paso de copia de archivos la realicé con ActiveSync ( ¿¿ que estupidez no ?? ). En el enlace se habla de "copiar los archivos utilizando cualquier conexión establecida con el dispositivo", con Windows XP SP2, un dispositivo conectado sin ActiveSync es interpretado como un dispositivo USB y pedirá permiso para buscar el software asociado en la mayoría de los casos no sabrá instalarlo. Otra alaternativa es mediante Bluetooth, Irda, o copiando los archivos a una tarjeta de almacenamiento SD, MiniSD, MMC, etc.
  • Seguid lo pasos uno a uno y tened paciencia puesto que la ejecución de cMaccept.exe puede ser lenta. Al final, sin embargo, ¡¡siempre acaba conectando!!

Nuevo Airis T470


Airis entra en el mundo del smartphone con el modelo T470 basado en Windows Mobile 5.0. Sus características són:

  • Windows® Mobile® 5.0 for Smartphone
  • GSM/GPRS Tri-banda 900/1800/1900
  • Pantalla 1,9" TFT, 65.000 colores
  • 128 MB Flash ROM + 64 MB SDRAM
  • Slot para memoria T-flash(microSD)
  • Bluetooth v1.2 e infrarojos


jueves, septiembre 14, 2006

Peculiaridades del uso de menús en Smartphone


La utilización de menús en dispositivos Smartphone, donde la pantalla no es táctil y los controles de entrada (right and left keys) resultan como los principales ( y a veces únicos ) interfaces de entrada (junto a back key), resulta algo 'engorroso'. Para evitarlo, conozcamos las restricciones del uso de menús para Smartphone.

La primera restricción (bastante obvia) es que sólo pueden haber 2 menús principales, los que corresponden a las teclas de control izquierda (left softkey) y derecha (right softkey). Ésta última, la softfkey derecha, es la única que puede contener submenús, la de la izquierda no. Sin embargo Visual Studio en tiempo de diseño no alertará sobre el incumplimiento de alguna de las restricciones; en tiempo de ejecución, en el método InitializeComponent, emitirá una excepción del tipo NotSupportedException. La eliminación de las teclas de control izquierda o derecha en tiempo de ejecución no están permitidas aunque sí los submenús.

Ampliar más información.

viernes, septiembre 01, 2006

Tecnología Direct Push en Messaging and Security Features Pack

Quizás una de las características más importantes de Messaging and Security Feature Pack para Windows Mobile 5.0 sea la implantación de Direct Push Technology. Un dispositivo Windows Mobile 5.0 equipado con dicha tecnología al conectarse a un servido Exchange Server 2003 SP2, obtendrá prácticamente de manera inmediata el correo, tareas, citas del calendario sin pasar por 'terceras partes'.
Para los que queráis, existen actualizaciones para algunos dispositivos. Si además queréis trabajar con el emulador, las imágenes de Windows Mobile 5.0 con MSFP ya están disponibles.

¡A disfrutarlo!

PD: Para los que tengais PocketPC HP como yo, para las hx2100, hx2400, hx2700 podeis comprar las actualizaciones en iPAQ Choice.

martes, agosto 29, 2006

.NET Compact Framework 2.0 Service Pack 1 Patch

Despues de la aparición de la Beta 1 ya se ha echo ofical el lanzamiento del Service Pack 1 de .NET Compact Framework 2.0. Podeis descargaros la versión en español aqui. Las nuevas características así como los problemas solucionados los podeis encontrar aqui. Quizás la que más llame la atención y la que mas ansiamos es la compatibilidad con Windows Mobile 4.2 en la instalación del CAB.

ActiveSync 4.2 ya disponible

Ya está disponible la nueva versión de ActiveSync 4.2. Incorpora numerosas mejoras respecto a su predecesor sobre todo en cuanto a conectividad e interación con Microsoft Outlook.

jueves, julio 27, 2006

Mobile Client Software Factory – July 2006

Dentro del apartado de patterns & practices, Microsoft ofrece un conjunto de patrones de desarrollo para movilidad, Smartphone y Pocket PC, en la que incluye muchas de las nuevas características de .NET Compact Framework 2.0 como connectividad, multidimensionamiento de pantallas y seguridad, entre otras.

miércoles, julio 19, 2006

Nueva CTP de Windows Vista

Encontré en el blog de Tom Archer una tabla con todas las versiones Beta lanzadas hasta la fecha con sus correspondientes SDK, Extensiones para Visual Studio (incluyendo Orcas).

Además en www.seewindowsvista.com podran encontran videos de las futuras aplicaciones de WPF,WCF y WWF.

miércoles, junio 21, 2006

Mi Libreria


Acabo de publicar una nueva sección en desarrolloMobile.NET; se trata de una librería, inicialmente Bluetooth, para el desarrollo desde dispositivos móviles. Mi intención es ir añadiendo código para que pueda ser consultado en modo binario o en algunos casos a nivel de código con el propósito que sea de utilidad para aquellos que o bien estan empezando en el desarrollo de dispositivos móviles o bien desean saber más sobre un determinado tema. La primera piedra es una librería básica de acceso mediante Bluetooth (versión 0.90). Tengo varios frentes abiertos que me gustaría compartir y que trataré, en la medida de lo posible, ir enriqueciéndola.

jueves, mayo 25, 2006

Estableciendo alias para las referencias

Durante el desarrollo de un pequeño ejemplo en Visual Studio 2005, en el que participaban una ensamblado librería (DLL) y un ensamblado aplicación (EXE), me di cuenta de que existían dos clases de ambos proyectos que no sólo se llamaban igual sino que además el nombre del namespace eran idénticos.

Desde la aplicación EXE referencio la DLL, con lo que en lugar de cambiar nombres traté de instanciar la clase EXE desde globla::, pero sin embargo esto no tiene ningún sentido puesto que todas los namespaces proceden de global, con lo que el compilador me generaba un error.

La solución la encontré en los alias de los espacios de nombres. Cuando referencio la DLL, en las propiedades de referencia (reference properties) existe un propiedad, Alias, la cual implícitamente tiene valor global. Si asigno un alias determinado que distinga que se trata del espacio de nombres de la DLL el problema se soluciona. Lo único que hay que tener en cuenta es que al instanciar la clase del espacio de nombres indicado deberemos también indicar el alias.

//clase de la DLL
AliasDLL::ClasesGenericas.ClaseA a1 = new AliasDLL::ClasesGenericas.ClaseA();
//clase de la EXE
global::ClasesGenericas.ClaseA a2 = global::ClasesGenericas.ClaseA();

miércoles, mayo 10, 2006

Anuncio de la .NET COMPACT FRAMEWORK SP1 Beta1

El equipo de desarrollo de .NET CF anunció hace unos días la primera beta del SP1.

Las nuevas funcionalidades y modificaciones de bugs reportados las podeis encontrar en el enlace adjungo.

La descarga la encontrareis aqui.

miércoles, abril 19, 2006

Habilitar fuentes ClearType en Windows Mobile

Para habilitar o deshabilitar CleatType en Windows Mobile desde una aplicación basada en .NET Compact Framework, podemos utilizar la función SystemParametersInfo de la libreria coredll.dll. La declaración de ésta y para la utilización en un proyecto es de la siguiente manera:

int SPI_SETFONTSMOOTHING = 75;
int SPIF_UPDATEINIFILE = 1;
int SPIF_SENDWININICHANGE = 2;

[DllImport("coredll.dll")]
private extern static int SystemParametersInfo
(int uAction, int uParam, int lpvParam, int fuWinIni);

Dónde para establecer ClearType llamaremos a la función de esta manera:

SystemParametersInfo (SPI_SETFONTSMOOTHING,1,0,SPIF_SENDWININICHANGE SPIF_UPDATEINIFILE);

y para deshabilitarla cambiamos el 1 por un 0 en el parámetro uParam.

Pueden descargarse un programa de apenas 6 kb, para plataforma Windows Mobile Smartphone, MPX220 ClearType para MPX220, funcional para otros móviles, desarrollado con VS .NET 2003 aquí.

jueves, marzo 23, 2006

Error: No se puede establecer la conexión. Asegúrese de que el dispositivo esta fi­sicamente conectado al PC de desarrollo.

Si soy sincero he oido hablar de este error desde la aparición de Visual Studio .NET 2003, y con mayor frecuencia en las nuevas releases de ActiveSync, pero jamás me había encontrado, hasta hoy. Oí que se trataba de un bug y en algunos casos leí que reinstalando el Visual Studio .NET 2003 se solucionaba, sin embargo, me niego a perder una mañana entera reinstalando VS .NET y cía.

Pues bien encontré una solución sencilla. La encontré en un rincón de la web de Microsoft dedicado a FAQ's (cuyo enlace original había caducado) y por ello lo explico integramente aquí; por lo visto al deinstalar versiones anteriores de ActiveSync, elimina claves del registro necesarios para la implementación. La solución es sencilla y la tenemos en nuestro propio PC. En la carpeta [Archivos de programas]\Microsoft Visual Studio .NET 2003\CompactFrameworkSDK\WinCE Utilities\WinCE Proxy Ports Reg existe un fichero llamado ProxyPorts.reg el cual debemos ejecutar en nuestro PC. Seguidamente desconectamos el dispositivo de ActiveSync y lo volvemos a conectar y tratamos de implementar de nuevo. Si esto no fuera necesario hacemos un soft reset del dispositivo, aunque a mí no me ha hecho falta este último paso.

Pues nada, ¡espero que os sirva!

viernes, marzo 10, 2006

Nueva imagen de desarrolloMobile.NET

Hace justamente un año que empecé a desarrollar lo que pretendía ser un centro de recursos para desarrollo de dispositivos móviles en español en Internet. Durante este primer año he tratado de añadir enlaces y recursos para enriquecer el sitio Web, pero la falta de tiempo, la poca agilidad para la insercción de recursos no me permitieron darle el empuje que en un principio quise, además del pobre diseño que inicialmente presentaba.
Despues de plantearme el pasarlo a ASP.NET 2.0, idea que descarté ya que no soy ningún experto en ASP e implicaba empezar el proyecto desde zero para aprovecharlo al máximo, decidí darle mayor agilidad para la insercción de recursos y darle un diseño nuevo en ASP.NET 1.1 además de otras mejoras, gracias a la ayuda y consejos de mi colega del departamento de T.I. de MRW, Juan Carlos, un experto en desarrollo web.
Ahora que desarrolloMobile.NET posee un nuevo 'look' y un mecanismo que me permitirá más facilidad a la hora de añadir recursos, espero que el tiempo me brinde la oportunidad de hacer crecer el site.

lunes, febrero 20, 2006

Name mangling, __declspec(dllexport), P/Invoke y DUMPBIN, (consideraciones varias)


El objetivo de este post es explicar consideraciones a muy bajo nivel de las librerias nativas desarrolladas con VC++ que quieran ser utilizadas desde código administrado mediante P/Invoke.

C++ fue el primer lenguaje que soporto las funciones sobrecargadas en entornos Windows. El problema de tener varias funciones llamadas igual, diferenciándose por el número y/o tipo de parámetros fue resuelto por el compilador asignando a cada función nombres 'especiales' para que el 'lincador' pudiera diferenciarlas. Esta técnica es conocida como 'name mangling'.
El problema se presenta cuando se quiere acceder desde un proceso externo a una de las funciones nativas. Pese a que el nombre de la misma es conocida por nosotros, el 'name mangling' ha intervenido y probablemente el nombre de la función internamente sea remotamente distinta de la original, aunque la libreria funcione correctamente.
VC++ soluciona este inconveniente mediante la macro __declspec(dllexport), que debe ser declarada en todas las funciones que sean susceptibles de ser llamadas desde un proceso externo. Asímismo deberemos indicar en un archivo .def el nombre de la librería y las funciones que seran exportadas precedidas por la palabra EXPORTS, ejemplo:


LIBRARY CPP_LibreriaEjempo
EXPORTS
Funcion1
Metodo2


Para asegurarnos que las funciones serán 'visibles' desde el exterior una vez compilada la libreria o bien queramos ver qué funciones lo són para una determinada librería que no hemos desarrollado nosotros, visual Studio .NET ofrece una herramienta muy interesante DUMPBIN. DUMPBIN está disponible desde la consola de comandos de Visual Studio .NET y deberemos pasarle el parámetro /EXPORTS para que no muestre la funciones 'exportables'. En la imagen un ejemplo de DUMPBIN de la libreria user32.dll.