13

Click here to load reader

Programación de dispositivos móviles con Visual Studio .NET (ejemplo)

  • Upload
    itsmans

  • View
    61

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Programación de dispositivos móviles con Visual Studio .NET (ejemplo)

Programación de dispositivos móvilescon Visual Studio .NET

Martín Segado

Ejem

plo d

e lec

tura

Page 2: Programación de dispositivos móviles con Visual Studio .NET (ejemplo)

Sipnosis

En este texto se aborda la implementación de aplicaciones para dispositivos móviles, utilizando latecnología Microsoft .NET 2.0 bajo el entorno .NET Compact Framework, de forma que obtengamosuna primera impresión.

Principalmente está basado en los dispositivos Pocket PC, aunque todo lo descrito puede ser fácilmen-te reutilizable para dis positivos SmartPhones, los cuales ejecutan Microsoft Windows Mobile 5.0.Esta obra abarca diversos temas basados en el lenguaje de programación Vi sual Basic .NET y en elentorno de desarrollo que nos proporciona Microsoft, Visual Studio .NET 2005. Muestra las diferen-cias entre el entorno .NET Framework y el .NET Compact Framework y como desarrollar aplicacionescontra base de datos SQL Server 2005 Compact Edition.

Ingeniero Informático por la Universidad de Granada con más de 10años de experiencia en el mundo del desarrollo de software, tanto Javacomo .NET. Pertenece a la familia de Alhambra-Eidos desde 2004 y hasido autor también de la versión previa a este libro (Desarrollo para dis-posi tivos móviles con .NET Compact Framework 1.1).

Cuenta con diversas certificaciones, entre las cuales cabe mencionar:MCAD, MCSD, MSF, MCPD y varios cursos y exámenes realiza dosentre los que podemos destacar los siguientes: 70-298 Designing Securi-ty for a Microsoft Windows Server 2003 Network, 70-542 MicrosoftOffice Share Point Server 2007 - Application Development, 70-235 De-veloping Business Process and Integration Solutions Using Biztalk Ser-ver 2006 y 70-445: Microsoft SQL Server 2005 Business Intelligence -Implementation and Maintenance.

Ejem

plo d

e lec

tura

Page 3: Programación de dispositivos móviles con Visual Studio .NET (ejemplo)

LuarnaProgramación de dispositivos Móviles con Visual Estudio .Net© Martín Segado - Alhambra Eidos© De esta edición: 2009, Luarna Ediciones, S.L.

www.luarna.com

Madrid, octubre de 2009

ISBN: 978-84-92684-53-3

Versión 1.0 (19-10-2009)

Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo puede ser realizadacon la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de DerechosReprográficos, www.cedro.org) si necesita fotocopiar, escanear o hacer copias digitales de algún fragmento de esta obra.Ej

emplo

de

lectu

ra

Page 4: Programación de dispositivos móviles con Visual Studio .NET (ejemplo)

Programación de dispositivos Móviles conVisual Estudio .NET

Martín Segado

Ejem

plo d

e lec

tura

Page 5: Programación de dispositivos móviles con Visual Studio .NET (ejemplo)

P á g i n a | 5

Indice

Pocket PC y .Net Compact Framework ...........................................................................................7Introducción ....................................................................................................................................7Diferencias entre .Net Compact Framework y el Framework ...........................................................8

Características no incluidas en .NET Compact Framework ..........................................................9Sobrecargas de métodos ..........................................................................................................9Controles no incluidos .............................................................................................................9Funcionalidad XML ................................................................................................................9Compatibilidad con bases de datos......................................................................................... 10Serialización binaria .............................................................................................................. 10Acceso al registro de Windows .............................................................................................. 10Aprovechamiento de los componentes COM ......................................................................... 10Seguridad .............................................................................................................................. 10Servicios Web XML .............................................................................................................. 10Impresión .............................................................................................................................. 11GDI+ ..................................................................................................................................... 11Entorno remoto ..................................................................................................................... 11

Desarrollo de proyectos con .NET ................................................................................................. 11Características particulares de un Pocket PC .............................................................................. 11

Opciones de posición y tamaño del formulario ....................................................................... 12Menús ................................................................................................................................... 12Panel del teclado virtual (InputPanel) .................................................................................... 13Aplicaciones no gráficas y de consola .................................................................................... 14Debugando ............................................................................................................................ 15

Creación de un proyecto Pocket PC ........................................................................................... 15“Hola mundo” con Visual Studio .NET (Visual Basic) ........................................................... 15Definición de las propiedades del proyecto ............................................................................ 16Generando el interfaz ............................................................................................................ 18

Pruebas de la aplicación con el emulador de Pocket PC ................................................................. 21Realización de pruebas en el emulador ...................................................................................... 21Realización de pruebas en el dispositivo real ............................................................................. 21Compilación e instalación de aplicaciones en el Pocket PC ........................................................ 22

Instalar aplicaciones en el dispositivo móvil .......................................................................... 22Cómo crear un acceso en el botón Inicio ................................................................................ 22

SQL Server CE ............................................................................................................................... 24Introducción .................................................................................................................................. 24Instalación y configuración en el servidor ...................................................................................... 25

ActiveSync ............................................................................................................................... 25Instalación en el Pocket PC ........................................................................................................... 26Acceso a datos con ADO.NET Compact Framework ..................................................................... 26Replicación y sincronización de datos ........................................................................................... 33

Instalación de los componentes necesarios para la replicación de SQL Server CE ...................... 34Replicación de los datos a través de una aplicación Visual Basic .NET ...................................... 43

Tablet PC ........................................................................................................................................ 45Introducción al Tablet PC.............................................................................................................. 45¿Qué es un Tablet PC? .................................................................................................................. 46

El hardware ............................................................................................................................... 49Desarrollo de proyectos con .NET ................................................................................................. 50

El SDK ..................................................................................................................................... 50Instalación del Tablet PC SDK ...................................................................................................... 51Creación de un proyecto Tablet PC ............................................................................................... 54Extensiones para los Tablet PC ..................................................................................................... 60Ejem

plo d

e lec

tura

Page 6: Programación de dispositivos móviles con Visual Studio .NET (ejemplo)

P á g i n a | 6

Ink (Tinta) ....................................................................................................................................... 61Introducción .................................................................................................................................. 61Controles para trabajar con tinta (InkEdit, InkPicture) ................................................................... 61Controles input Panel .................................................................................................................... 64InkCollector .................................................................................................................................. 64Reconocimiento de escritura (Ink Recognition) ............................................................................. 66Configuración del reconocimiento adecuado (Idioma, gesturas, zoom, etc) .................................... 70InkOverlay, InkSelecting, InkErasing ............................................................................................ 71Ink como tipo de datos (Ink serialización) ..................................................................................... 77Como guardar y recuperar el tipo de dato Ink ................................................................................ 78

Ejem

plo d

e lec

tura

Page 7: Programación de dispositivos móviles con Visual Studio .NET (ejemplo)

P á g i n a | 7

Pocket PC y .Net Compact Framework

IntroducciónAunque no es una novedad, estamos viviendo la era de transición hacia la tecnología de las comunica-ciones inalámbricas. A diario podemos leer noticias sobre Intel, Nokia y Microsoft, o incluso de lamisma Unión Europea, que adoptan medidas con clara tendencia a potenciar y exprimir las conexionesinalámbricas.

Como sabemos, la tecnología sin cables lleva estando en el punto de mira desde hace mucho tiempo.Un mercado de móviles bien desarrollado, el desarrollo de la versión sexta del protocolo de Internet yla llegada de las tecnologías de conexión a Internet por banda ancha inalámbrica componen un nichode mercado muy suculento para las compañías.

En un futuro podremos observar como la práctica totalidad de la industria del software y del hardwarelanzará nuevos productos o versiones de los antiguos con propiedades inalámbricas, infrarrojos, Blue-tooth, Wireless Wi-fi, y muchas más tecnologías que proporcionan la posibilidad de comunicaciónentre dispositivos de forma rápida y sencilla.

Dicho esto, en este capítulo nos basaremos en uno de estos productos, el Pocket PC.

La plataforma Pocket PC es la denominación usada para referenciar a dispositivos de pequeño tamañocon capacidades similares a la de un ordenador personal. Funcionan de manera autónoma y estánEj

emplo

de

lectu

ra

Page 8: Programación de dispositivos móviles con Visual Studio .NET (ejemplo)

P á g i n a | 8

equipados con la suficiente conectividad para relacionarse bien con sus hermanos mayores de sobre-mesa. La base de su funcionamiento es un potente y compacto sistema operativo, denominado oficial-mente Microsoft Windows CE en su versión 3.0. Las siglas CE provienen de Compact Edition o edi-ción compacta. Esto dio lugar a un sistema operativo denominado más coloquialmente como PocketPC 2000, después Pocket PC 2002 y, posteriormente, a una edición más evolucionada llamada Win-dows Mobile 2003.

Se denomina Pocket PC a la implantación del sistema operativo Windows CE sobre un dispositivo demano que carece de teclado. En su lugar se cuenta con una pantalla táctil de 240 x 320 puntos, es de-cir, la mitad en ambos tamaños que el formato estándar VGA, 640 x 480, pero en sentido apaisado.

Figura 1. Pocket PC

Diferencias entre .Net Compact Framework y el Frame-workEl Microsoft .NET Compact Framework es la plataforma de desarrollo .NET para dispositivos peque-ños y es la causa principal del éxito de Microsoft en proveer a los usuarios de grandes experiencias encualquier tiempo, lugar o dispositivo. El .NET Compact Framework trae el mundo del código gestio-nado (manager code) y Servicios Web XML a los dispositivos móviles, y habilita la ejecución de apli-caciones descargables en dispositivos tales como Asistentes Digitales Personales (PDAs), teléfonosmóviles, Pocket PCs, etc.

Debido a que el .NET Compact Framework es un subconjunto del .NET Framework, los desarrollado-res pueden fácilmente reutilizar código existente basado en varios entornos. Microsoft entregará ex-tensiones para Visual Studio .NET, llamadas ‘Smart Device Programmability’ para Visual Studio.NET. Esto significa que los cuatro millones de desarrolladores que tienen experiencia con la versiónEj

emplo

de

lectu

ra

Page 9: Programación de dispositivos móviles con Visual Studio .NET (ejemplo)

P á g i n a | 9

completa del .NET Framework pueden ahora desarrollar aplicaciones para pequeños dispositivos queejecutan la versión compacta del Framework y debido a que cada desarrollador .NET será también undesarrollador de aplicaciones para pequeños dispositivos, crecerá exponencialmente el número dedesarrolladores de .NET Compact Framework, más que para cualquier otra plataforma de desarrollopara pequeños dispositivos.

Características no incluidas en .NET Compact FrameworkHa sido necesario realizar importantes recortes en .NET Framework para adaptarlo a las limitacionesde funcionamiento de Windows CE. En esta sección se abordarán las características más destacablesde .NET Framework que no se han incluido en .NET Compact Framework.

Sobrecargas de métodos

La sobrecarga de un método ofrece maneras alternativas de llamar a dicho método. También aumentael tamaño del Framework. Por este motivo, .NET Compact Framework ha eliminado las sobrecargasde prácticamente todos los métodos.

Hay dos consecuencias básicas de esto. Primero, es bastante probable que una determinada sobrecargade un método que solía utilizar con una aplicación de escritorio, no esté disponible a la hora de des-arrollar aplicaciones basadas en .NET Compact Framework. Segundo, cuando esté leyendo la docu-mentación, preste mucha atención a si se admite un determinado método en .NET Compact Frame-work.

Controles no incluidos

Hay una serie de controles de .NET Framework que no se han incluido en .NET Compact Framework.La ausencia de la mayoría de estos controles carece de importancia para los desarrolladores de aplica-ciones móviles. Teniendo en cuenta que las aplicaciones móviles apenas imprimen, no es ningún pro-blema eliminar la familia completa de controles relacionados con la impresión. Por tanto, se han eli-minado los controles CrystalReportViewer, PageSetupDialog, PrintDialog, PrintDocument, PrintPre-viewControl y PrintPreviewDialog. Puede sustituir la mayoría de los cuadros de diálogo que faltan porsus propios cuadros de diálogo, o bien utilizar directamente los cuadros de diálogo del sistema me-diante la API de Windows CE.

De todas formas, están empezando a aparecer controles de otros fabricantes que sustituyen a los con-troles que no se han incluido en .NET Compact Framework.

Funcionalidad XML

Aunque se ha incluido buena parte de la funcionalidad de XML de .NET Compact Framework, ha sidonecesario recortarla. El componente clave relacionado con el XML que no se ha incluido es el espaciode nombres System.Xml.XPath. El espacio de nombres XPath hacía la interpretación del XML mu-cho más fácil que los métodos que incorpora .NET Compact Framework. Para compensar esto, puedeutilizar una combinación de las búsquedas recursivas e iterativas con el modelo de objetos de docu-mento (DOM, Document Object Model).

Hay otro componente clave XML que no se ha incluido en .NET Compact Framework: XSLT (Exten-sible Stylesheet Language Transformation). Mediante XSLT, es posible convertir un documento XMLen diferentes formatos.Ej

emplo

de

lectu

ra

Page 10: Programación de dispositivos móviles con Visual Studio .NET (ejemplo)

P á g i n a | 10

En relación con el XML, .NET Compact Framework no ofrece actualmente compatibilidad para eldesarrollo de servicios Web XML basados en dispositivos.

Compatibilidad con bases de datos

.NET Compact Framework ofrece un conjunto robusto de herramientas relacionadas con los datos. Lacompatibilidad con la base de datos local la proporciona SQL Server CE. En el servidor, .NET Com-pact Framework ofrece compatibilidad con SQL Server.

Tenga en cuenta que hay fabricantes que ofrecen componentes de .NET Compact Framework quepermiten trabajar con bases de datos de Pocket Access.

Serialización binaria

Debido a consideraciones de tamaño y de rendimiento, no se han incluido las clases BinaryFormatter ySoapFormatter en .NET Compact Framework.

Acceso al registro de Windows

.NET Framework incorpora el espacio de nombres Microsoft.Win32.Registry, que facilita el trabajocon el registro de Windows desde una aplicación. Obviamente, este espacio de nombres no se ha in-cluido en .NET Compact Framework, ya que hace referencia a Win32 y no a Windows CE. Puedetener acceso al registro de Windows CE llamando a las correspondientes API de Windows.

Aprovechamiento de los componentes COM

El proceso de incorporación de objetos COM en una aplicación basada en .NET Compact Frameworkconsta de dos pasos. Primero, debe escribir un empaquetador DLL no administrado (es decir, en eM-bedded Visual C++) que exponga el objeto COM. Dependiendo de la complejidad del objeto COM,hacer esto puede ser muy sencillo o extremadamente complicado. Segundo, debe utilizar PInvoke paratener acceso al empaquetador DLL. Afortunadamente, la comunidad de desarrolladores ya ha comen-zado a trabajar en proporcionar acceso a los componentes COM utilizados con más frecuencia.

Seguridad

.NET Compact Framework no impide el acceso al código no administrado. Cualquier aplicación puedellamar a una API, ya sea del sistema o no.

Actualmente, no hay ningún tipo de seguridad basada en funciones en .NET Compact Framework. Elobjeto principal no entiende de identidad conocida o de función conocida.

Servicios Web XML

La exclusión más notable de las posibilidades de los servicios Web XML de .NET Compact Frame-work es la posibilidad de utilizar cookies. Las cookies se utilizan con frecuencia para almacenar elestado en el servidor entre diferentes llamadas desde un cliente. Aunque el uso de las cookies en losservicios Web no es tan frecuente como su uso en sitios Web, también se utilizan.Ej

emplo

de

lectu

ra

Page 11: Programación de dispositivos móviles con Visual Studio .NET (ejemplo)

P á g i n a | 11

.NET Compact Framework ofrece posibilidades de cifrado limitadas respecto a los servicios Web.

Impresión

.NET Compact Framework no ofrece ninguna función para imprimir. No hay ninguna manera fácil deinteraccionar con impresoras de red ni con impresoras externas mediante infrarrojos.

La solución para tener acceso a las impresoras de red es crear una aplicación basada en el servidor, queacepte e imprima las tareas enviadas por la aplicación móvil.

Puede enviar una salida mediante el puerto de infrarrojos directamente a impresoras compatibles coninfrarrojos. Puede utilizar el espacio de nombres System.Net.IrDA para tener acceso al puerto de in-frarrojos del dispositivo.

GDI+

Windows CE no es compatible de manera nativa con GDI+, por lo que las funcionalidades relaciona-das con GDI+ se han eliminado de .NET Compact Framework.

Entorno remoto

La primera versión de .NET Compact Framework no es compatible con el entorno remoto.

Desarrollo de proyectos con .NET

Características particulares de un Pocket PCSi el lector ha trabajado alguna vez con una de estas unidades, la mayoría de las características querelataré a continuación le serán sumamente familiares.

Para hacer más fácil la interacción de los usuarios con estos dispositivos, las aplicaciones diseñadaspara ellos normalmente se cargan desde el principio, consiguiendo así que estos puedan moverse rápi-damente entre ellas. Esto es posible debido a una característica que incorporan los Pocket PCs llama-da “smart minimize”, la cuál permite que las aplicaciones sigan cargadas en segundo nivel cuando nose están utilizando, para que puedan ser activadas de nuevo fácilmente en el momento en que el usua-rio así lo requiera, manteniendo el estado en el que el usuario las dejó de utilizar. Mientras que unaaplicación permanece en el estado “smart minimized”, no está visible para el usuario.

Las aplicaciones para Pocket PC basadas en el .NET Compact Framework usan la propiedad Minimi-zeBox del formulario principal para controlar su comportamiento “smart minimize”. Cuando la pro-piedad MinimizeBox está activada (este es el estado por defecto), en la aplicación aparece un botón“X” situado en la esquina superior derecha del formulario, tal y como se muestra en la Figura 2. Pul-sando sobre dicho botón, hacemos que la aplicación pase al estado “smart minimized”.

Ejem

plo d

e lec

tura

Page 12: Programación de dispositivos móviles con Visual Studio .NET (ejemplo)

P á g i n a | 12

Figura 2. Aplicación Pocket Pc con la propiedad "MinimizeBox" activada

Cuando la propiedad “MinimizeBox” del formulario principal está desactivada, la aplicación muestraen su lugar un botón “OK”, tal y como muestra la Figura 3. Cuando dicho botón es pulsado, la aplica-ción se cierra.

Figura 3. Aplicación Pocket PC con la propiedad "MinimizeBox" desactivada

Opciones de posición y tamaño del formulario

Todos los formularios de .NET Compact Framework se crean a pantalla completa, ignorando el valorde las propiedades de tamaño y localización. Sin embargo, en Windows CE, los formularios si queestán definidos por estas propiedades.

Los Pocket PCs suelen tener una pantalla de 240x320 (unas 4" diagonalmente). Si una aplicación pu-diera mostrar varios formularios simultáneamente en una pantalla tan pequeña, acabaría confundiendoal usuario y dificultando su uso. Es por ello pues, por lo que por defecto todos los formularios creadospor el .NET Compact Framework ocupan toda la pantalla, y esto se cumple incluso cuando la aplica-ción intenta crear el formulario con un tamaño más pequeño que la pantalla. Es por ello, por lo queestos formularios a pantalla completa no pueden ser redimensionados ni reposicionados por el usuario.

Menús

Las aplicaciones para Pocket PC basadas en .NET Compact Framework incluyen un menú en el for-mulario principal, cuya posición por defecto se encuentra en la parte inferior del formulario. Sin em-bargo en Windows CE .NET, el formulario principal de una aplicación no es creado inicialmente conun menú, y una vez que este es añadido, es posicionado en la parte superior del formulario.

Los Pocket PCs tienen definida una barra de tareas estándar en la parte inferior de la pantalla, la cuáles usada por todas las aplicaciones para mostrar los menús de selección y mostrar/ocultar el panel delteclado virtual. Cuando un usuario cambia de una aplicación a otra, o de un formulario a otro, la barrade tareas siempre está asociada con el formulario activo en cada momento. Sin embargo, el .NETCompact Framework, oculta la barra de tareas si el formulario activo no tiene un menú asociado, deahí que, el formulario principal sea creado con un menú asociado para prevenir que la barra de tareasquede siempre oculta.Ej

emplo

de

lectu

ra

Page 13: Programación de dispositivos móviles con Visual Studio .NET (ejemplo)

P á g i n a | 13

Los usuarios de Pocket PC normalmente utilizan el estilo de mantener pulsado el elemento para haceruna selección. El TabControl está situado de tal manera que la mano del usuario quedará debajo de él,y no cubrirá el control cuando se esté haciendo una selección.

Con la ayuda del panel de control, es posible posicionar el TabControl en la de la parte superior delformulario, simplemente situando el Panel, en el lugar donde el TabControl es deseado. El TabControlestará pues situado dentro del Panel, sobre el borde superior del formulario.

Panel del teclado virtual (InputPanel)

La mayoría de los Pocket PCs, no tienen teclado, aunque vienen provistos con un teclado virtual (ba-sado en software) para la entrada de datos, tal y como se muestra en la Figura 4.

Figura 4. Pocket PC mostrando el teclado virtual

El .NET Compact Framework provee la clase teclado virtual para facilitar las entradas de datos. Elteclado virtual es una característica específica de los Pocket PC y Tablet PC, por lo que sólo puede serutilizado en aplicaciones para estos dispositivos. Si por ejemplo intentamos instanciar a la clase tecla-do virtual en una aplicación de Windows CE, nos reportará un error.Ej

emplo

de

lectu

ra