Top Banner
Desarrollo de Soluciones Windows Mobile
182

Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Jun 29, 2015

Download

Documents

lroqcor
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de Soluciones Windows Mobile

Page 2: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Agenda

Arquitectura.net

Entorno de desarrollo

.NET Compact Framework

Diseño de interfaces de usuario

Gestión de datos corporativos

Integración con servicios Web

Integración con Outlook Mobile

Optimización y despligue de soluciones de movilidad

Page 3: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

ARQUITECTURA .NET

Framework y Ensamblados

Page 4: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

El producto Visual Studio 2005

Visual Studio 2005 soporta el desarrollo de aplicaciones para: .NET Framework 2.0

SQL Server 2005

.NET Compact Framework 2.0

El Framework 2.0 contiene las mayores mejoras como: ADO.NET 2.0

System.XML 2.0

Windows Forms 2.0

ASP.NET 2.0

Page 5: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Plataforma .NET

Page 6: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

CLR (Common Language Runtime)

Page 7: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Bibliotecas de clase

Page 8: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Ensamblados

Page 9: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Lenguajes soportados por .NET

Ada APL AsmL

Basic BETA BF

Boo C C#

C++ Cobol E# y G#

Eiffel Flash Fortran

Haskell IL/MSIL Java

JavaScript Lexico Lisp

LOGO Mercury Modula-2

Oberon Perl Pascal

PHP Python RPG

Scala Smalltalk SML

Page 10: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Representación del Framework 2.0

Page 11: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Mejoras de productividad en Visual Studio 2005

Editar marcas

Verde para recientemente editado y guardado

Amarillo para no guardado

Code Snippets y code expansions

Inserta código usado comúnmente

Crea Snippets modificados fácilmente

Mejoras de productividad de C#

Soporte „Edit and Continue‟

Automatización de tareas comunes de refactorización

Mejoras de productividad en Visual Basic

Soporte „Edit and Continue‟

Facil acceso a los recursos del sistema y apliacción con la abstracción de MyServices

Page 12: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Entorno de desarrollo

Framework y Ensamblados

Page 13: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Entorno de desarrollo de Visual Studio 2005

Tipos de proyectos

Ventana de soluciones

Propiedades de las soluciones

Propiedades de los proyectos

Diagramas de clases

Listas de tareas

Layout de la ventana de diseño

Page 14: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Tipos de proyectos

Page 15: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Ventana de soluciones

Page 16: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Propiedades de las soluciones

Page 17: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Propiedades de los proyectos

Page 18: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Diagramas de clases

Page 19: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Listas de tareas

Page 20: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

.NET Compact Framework

Framework y Ensamblados

Page 21: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Características del entorno de desarrollo de Visual Studio 2005 para el desarrollo móvil

Características de Visual Studio 2005 para el desarrollo en

dispositivos móviles:

Soporte para .NET Compact Framework 2.0

Soporte para Windows Mobile 5.0

Soporte para Microsoft ActiveSync

Device Emulator 1.0

Controles específicos de dispositivo

Soporte multiplataforma

Depurador mejorado

Diseñadores de interfaz de usuario WYSIWYG (Todo lo que ves es todo

lo que obtienes) con soporte para skins

Page 22: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Características de desarrollo de dispositivos en Visual Studio 2005

Gran paridad con la experiencia de desarrollo paraescritorio

Windows Mobile 2003 SDKs in the Box

Desarrollo de código nativo

Migración desde eMbedded Visual C++

MFC 8.0 / ATL / Win32

.NET Compact Framework 1.0 y 2.0

Microsoft SQL Server 2005 Mobile Edition

Soporte para el diseñador de datos

Setup project (CAB)

Page 23: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Características para el Visual Studio 2005 SP1

Añade 15 clases para MFC

Device Emulator 2.0 (Standalone Release)

Mejora el soporte para la migración de aplicacioneseMbedded Visual C++ 4.0

Posibilidad de trabajar con SQL Server 2005 Compact Edition

Actualiza los compiladores nativos y las herramientasremotas

Posibilidad de soportar SDKs basados en Windows CE 6.0

Soporte para Windows Mobile 6 SDKs

Page 24: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Tecnología para el desarrollo móvil

Visual Studio 2005 y Compact Framework 2.0 permiten desarrollar:

Aplicaciones que acceden a datos (BBDD SQL Server Mobile).

Aplicaciones que proporcionan conectividad web (HTTP y Servicios Web).

Código nativo no administrado.

Aplicaciones para dispositivos específicos.

24

Page 25: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Releases y tecnologías

.NET se lleva a los dispositivos

Aplicaciones distribuidasAplicaciones de datos

RendimientoCaracteristicasHerramientas

2002 2003 2004 2005 2006 2007

1.0 1.0 SP1

1.0 SP2

2.01.0 SP3

2.0 SP1

3.5

XNA

2.0 SP2

LandscapeAutoscroll

Smartphone

Windows CE 4.2Remote Performance Monitor

PerformanceGenericsCOM InteropDirect3D

Windows Communication FoundationLanguage Integrated QueryCLR Profiler

Page 26: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Herramientas para desarrolladores de dispositivos

Embedded Visual Tools 3.0

Microsoft eMbeddedVisual C++ 4.0

Visual Studio .NET 2003

Visual Studio 2005

Visual Studio 2008

eVB

WindowsCE30

eVC 3.0

Managed and Native!

Desktop Parity, Designers, Data

Device Emulator 1.0 and 2.0*

.NET CF Framework 1.0 and 2.0

Microsoft Windows CE 5.0 and

6.0

Smartphone and Pocket PC

2003, Windows Mobile 5.0*

Windows Mobile 6*

Native and Managed

Device Emulator 3.0

Security Aware IDE / Unit Testing

Windows CE 5.0 and CE 6.0

Windows Mobile 2003 Smartphone** and Pocket PC

(**Native Only)

Windows Mobile 5.0 Smartphone

Windows Mobile 5.0 Pocket PC

Windows Mobile 6.Professional*

Windows Mobile 6 Standard*

.NET Compact Framework 2.0 and 3.5

Managed Only

Windows CE 4.2

.NET Compact

Framework 1.0

Smartphone and

Pocket PC 2003

Native Only

Windows CE 4.0 5.0

Smartphone and PPC

2003

X86 Emulator

Page 27: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Características de la API incluidas en los SDKs de Windows Mobile5.0:

Telefonía: la clase Microsoft.WindowsMobile.Telephony.Phone permite programar aplicaciones que pueden iniciar una llamada telefónica.

Pocket Outlook: modelo de objetos que ayuda a incorporar datos PIM (Personal Information Manager) dentro de las aplicaciones Windows Mobile 5.0. Proporciona:

Soporte administrador tanto para correo como para SMS.

Nueva API de mensajería para mostrar los correos electrónicos existentes, usar el sistema de mensajería SMS y formularios de correos para componer nuevos mensajes y controlar la cuenta activa actual en el sistema de mensajería.

Sincronización de datos en un dispositivo que tenga acceso a un servidor con el IIS de Microsoft (Microsoft Internet Information Services).

Configuration Manager: Se puede utilizar el nombre de espacio y ensamblado Microsoft.WindowsMobile.Configuration.ConfigurationManager para configurar un dispositivo. Este nombre de espacio usa XML para enviar la configuración al dispositivo Windows Mobile 5.0. Esto simplifica la configuración y el despliegue de proyectos Windows Mobile.

Características del SDK de Windows Mobile 5.0 para Visual Studio 2005

27

Page 28: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

API de estado y Notification Broker: proporciona un mecanismopara almacenar aplicaciones en un dispositivo e información delestado del sistema.

Características:

Se accede a ella desde Microsoft.WindowsMobile.Status.

Notifica a las aplicaciones acerca de los eventos que están ocurriendo en el

dispositivo o en otras aplicaciones. Por ejemplo, una aplicación que

consume mucha energía puede ser notificada acerca de los cambios en el

estado de la batería.

Monitoriza y registra claves en el sistema. El archivo de cabecera (snapi.h)

contiene definiciones para la clave del registro, ruta, valor y máscara de bits

para todas las notificaciones base que son proporcionadas por el sistema.

Características del SDK de Windows Mobile 5.0 para Visual Studio 2005

28

Page 29: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Novedades en los SDKs de Windows Mobile 5.0: Entorno de desarrollo: Se puede desarrollar de forma nativa en C++ o de

forma manejada en C# o VB.NET usando Visual Studio 2005 y .NET CompactFramework.

Documentación: La futura documentación de Windows Mobile contendráinformación basada en tareas para ayudar a los desarrolladores a crear, testar, ydesplegar aplicaciones para dispositivos PPC o Smartphone basados en WindowsMobile 5.0. La sección de referencia de los desarrolladores incluye informaciónacerca de más características de Windows Mobile. La ayuda de Windows Mobile esactualizada mensualmente.

Sistemas de ficheros y almacenamiento de datos: Windows Mobile soportaEDB (Bases de datos empresariales).

Desarrollo de código manejado: El SDK de Windows Mobile 5.0 incluye lalibrería de clases Microsoft.WindowsMobile, diseñada para ser un suplemento.

Seguridad: Los Pocket PCs basados en Windows Mobile proporcionan soportepara el modo de seguridad de una capa, que distingue entre aplicaciones firmadasy no firmadas.

Características del SDK de Windows Mobile 5.0 para Visual Studio 2005

29

Page 30: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Configurar el entorno de Visual Studio 2005

1. Instalar las herramientas de desarrollo: Instalar las herramientas en el

siguiente orden …

2. Seleccionar un dispositivo: Para asegurarse de que se nos avisa cuando

se selecciona un dispositivo al desplegar nuestra solución:

En Visual Studio 2005 en el menú Herramientas clic en Opciones

Herramientas de dispositivo General. Si las herramientas de dispositivo

no están visibles, seleccionar Ver todas las opciones en la parte inferior del

cuadro de diálogo de opciones.

Seleccionar la casilla de verificación de Mostrar las opciones de dispositivo

antes de desplegar un proyecto de dispositivo. Para incluir el archivo de datos

en el proyecto actual, en Archivo de base de datos local Si.

30

Visual Studio 2005

SQL Server 2005

ActiveSync 4.2

Windows Mobile 5.0 SDKs.

Page 31: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

3. Crear la aplicación: En Visual Studio 2005 Archivo clic en Nuevo Proyecto.

En el cuadro de Nuevo proyecto en el panel de Tipos de proyecto expandir

el nodo Visual Basic o Visual C#.

Expandir el nodo Smart Device, seleccionar Windows Mobile 5.0

Pocket PC o Windows Mobile 5.0 Smartphone.

En el panel plantillas seleccionar Aplicación de dispositivo.

En el cuadro de Nombre especificar un nombre para el proyecto.

En el cuadro Localización especificar la ruta donde queremos almacenar

el proyecto OK. Una representación de un dispositivo PPC o

Smartphone aparecerá en el diseñador de Windows Forms. En menú Ver

Explorador de Servidores.

Configurar el entorno de Visual Studio 2005

31

Page 32: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

4. Lanzar el emulador de dispositivos:se puede lanzar de dos maneras.

Usando el cuadro de diálogo de Conectar a dispositivo:

1. En el Visual Studio 2005, hacer clic en Conectar aldispositivo.

2. En el cuadro de diálogo de Conectar al dispositivo de la listade Plataformas, seleccionar una plataforma de dispositivo,desde el cuadro de Dispositivos seleccionar un emulador ydespués hacer clic en Conectar.

Usando el administrador de emulador de dispositivos:

1. En Visual Studio 2005, hacer clic en Herramientas y despuéshacer clic en Administrador de emuladores de dispositivos.

2. En esa ventana, hacer clic con el botón derecho en el emuladorque queramos iniciar y hacer clic en Conectar.

Configurar el entorno de Visual Studio 2005

32

Page 33: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

5. Construir y testear la aplicación en el emulador de

dispositivos:

En Visual Studio 2005, hacer clic en Depurar y hacer clicen Iniciar (o iniciar con depuración).

En el cuadro de diálogo de Implementar, seleccionarel emulador y después hacer clic en Implementar.Se puede ver el progreso en la barra de estado.

Configurar el entorno de Visual Studio 2005

33

Page 34: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Diseño de Interfaces de usuario

Adaptación, usabilidad y estilo

Page 35: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Creando el Interfaz de usuario para una aplicación Móvil

Diferentes dispositivos móviles tienen diferentes resoluciones y tamaños de pantalla,dependiendo del fabricante y de la funcionalidad del dispositivo.

Para proporcionar una buena experiencia de usuario, diseñar la aplicación para ajustarlas variaciones de resolución de pantalla, tamaño, y orientación ajustando la propiedadnecesaria para los controles y las formas.

En este módulo se explicarán:

Recomendaciones de Interfaz de usuario para dispositivos móviles.

Cómo determinar mediante código la configuración de pantalla de undispositivo móvil.

Cómo redimensionar los controles para responder a los cambios deorientación.

Cómo ajustar la resolución de pantalla.

Cómo crear aplicaciones DPI-Aware.

Cómo añadir ayuda a un formulario móvil.

35

Page 36: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Recomendaciones para proporcionar un interfaz de usuario accesible y

una buena experiencia de usuario:

Evitar usar fuentes de tamaño fijo así como fuentes de tamañospequeños

Asegurarse de que los elementos del interfaz de usuario estánclaramente visibles aun con poca iluminación en la pantalla

Asegurarse de que las combinaciones de colores son claras yefectivas

Agrupar los objetos relacionados en la pantalla

Asegurarse de que el tamaño y región de los elementos delinterfaz de usuario son ergonómicos

Evitar menús emergentes

Evitar crear un submenú de un submenú

Minimizar la cantidad de información textual que se muestra en eldispositivo

NOTA: Más información en: http://msdn2.microsoft.com/en-us/library/ms879776.aspx

Recomendaciones de Interfaz de usuario para dispositivos móviles

36

Page 37: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Determinando mediante código la configuración de pantalla de un dispositivo móvil

La orientación de la pantalla de un dispositivo móvil se configura

mediante la propiedad SystemSettings.ScreenOrientation.

Tiene cuatro posibles valores:

Angle0

Angle90

Angle180

Angle270

Angle 0 es la orientación por defecto.

Sintaxis para cambiar la orientación de la pantalla:SystemSettings.ScreenOrientation = ScreenOrientation.<Angle>

37

Microsoft.WindowsCE.Forms

Page 38: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Redimensionar los controles para responder a los cambios de orientación

Propiedad Ejemplo código

Anchor

Button button1 = new Button();

button1.Anchor = (AnchorStyles.Bottom | AnchorStyles.Right);

button1.Size = new Size(10,10);

this.Controls.Add(button1);

Dock

Panel Panel1 = new Panel ();

TextBox textBox1 = new TextBox();

textBox1.Location = new Point(15, 15);

Panel1.Controls.Add(textBox1);

Panel1.Dock = DockStyle.Bottom;

this.Controls.Add(groupBox1);

AutoScroll

El siguiente ejemplo de código evalua la localización de un cuadro de texto y cambia la apariencia

y el comportamiento del contenedor padre – el control Panel.

if (text1.Location.X > panel1.Location.X

|| text1.Location.Y > panel1.Location.Y)

{

panel1.AutoScroll = true;

if( panel1.AutoScrollMargin.Width < 5

|| panel1.AutoScrollMargin.Height < 5)

{

Panel1.Height = Panel1.Height + 10;

}

}

38

Page 39: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Practica: Cambios de orientación

Diseñar el formulario y ajustar la respuesta de sus controles sensibles al cambio de orientación mediante las propiedades Anchor y Dock .

Usar los tres botones para cambiar la horientación

39

Page 40: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Ajustar la resolución de pantalla

Diferentes dispositivos móviles tienen diferentes resoluciones de pantalla o

pantallas de formas diferentes. Se debe cambiar la resolución de la pantalla

del dispositivo para mostrar la aplicación de forma apropiada en cualquier

dispositivo Windows Mobile.

Se puede cambiar la resolución del dispositivo durante la fase de diseño o

configurando el Form-Factor. En aplicaciones para Windows Mobile 5.0

basadas en Pocket PC, se puede configurar el valor del Form-Factor para uno

de los siguientes:

Windows Mobile 5.0 Pocket PC

Windows Mobile 5.0 Pocket PC Phone

Windows Mobile 5.0 Pocket PC Phone Square

Windows Mobile 5.0 Pocket PC Phone Square VGA

Windows Mobile 5.0 Pocket PC Phone VGA

Windows Mobile 5.0 Pocket PC Square

Windows Mobile 5.0 Pocket PC Square VGA

Windows Mobile 5.0 Pocket PC VGA

40

Page 41: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Creando aplicaciones DPI-Aware

Modo Descripción

None Para deshabilitar el escalado automático

this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;

DPI Cuando se ajusta la propiedad AutoScaleMode a DPI se puede dimensionar un

control o formulario relativo a la pantalla. Por ejemplo, para ajustar la escala DPI en

un control que muestra un gráfico, usar el siguiente código:

this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;

El siguiente código especifica que la aplicación ha sido desarrollada para un

dispositivo con una resolución de 96 DPI:

this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96f);

Inherit Para escalar un control de acuerdo con el modo de escalado de este control padre,

ajustar la propiedad AutoScaleMode a Inherit como se muestra aquí:

this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;

41

Page 42: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Creando aplicaciones DPI-Aware

La tabla siguiente muestra las orientaciones de la pantalla de Pocket PC y Smartphone admitidas por .NET Compact Framework. Las dimensiones se expresan en píxeles, ancho por alto.

42

Orientación de la pantalla

Dimensiones típicas para 96 PPP

Dimensiones típicas (alta resolución) para 192 PPP

Vertical - Pocket PCVertical -Smartphone

240 x 320 176 x 220 y 240 x 320

480 x 640352 x 440 y 480 x 640

Horizontal -Pocket PC únicamente

320 x 240 640 x 480

Cuadrado -Pocket PC únicamente

240 x 240 480 x 480

Page 43: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Proporcionada mediante archivos de ayuda en formato HTML.

Métodos:

Llamar archivos de ayuda al lanzar un evento en un control del formulario. En el manipulador del evento, se llama al método ShowHelp.

Llamar al método ShowHelp cuando la opción Help del menú de Inicio es seleccionada.

Ejemplo:private void button1_Click(object sender, System.EventArgs e){

Try{

Help.ShowHelp(this,@"\windows\myappHelp.htm#overview");}

catch (Exception ex){

MessageBox.Show(ex.Message);}

}

Añadir ayuda a un formulario móvil

43

Page 44: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Añadiendo y configurando Controles

Compact Framework proporciona:

Controles como TextBox, Label y Button.

Soporte para funcionalidades comunes de Windows (focus,activation, capture…).

No proporciona características que usen de forma intensiva recursoscomo enumeraciones y eventos no apropiados para aplicacionesWindows Mobile.

En este módulo se explicará: Controles soportados para el desarrollo en Windows Mobile. Manejadores de eventos soportados para controles Windows

Mobile. Implementar notificaciones en un dispositivo móvil.

44

Page 45: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Controles soportados para el desarrollo en Windows Mobile

Control Pocket PC Smartphone

Button Si No

TextBox Si Si

Label Si Si

PictureBox Si Si

Notification Si No

HardwareButton Si No

InputPanel Si No

CheckBox Si Si

DataGrid Si Si

TabControl Si No

RadioButton Si No

ToolBar Si No

NOTA: Mas información en : http://go.microsoft.com/fwlink/?LinkId=71980

45

Page 46: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Manejadores de eventos soportados para controles Windows Mobile

Evento Descripción

Click Lanzado cuando el usuario hace clic en el control

DoubleClick Lanzado cuando el usuario hace doble-clic en el control

HandleCreated Lanzado cuando se crea un manipulador para el control

HandleDestroyed Lanzado cuando el manipulador del control esta en el

proceso de empezar a ser destruido

HelpRequested Lanzado cuando el usuario pide ayuda para un control

Paint Lanzado cuando el usuario repinta el control

EnabledChanged Lanzado cuando la propiedad Enabled cambia

KeyDown Lanzado cuando el usuario presiona una tecla mientras

el control tiene el foco

KeyPress Lanzado cuando el usuario presiona una tecla mientras

el control tiene el foco

Nota: más información en http://go.microsoft.com/fwlink/?LinkId=71982

46

Page 47: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Capturar la entrada del usuario usando el Soft Input Panel (SIP)

• El SIP está controlado por el componente InputPanel. Estecomponente se puede añadir:

Arrastrando desde el cuadro de herramientas. Aparecerá unbotón SIP en la barra de menús.

Mediante código: InputPanel inputPanel1= new InputPanel();

• Se puede programar el SIP. Propiedades:

Enabled: muestra el SIP.

Bounds: devuelve el tamaño del SIP. Siempre devuelve unancho de 240 pixels y una altura de 80 pixels aunque el SIP estehabilitado.

VisibleDesktop: determina el tamaño del área de formularioque el SIP no ocupa.

Evento EnabledChanged: lanzado cuando el SIP es habilitado odeshabilitado.

47

Page 48: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

El ejemplo muestra el SIP cuando el cuadro de texto recibe el foco. El evento EnableChanged

comprueba si el SIP está habilitado o deshabilitado. Si el SIP está deshabilitado, el control TabControl

se pone en pantalla completa.Si el SIP está habilitado, el control TabControl se redimensiona para

ocupar toda el área de la pantalla disponible.

private void inputPanel1_EnabledChanged(object sender, EventArgs e){

if (inputPanel1.Enabled == false){

VisibleRect = inputPanel1.VisibleDesktop;tabControl1.Height = TabOriginalHeight;

}else{

VisibleRect = inputPanel1.VisibleDesktop;tabControl1.Height = VisibleRect.Height;

}}

Capturar la entrada del usuario usando el Soft Input Panel (SIP)

48

Page 49: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Implementar notificaciones en un dispositivo móvil

• Una notificación se lanza en respuesta a un evento o cuando se alcanza una condición.

• La clase Notification implementa funcionalidad de mostrar y responder a las

notificaciones de usuario. Propiedades:

Text: especifica el texto de la notificación. Pueden ser ajustada a HTML o textoplano. HTML es renderizada por el control HTML de Pocket PC. Se puede usar lapropiedad Response de la clase ResponseSubmittedEventArgs para recuperar lacadena de respuesta. Esta cadena de respuesta es analizada para responder a losvalores en el formato HTML.

Visible: crea notificaciones y las muestra como es requerido.

InitialDuration: ajusta el tiempo de muestreo inicial del globo de notificación.

• Pasos para utilizar la clase Notification:1. Crear una instancia de la clase Notification.2. Crear un manipulador de evento para mostrar la notificación.3. Añadir el código para manejar el evento ResponseSubmitted. Se puede usar este

manejador de evento solo si la propiedad Text es ajustada a HTML.4. Recuperar y procesar la respuesta de usuario usando la propiedad Response.

50

Page 50: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Practica:Implementación de SIP

1. Agregar SIP

2. Autoajustar formulario cuando se abra SIP

3. Probarlo con los diferentes cambios de orientación

52

Page 51: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Creando y configurando barras de herramientas y menús

• Las barras de herramientas en un dispositivo móvil son diferentes de lasaplicaciones estándar de escritorio.

• La barra de herramientas en una aplicación de dispositivo móvil muestra unlimitado número de botones en la pantalla.

• Además de la barra de herramientas, las soft keys en un dispositivo móvil,muestran menús y comandos.

• Aparecen dos soft keys en una barra de soft key localizada en la parte inferiorde la pantalla del dispositivo. Estas soft keys muestran una acción y un menúsensible al contexto que puede cambiar dinámicamente por una aplicación.

En este módulo se explicará cómo:

Crear y configurar botones para una barra de herramientasestándar en dispositivos móviles

Crear y configurar menús y soft keys

53

Page 52: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Crear y configurar menús y soft keys

Cuando se crea un formulario, el control MainMenu se añadeautomáticamente. El control MainMenu hace que las soft keys se habiliten parael usuario.

Recomendaciones para cuando se implemente una operación one-handed(para una mano):

Eliminar el stylus cuando se diseña una aplicación

Usar soft keys que son invocadas usando botones de Hardware. Las soft keys actúancomo menús para nuestra aplicación

Dinámicamente cambiar el menú en diferentes formas en la aplicación que es mostrada

Incorporar características como arrow keys (teclas de flechas) y tabuladores para hacerque nuestra aplicación esté libre de stylus

Correctamente ajustar la propiedad TabIndex de todos los controles usados en laaplicación. Esta propiedad define el orden en el cual el usuario puede navegar a través deuna aplicación

Intentar soportar la navegación usando las teclas de dirección de hardware para controles

Extender controles para navegar al siguiente control cuando se pulsa una cierta tecla comoENTER

54

Page 53: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Creando controles modificados

Los controles del Compact Framework 2.0 no soportan todas las propiedades, métodos y eventosdel Framework 2.0.

Para recuperar la funcionalidad perdida se puede:

Crear un control modificado definiendo un tipo público que herede tanto de la clase Controlcomo de la clase UserControl.

Crear nuestras propias clases, propiedades, métodos y eventos.

Crear un control personalizado extendiendo los controles Windows Forms existentes.

Crear un control compuesto.

En este módulo se estudiará: Cómo crear un control personalizado extendiendo un control Windows Forms existente Cómo definir propiedades, métodos y eventos para controles personalizados Cómo personalizar un control para pintar y renderizar

55

Page 54: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Crear un control personalizado extendiendo un control Windows Forms existente

Se pueden derivar controles personalizados de los controles comunes para:

Sobrescribir propiedades, métodos y eventos de controles comunes.

Definir propiedades adicionales, métodos y eventos para un control.

Definir como un control responde a acciones de usuario (TextBox que sólo acepta

datos numéricos).

Pasos para crear un control personalizado extendiendo un control existente Windows

Forms:

1. En Visual Studio 2005 crear un proyecto de librería de controles Windows.

2. Especificar un nombre para el proyecto y la localización donde se quiera guardar el proyecto.

3. En el explorador de soluciones, renombrar el fichero UserControl1.vb o UserControl1.cs. El

nombre que especifiquemos para este fichero será el nombre de nuestro control compuesto.

4. Abrir el código generado por el diseñador en el editor de código. Localizar la clase parcial y

cambiar la herencia en la declaración desde el UserControl para el control requerido – por

ejemplo Button o TextBox.

5. Añadir las propiedades requeridas y métodos para el control

6. Construir el control

7. Crear una aplicación que usará el control personalizado

8. En la aplicación, añadir una referencia a la librería de control del control personalizado

9. Desde el cuadro de herramientas, añadir el control personalizado al formulario

56

Page 55: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Definir propiedades, métodos y eventos para controles personalizados

Funcionalidad Código de ejemplo

Propiedades

El siguiente código de ejemplo crea una propiedad para que la imagen de fondo sea dibujada detrás del texto del

botón.

public Image BackgroundImage

{

get { return this.backgroundImage; }

set { this.backgroundImage = value; }

}

Métodos

El siguiente código de ejemplo crea un objeto bitmap, lo llena con un color y dibuja una elipse en el objeto bitmap para

hacer que el objeto se parezca a una imagen personalizada.

Bitmap MakeBitmap(Color color, int width, int height)

{

Bitmap bmp = new Bitmap(width, height);

Graphics g = Graphics.FromImage(bmp);

g.FillRectangle(new SolidBrush(color), 0, 0,

bmp.Width, bmp.Height);

g.DrawEllipse(new Pen(Color.DarkGray), 3, 3,

width - 6, height - 6);

g.Dispose();

return bmp;

}

57

Page 56: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Definir propiedades, métodos y eventos para controles personalizados

Funcionalidad Código de ejemplo

Eventos El siguiente código de ejemplo personaliza la bandera pressed a True cuando el botón del ratón

está presionado e invalida el formulario para causar un repintado. También reinicia la bandera

pressed cuando el botón del ratón es liberado e invalida el formulario para repintar el botón.

protected override void OnMouseDown(MouseEventArgs e)

{

this.pressed = true;

this.Invalidate();

base.OnMouseDown (e);

}

protected override void OnMouseUp(MouseEventArgs e)

{

this.pressed = false;

this.Invalidate();

base.OnMouseUp (e);

}

58

Page 57: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Personalizar un control para pintar y renderizar

Al crear un control personalizado hay que escribir el código paraimplementar el repintado del foreground.

En un control ButtonImage se puede sobreescribir el método OnPaint parapintar tanto el foreground como el background del control.

Pasos para pintar el control ButtonImage:1. Sobrescribir el método OnPaint para pintar el foreground y el background.

2. Sobrescribir el método OnPaintBackground. Es aconsejable evitar llamar a la implementación de la clase base ya que pintaría el background.

Nota: El método OnPaintBackground es llamado por el control base para dibujar el background. Si no se sobrescribe este método, aparecerá flickering (parpadeo) cuando se redibuje el control. El flickering ocurre ya que el método OnPaintBackground es llamado antes del método OnPaint.

3. Dibujar el background en el método OnPaint. Después, dibujar el foreground (usa padding para asegurarse que el texto es dibujado ligeramente fuera del borde).

4. Después de que el pintado se complete, eliminar las brochas usadas para liberar los recursos utilizados.

59

Page 58: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Personalizar un control para pintar y renderizar

Código de ejemplo para sobrescribir el método OnPaint:

protected override void OnPaint(PaintEventArgs e)

{

SolidBrush backColorBrush = new SolidBrush(this.BackColor);

e.Graphics.FillRectangle(backColorBrush, this.ClientRectangle);

Color foregroundColor = ((this.Enabled) ? this.ForeColor : SystemColors.GrayText);

SolidBrush foreColorBrush = new SolidBrush(foregroundColor);

Rectangle textRectangle = this.ClientRectangle;

e.Graphics.DrawString(this.Text, this.Font, foreColorBrush,textRectangle);

backColorBrush.Dispose();

foreColorBrush.Dispose();

base.OnPaint(e);

}

protected override void OnPaintBackground(PaintEventArgs e)

{

//…

}

60

Page 59: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Gestión de datos corporativos

SQL Server CE, Mobile y Compact Edition

Page 60: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Introducción

Objetivos Crear una base de datos SQL Server Mobile

mediante programación y mediante lasherramientas de Microsoft Visual Studio 2005 y SQLServer 2005.

Conectarse a una base de datos SQL Server Mobilemediante programación y con Server Explorer.

Devolver datos de una base de datos SQL ServerMobile.

Implementar controles enlazados con una base dedatos SQL Server Mobile.

Realizar transacciones contra una base de datosSQL Server Mobile.

Page 61: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Introducción a SQL Server Mobile

Compacto motor de bases de datos y robusto optimizador de

consultas. Características:

Soporte para múltiples conexiones concurrentes a unabase de datos.

Soporte para replicación por mezcla y acceso a datos remoto(RDA).

Asistente de instalación y conectividad que ayuda ainstalar y configurar la base de datos móvil.

Soporte para el proveedor de datos SQL Server Mobile(System.Data.SqlServerCe) de .NET Compact Framework.

Soporte para Microsoft ADO.NET y para el proveedor MicrosoftOLE DB.

Soporte para un subconjunto de la sintaxis SQL.

Page 62: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Introducción a SQL Server Mobile

Se proporciona también la herramienta de Analizador de consultas SQL, que puede utilizarse para las siguientes tareas: Crear bases de datos Verificar RDA y aplicaciones de replicación Consultar objetos mediante sentencias SELECT Compactar y reparar bases de datos Insertar y eliminar filas Modificar datos de una tabla Crear y modificar tablas e índices en una base

de datos

Page 63: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Consideraciones para el uso de SQL Server Mobile

Portabilidad SQL Server Mobile está típicamente instalado como parte una aplicación basada

en Microsoft .NET Compact Framework.

Se puede emplear RDA y replicación por mezcla para transferir y sincronizardatos entre base de datos SQL Server y dispositivos con Windows Mobile.

Tamaño de la base de datos y rendimiento SQL Server Mobile ocupa entre 2.2 MB y 2.6 MB.

El fichero de la base de datos en el dispositivo móvil puede ser de hasta 4GB.

Máximo 100.000 registros en una tabla para un rendimiento óptimo.

El tamaño del registro y la complejidad de la consulta determinan el número deregistros que se pueden almacenar en una tabla.

El rendimiento de una aplicación con bases de datos depende de la velocidaddel medio en el que se almacena la base de datos.

La base de datos en el dispositivo móvil debe ser tan pequeña como seaposible.

Mas información

Page 64: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Sincronización de datos

Los usuarios móviles a menudo necesitan trabajar sin conexióncuando no hay conectividad disponible. En estos escenarios se puedeutilizar SQL Server Mobile para proporcionar un almacenamientorelacional que será sincronizado con SQL Server cuando haya unaconexión disponible.

Pueden sincronizarse los datos en un dispositivo que tenga accesoa un servidor con el IIS de Microsoft (Microsoft Internet InformationServices).

Se pueden utilizar los servicios Web para sincronizartransacciones de datos pero no para sincronizar la base de datoscompleta con SQL Server.

Consideraciones para el uso de SQL Server Mobile

Page 65: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Crear una base de datos mediante el asistente de configuración de fuentes de datos ·

En Visual Studio 2005 se puede crear unabase de datos SQL Server Mobile desdedentro o fuera de un proyecto.

Si es necesario incluir la base de datos en unproyecto, ha de crearse como una fuente dedatos dentro del proyecto utilizando elasistente de configuración de fuentes de datos.

Después de ejecutar el asistente deconfiguración de bases de datos, la fuente dedatos está disponible en la ventana de fuentesde datos. Para visualizar la nueva base dedatos como un Dataset en la ventana deFuentes de Datos, en el menú Datos, debeseleccionarse Mostrar Fuentes de Datos.

Page 66: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Crear una base de datos dentro de un proyecto Visual Studio 2005

1. Abrir un proyecto, en el menú Datos click en Agregar Nuevo Origen de Datos.

2. En la pantalla Elegir un tipo de origen de datos Base de Datos Siguiente.

3. En Elija la conexión de datos click en Nueva Conexión.

4. En el cuadro de diálogo Elija una base de datos Microsoft SQL Server Mobile Edition

Continuar. Aparecerá el cuadro de diálogo Agregar Conexión.

NOTA: el origen de datos se cambia, pulsando Cambiar en el cuadro de diálogo Agregar Conexión.

5. En Agregar Conexión Mi PC (en la sección Origen de Datos) click en Crear (dentro de la sección Propiedades de Conexión).

6. En Crear Nueva Base de Datos SQL Server 2005 Mobile Edition especificar un path y un

nombre para la base de datos (C:\MiBaseDatos).Para especificar la contraseña, en los cuadros Nueva Contraseña y Confirmar Contraseña OK.

7. Para asegurar que la conexión se ha realizado correctamente en el cuadro de diálogo Agregar Conexión Probar Conexión

NOTA: SQL Server Mobile no soporta la apertura de ficheros de bases de datos en una red compartida.

Page 67: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Crear una base de datos dentro de un proyecto Visual Studio 2005

8. Para crear una base de datos y un DataSet dentro de un proyecto, en Elijala conexión de datos Sí, incluir datos confidenciales en la cadena de

conexión.

NOTA: Para proyectos que se usarán en aplicaciones reales, debe excluirse del código la información

confidencial, como la cadena de conexión, o asegurarse de que dicha información está cifrada.

9. Para incluir el archivo de datos en el proyecto actual, en Archivo de basede datos local Si.

10.En Elija los objetos de la base de datos seleccione las tablas u objetosque se desee incluir en el proyecto Finalizar.

Page 68: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

1. En menú Ver Explorador de Servidores.

2. click derecho sobre Conexiones de datos Agregar conexión.

3. En Cambiar Origen de Datos Microsoft SQL Server Mobile Edition Continuar. Semostrará el cuadro de diálogo Agregar Conexión.

NOTA: Para cambiar la fuente de datos en el cuadro de diálogo Agregar Conexión, hacer click en Cambiar.

4. En Agregar Conexión comprobar que está seleccionado Mi PC en la sección Origen deDatos Crear

5. En Crear Nueva Base de Datos SQL Server 2005 Mobile Edition especificar un pathy un nombre para la base de datos (por ejemplo, C:\MiBaseDatos).

6. Si se desea contraseña Nueva Contraseña y Confirmar Contraseña OK.

7. En Agregar Conexión Probar Conexión. Aparecerá un mensaje indicando que laprueba de conexión se ha realizado correctamente OK.

NOTA: SQL Server Mobile no soporta apertura de ficheros de bases de datos en una red compartida.

Crear una base de datos fuera de un proyecto Visual Studio 2005

Page 69: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

SQL Server Management Studio es un entorno integrado utilizadopara acceder, configurar, gestionar y desarrollar componentes SQLServer. Para crear una base de datos SQL Server Mobile:

1. Abrir SQL Server Management Studio.

2. En la ventana de conexión al servidor, en Nombre del Servidor,introduzca (local) Conectar.

3. En la ventana de consulta, escribir la consulta para crear una base dedatos SQL Server Mobile.

4. Crear tablas y rellenarlas con datos en la nueva base de datos.

5. Para ejecutar una consulta click sobre Ejecutar.

Crear una base de datos utilizando SQL Server Management Studio

Page 70: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Crear una base de datos utilizando SQL Server Management Studio

Ejemplo: creación de una base de datos llamada SQLMobile, una tabla llamada MembershipData e introducción de datos en la tabla.

USE Master;GODROP Database SQLMobile;GOCREATE DATABASE SQLMobile;GOUSE SQLMobile;GOCREATE TABLE MembershipData (MemberId INTEGER IDENTITY (1,1) CONSTRAINT pkMemberId PRIMARY KEY, MemberName NVarChar (50));INSERT INTO MembershipData (MemberName) VALUES ('Mr Don Hall');

Page 71: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Crear una base de datos con el Analizador de consultas de SQL Server Mobile

El desarrollo de una aplicación para un dispositivo móvil exigela instalación del motor de bases de datos SQL Server Mobile yel Analizador de Consultas de SQL Server Mobile.

Se puede instalar el Analizador de Consultas de SQL ServerMobile en el dispositivo copiando y ejecutando el fichero .cabdel software de desarrollo (SDK).

NOTA: El Analizador de Consultas de SQL Server Mobile sólo se ejecuta en dispositivosmóviles.

En la pestaña Objetos de la ventana del Analizador deConsultas se pueden agregar o quitar bases de datos, tablas eíndices y especificar algunas de sus propiedades.

Para los requisitos de definición de tablas e índices específicos,se deben ejecutar las sentencias SQL apropiadas en la pestañaSQL de la ventana del analizador de consultas.

Page 72: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

1. En el Analizador de Consultas Objetos carpeta Bases de Datos

botón estado de la conexión para conectar a una base de datos. Este botóndebe mostrar una flecha verde. Si el botón muestra un cuadrado rojo, indicaque se ha establecido una conexión con una base de datos. Si se pulsa elbotón se cerrará la conexión con la bases de datos.NOTA: SQL Server Mobile permite conectarse a una única base de datos simultáneamente.

2. En Conectar a SQL Server Mobile especificar nombre de la base de datos click en Nueva base de Datos.

3. Para proporcionar una contraseña para la base de datos, en la caja de textoContraseña, introduzca una contraseña.

4. En Tipo seleccionar una colección de base de datos.

5. Para cifrar la base de datos Cifrar.

6. Para crear la base de datos Crear.

Crear una base de datos con el Analizador de consultas de SQL Server Mobile

Page 73: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Instalación manual del Analizador de Consultas

1. Instalar el .NET Compact Framework en el dispositivo copiar el siguiente archivo en el dispositivo:C:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\CompactFramework\version\version\WindowsCE\platform\processor\NETCFver.platform.processor.cab

version versión del SDK.plataform plataforma del dispositivo.processor procesador del dispositivo.NETCF versión del .NET Compact Framework.

Ejemplo:C:\Program Files\Microsoft Visual Studio

8\SmartDevices\SDK\CompactFramework\2.0\v2.0\windowsce\wce500\armv4i\NETCFv2.wm.ARMV4I.cab

2. Para instalar el .NET Compact Framework en el dispositivo, haga click en el archivo .cab.

3. Copie en el dispositivo el siguiente fichero: C:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\SQL Server\Mobile\v3.0\platform\processor\sqlce30.dev.ENU. platform. processor.cab

4. Para instalar el Analizador de Consultas en el dispositivo, haga click en el archive sqlce30.dev.ENU.platform.processor.cab. Se agregará un acceso directo para el Analizador de Consultas en el menú Inicio del dispositivo.

Page 74: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Crear una Base de Datos mediante programación

Miembro Descripción

SqlCeEngine Sobrecarga del constructor público que inicializa una nueva instancia de la clase SqlCeEngine.

LocalConnectionString Propiedad pública que obtiene o establece la cadena de conexión a la base de datos SQL Server Mobile.

Compact

Método público que recupera el espacio desaprovechado en la base de datos SQL Server creando un nuevo

archivo de base de datos a partir del fichero existente. Este método también se usa para cambiar ajustes como

el orden collating, cifrado o contraseña de la base de datos.

CreateDatabase Método público que crea una nueva base de datos.

Dispose Método público que libera todos los recursos SQL Server Mobile SqlCeEngine.

Equals Método público sobrecargado que determina si dos instancias de un mismo objeto son iguales.

GetHashCode Método publico que sirve como función de hash para un tipo determinado. (Heredado de Objetc.)

GetType Método publico que obtiene el tipo de la instancia actual. (Heredado de Objetc.)

ReferenceEqualsMétodo público que determina si las instancias del objeto especificado son la misma instancia. (Heredado de

Object.)

Repair Método público que repara una base de datos corrupta.

ShrinkMétodo público que libera espacio desaprovechado en la base de datos SQL Server Mobile moviendo páginas

vacías al final del archivo y truncándolo después.

ToString Método público que devuelve un string que representa el objeto actual. (Heredado de Object.)

VerifyMétodo público que recalcula los checksums de cada página de la base de datos y compara los nuevos

checksums con los valores esperados.

FinalizeMétodo privado que permite a un objeto intentar liberar recursos y realizar otras operaciones de limpieza

antes de que el objeto sea liberado por el recolector de basura. (Heredado de Object.)

MemberwiseClone Método privado que crea una copia del objeto actual. (Heredado de Object.)

Ejemplo:

String cadenaconexion = “Data Source = „miBBDD.sdf‟; Password = „mipaSSw0rd‟; Encrypt = TRUE;”;

SqlCeEngine engine = new SqlCeEngine(cadenaconexion);

engine.CreateDatabase();

Page 75: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Conectando a una Base de Datos SQL Server Mobile

Conectarse a una base de datos SQL Server Mobile

mediante el Explorador de Servidores:

1. En Visual Studio 2005 menú Ver seleccionarExplorador de Servidores.

2. En Explorador de Servidores botón derecho sobreConexiones de Datos Agregar Conexión.

3. En Agregar Conexión seleccionar Cambiar.4. En Cambiar Origen de Datos Orígenes de Datos

seleccionar Microsoft SQL Server Mobile Edition,como se muestra en la imagen.

5. En la lista de Proveedores de datos seleccionar .NETFramework Data Provider for SQL Server MobileEdition OK.

6. En Agregar Conexión Propiedades de la Conexión navegar hasta la base de datos a la que se deseeconectarse Abrir OK.

Page 76: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Tarea Descripción

Configurar una conexión

La conexión se configura utilizando un objeto

SqlCeConnection. Este objeto representa una única

conexión a un origen de datos. Cuando se crea una

instancia de SqlCeConnection, todas las propiedades

toman sus valores iniciales.

Abrir una conexión

La conexión a una base de datos SQL Server Mobile se

lleva a cabo mediante el método Open del objeto

SqlCeConnection. El método Open establece una nueva

conexión al origen de datos.

Cerrar la conexión

La conexión con la base de datos SQL Server Mobile se

cierra con el método Close del objeto SqlCeConnection.

El método Close reanuda cualquier transacción pendiente

y finaliza la conexión. Si SqlCeConnection está fuera de

ámbito, la conexión no se cierra. Se debe cerrar

explícitamente la conexión llamando al método Close o al

método Dispose.

Conectarse a una base de datos SQL Server Mobile programando. Realizar las siguientes

tareas:

Conectando a una Base de Datos SQL Server Mobile

Page 77: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

El siguiente código utiliza un objetoSqlCeConnection para conectarse a la basede datos myDatabase.sdf, inserta una fila enla tabla Customers y cierra la conexión.

SqlCeConnection conn = null;conn = new SqlCeConnection("Data Source = MyDatabase.sdf; Password ='<pwd>'");conn.Open();SqlCeCommand cmd = conn.CreateCommand();cmd.CommandText ="INSERT INTO Customers ([Customer ID], [Company Name]) “ Values('NWIND', 'Northwind Traders')";cmd.ExecuteNonQuery();conn.Close();

Conectarse a una base de datos SQL Server Mobile programando

Page 78: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Escenario Descripción

Conexión a un

archivo de base de

datos que no existe

Este es un error del tipo motor y se indica mediante el código de error25046. Este error se produce cuando se trata de conectar a una basede datos cuyo fichero no existe. El siguiente código de ejemplomuestra cómo implementar el manejo de excepciones para este error:

try

{

//...

}

catch (SqlCeException e)

{

if(25046 == e.NativeError) //SSCE_M_FILENOTFOUND

MessageBox.Show("The database file cannot " +

"be found. Check the path " +

"to the database." + e.Message);

}

Manejo de Excepciones con SQL Server Mobile

Page 79: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Manejo de Excepciones con SQL Server Mobile

Escenario Descripción

Acceso a una

tabla que no

existe

Este es un error del tipo agente cliente indicado por el número de error 28607. Este

error ocurre cuando se trata de acceder a una tabla que no existe en la base de datos.

El siguiente código muestra cómo implementar el manejo de excepciones para este

error:try

{

//...

}

catch (SqlCeException e)

{

if(28607 == e.NativeError) //SSCE_M_TABLEDOESNOTEXIST

MessageBox.Show("The table does not exist. "

+ e.Message);

}

Modificando el

tipo de la

columna de datos

Este es otro error de tipo agente cliente indicado por el número de error 28608. Este

error se genera cuando se trata de modificar una columna cuyo tipo de datos no permite

ninguna modificación. El siguiente código muestra cómo realizar el manejo de

excepciones para este error:try

{

//...

}

catch (SqlCeException e)

{

if(28608 == e.NativeError) //SSCE_M_CANTMODIFYCOLUMNTYPE

MessageBox.Show("Internal error: " +

"Cannot modify the column type. " + e.Message);

}

Page 80: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Manejo de Excepciones con SQL Server Mobile

Escenario Descripción

Acceso a una

columna no

válida

Este es un error del tipo procesador de consultas indicado por el número de error 25503.

Se genera cuando se intenta acceder a un nombre de columna no válido. El

siguiente código muestra cómo realizar el manejo de excepciones para este error:try

{

//...

}

catch (SqlCeException e)

{

if(25503 == e.NativeError) //SSCE_M_QP_BAD_COLNAME

MessageBox.Show("The column name is not valid. "

+ e.Message);

}

Inserción de

valores nulos en

una columna

Este es un error del motor y está indicado por el número de error 25200. Se produce

cuando se intenta introducir valores nulos en una columna en la que no están

permitidos valores nulos. El siguiente código muestra cómo realizar el manejo de

excepciones para este error:try

{

//...

}

catch (SqlCeException e)

{

if(25200 == e.NativeError) //SSCE_WRN_COLUMNNULL

MessageBox.Show("The column cannot have " +

"NULL values. " + e.Message);

}

Page 81: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Recuperando datos de una Base de Datos SQL Server Mobile

Después de conectar a SQL Server Mobile, es posible recuperar datos de una base de datos SQL Server Mobile y manipularlos. Cuando se desarrollan aplicaciones en Visual Studio 2005, se pueden recuperar datos de una base de datos SQL Server Mobile utilizando un dataset o un resulset.

En el siguiente bloque se explicarán:

Los sentencias SQL que pueden emplearse con SQL Server Mobile.

Cómo ejecutar un sentencia SQL contra una base de datos SQL Server Mobile.

Cómo devolver y actualizar un Dataset utilizando SqlCedataAdapter.

Cómo devolver datos empleando SqlCeDataReader.

Cómo devolver datos empleando SqlCeResultSet.

Cómo devolver datos utilizando acceso directo a una tabla.

Page 82: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Sentencias SQL Soportadas

Sentencias SQL soportados por SQL Server Mobile:

CREATE DATABASE

INSERT

SELECT

CREATE TABLE

UPDATEALTER TABLE

DELETE

CREATE INDEX

DROP INDEX

DROP TABLE

Page 83: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Funciones soportadas por SQL Server Mobile

Funciones de

agregado

Funciones de fecha y

horaFunciones matemáticas

Funciones de cadena

Funciones del

sistema

AVGAVG

COUNT

MAX

MIN

SUM

DATEADD

DATEDIFF

DATENAME

DATEPART

GETDATE

ACOS

ASIN

ATAN

ATN2

CEILING

COS

COT

DEGREES

EXP

FLOOR

LOG

LOG10

PI

POWER

RADIANS

RAND

ROUND

SIGN

SIN

SQRT

TAN

NCHAR

CHARINDEX

LEN

LOWER

LTRIM_lce_ltrim

PATINDEX

REPLACE

REPLICATE

RTRIM

SPACE_Ice_space

STR

STUFF

SUBSTRING

UNICODE

UPPER_lce_upper

@@IDENTITY

COALESCE

DATALENGTH

Page 84: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Tipos de datos soportados por SQL Server Mobile

Bigint

image

ntext

Synonym:nvarchar(n)

Binary(n)

integer

numeric (p, s)

tinyint

Bit

money

Real

uniqueidentifier

datetime

national character varying(n)

ROWGUIDCOL

varbinary(n)

Float

national character(n)

smallint

IDENTITY [(s, i)]

nchar

Synonym:nchar(n)

Page 85: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Operadores soportados por SQL Server Mobile

+ (Add)~ (NOT)!<(Not Less Than)- (Subtract)= (Equals)!>(Not Greater Than)* (Multiply)>(Greater Than)/ (Divide)<(Less Than)% (Modulo)>= (Greater Than or Equal To)+ (Positive)&(AND)<= (Less Than or Equal To)

- (Negative)| (OR)<>(Not Equal To)^ (Exclusive OR)!= (Not Equal To)INLIKENOTALLORANDSOMEANYBETWEENEXISTS

Page 86: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Ejecutar una sentencia SQL

Método Descripción

ExecuteReaderEjecuta un comando que devuelve

múltiples resultados.

ExecuteNonQueryEjecuta comandos SQL como INSERT,

DELETE y UPDATE.

ExecuteScalarDevuelve un solo valor, por ejemplo un

valor agregado, de una base de datos.

ExecuteResultSetEjecuta comandos y devuelve un

conjunto de resultados.

El objeto SqlCeCommand permite enviar un sentencia SQL a un origen dedatos. Este objeto soporta los siguientes métodos que pueden emplearse paraejecutar comandos contra una base de datos:

Page 87: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Devolver y actualizar un DataSetutilizando SqlCeDataAdapter

La clase SqlCeDataAdapter:

Representa un conjunto de comandos, para manejo de datos yconexión a bases de datos.

Se utiliza para devolver y salvar datos del origen de datos.

Un objeto SqlCeDataAdapter usa el método Fill para devolverdatos procedentes de la fuente de datos y guardarlos en elobjeto DataSet. Utiliza el método Update para enviar loscambios realizados en el objeto DataSet al origen de datos.

Page 88: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Devolver y actualizar un DataSetutilizando SqlCeDataAdapter

Llenar un DataSet:1. Crear un objeto Connection usando la clase SqlCeDataAdapter.

2. Crear un sentencia SQL utilizando la clase SqlCeDataAdapter.

3. Crear una instancia de SqlCeDataAdapter para especificar la propiedadSelectCommand.

4. Crear una instancia de la clase DataSet para almacenar los datos de lafuente de datos.

5. Llamar al método Fill de la clase SqlCeDataAdapter, especificando elobjeto DataSet que se llenará.

Ejemplo: selección de registros de un origen de datos y llenado de un objetoDataSet con las filas seleccionadas:

SqlCeConnection conn =new SqlCeConnection("Data Source = AdventureWorks.sdf");SqlCeCommand selectCmd = conn.CreateCommand();selectCmd.CommandText = "SELECT * FROM Employees";SqlCeDataAdapter adp = new SqlCeDataAdapter(selectCmd);DataSet ds = new DataSet();adp.Fill(ds);

Page 89: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Devolver y actualizar un DataSetutilizando SqlCeDataAdapter

Se puede manipular y actualizar una base de datos utilizando los objetosSqlCeDataAdapter y DataSet.

La clase SqlCeDataAdapter soporta las siguientes propiedades que ayudan amanipular y actualizar datos:

SelectCommand. Obtiene o establece un sentencia SQL para seleccionar registros enla fuente de datos.

InserCommand. Obtiene o establece un sentencia SQL para insertar nuevos registrosen la fuente de datos.

DeleteCommand. Obtiene o establece un sentencia SQL para eliminar registros delDataSet.

UpdateCommand. Obtiene o establece un comando para actualizar registros en lafuente de datos.

TableMappings. Establece una colección que proporciona el mapeo maestro entre unatabla del origen de datos y un DataTable.

Page 90: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Devolver datos mediante SqlCeDataReader

La clase SqlceDataReader se utiliza para leer flujos de datos de un origen de datos.

Si se desea recuperar datos con índices, debe emplearse el método Seek de la claseSqlceDataReader.

Para optimizar la operación de lectura hay que restringir el conjunto de filas que seleerán utilizando el método SetRange de la clase SqlCeCommand, junto con elmétodo Seek.

Devolver datos con un objeto SqlCeDataReader: Se utiliza el métodoExecuteReader del objeto SqlCeCommand para crear un objetoSqlceDataReader.

Ejemplo:conn = new SqlCeConnection("Data Source = AdventureWorks.sdf");conn.Open();cmd = new SqlCeCommand("SELECT * FROM DimEmployee", conn);rdr = cmd.ExecuteReader();while (rdr.Read()){

//Read values from Reader}

rdr.Close();

Page 91: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Devolver datos utilizando SqlCeResultSet

El objeto DataSet ayuda a examinar un conjunto de filas y actualizarlas.

El objeto SqlCeDataReader utiliza un cursor no actualizable de sóloavance, pero proporciona mejor rendimiento que el objeto DataSet.

SQL Server Mobile tiene soporte para el objeto SqlCeResultSet, el cualcombina las características del objeto DataSet con el rendimientomejorado del objeto SqlCeDataReader.

Posibles modificaciones del objeto SqlCeResultSet :Opción Descripción

Insensitive El objeto ResultSet no detecta los cambios

realizados en el origen de datos.

None No se especifican opciones en el objeto

ResultSet.

Scrollable El objeto ResultSet puede recorrerse hacia

delante o hacia atrás.

Sensitive El objeto ResultSet puede detectar los cambios

realizados en la fuente de datos.

Updatable El objeto ResultSet permite actualizaciones.

NOTA: Para permitir que Visual Studio 2005 genere el código de un objeto ResultSet, se debe establecer el valor MSResultSetGenerator a CustomTool.

Page 92: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Ejemplo: empleo de un objeto SqlCeResultSet para recuperar datos de una fuente de datos:

SqlCeConnection conn = null;try{

//Create database and connection object here and open the same.//create a CREATE statement to create table and then execute the same using ExecuteNonQuery herecmd.CommandText = "SELECT * FROM myTable";SqlCeResultSet rs =cmd.ExecuteResultSet(ResultSetOptions.Updatable | ResultSetOptions.Scrollable);SqlCeUpdatableRecord rec = rs.CreateRecord();rec.SetInt32(0, 34);rec.SetDecimal(1, (decimal)44.66);rec.SetString(2, "Sample text");rs.Insert(rec);

}catch (Exception e){

MessageBox.Show(e.Message);}finally{

conn.Close();}

Devolver datos utilizando SqlCeResultSet

Page 93: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Devolver Datos mediante Acceso Directo a una Tabla

La estructura de las tablas soporta cursores de tabla base, los cuales mejoranel rendimiento puesto que trabajan directamente con el motor dealmacenamiento.

Los cursores de tabla base pueden avanzar o retroceder y puedenactualizarse, además usan mínimos recursos.

Las aplicaciones se benefician en su mayoría del acceso directo a las tablasson aquellas que envían un elevado número de consultas contra un pequeñosconjunto de tablas. Sin embargo el acceso directo a tablas no se puede utilizarcon tablas que se hayan unido mediante join(joined tables).

Para utilizar el acceso directo a tablas la propiedad CommanType del objetoSqlCeCommand debe tomar el valor TableDirect. La propiedadCommantdText del objeto SqlCeCommand debe contener el nombre de latabla a la que se quiere acceder. Se puede usar el acceso directo a tablas conel objeto SqlCeDataReader o con el objeto SqlCeResultSet.

Page 94: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Devolver Datos mediante Acceso Directo a una Tabla

Objeto

SqlCeDataReader

Ejemplo: cómo abrir una tabla subyacente. Proporciona el mismo resultado que la

ejecución de la consulta Select * from StudentTable pero sin utilizar el procesador de

consultas.SqlCeCommand cmd = new SqlCeCommand("StudentTable", conn);

cmd.CommandType = CommandType.TableDirect;

SqlCeDataReader rdr = cmd.ExecuteReader();

while (rdr.Read())

{

// ...

}

Objeto

SqlCeResultSet

En el siguiente código se crea un nuevo registro con el método CreateRecord, se

crean valores para el registro y a continuación se añade al objeto ResultSet. Para un

óptimo rendimiento, la propiedad CommandType debe tomar el valor TableDirect.

cmd.CommandText = "myTable";

cmd.CommandType = CommandType.TableDirect;

SqlCeResultSet rs = cmd.ExecuteResultSet(ResultSetOptions.Updatable |

ResultSetOptions.Scrollable);

SqlCeUpdatableRecord rec = rs.CreateRecord();

//Insert record

rec.SetInt32(0, 35);

rec.SetDecimal(1, (decimal)94.25);

rec.SetString(2, "Sample text 2");

rs.Insert(rec);

Page 95: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Integración con servicios Web

Consumo de servicios Web.

Asincronísmo

Page 96: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

LLamar a un Servicio Web

El Compact Framework soporta el uso de servicios web en aplicaciones basadas en Windows Mobile

Se puede diseñar una aplicación que llame a un servicio Web síncrona o asíncronamente

Cuando la aplicación realiza una llamada síncrona a un servicio web, el usuario debe esperar a que el servicio web responda antes de interactuar con la aplicación

Cuando la aplicación realiza una llamada asíncrona a un servicio web, el usuario puede interactuar con la aplicación mientras se realiza la llamada al servicio web.

Page 97: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Agregar una Referencia a un Servicio Web

Para llamar a un servicio web en un proyecto Windows Mobile, se debe añadir una referencia web al proyecto

Cuando se añade una referencia web al proyecto, Visual Studio 2005 automáticamente genera una clase proxy

La clase proxy incluye métodos para acceder al servicio web síncrona o asíncronamente.

Estos métodos sirven como un proxy para cada método expuesto por el servicio web. Por defecto la clase proxy no es visible en el Explorador de Soluciones.

Page 98: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Agregar una Referencia a un Servicio Web

Para agregar una referencia web, realice los siguientes pasos:

1. En el explorador de soluciones, seleccione el proyecto que llamará al

servicio web.

2. En el menú Proyecto, haga click sobre Agregar Referencia Web.

3. En el cuadro de diálogo Agregar Referencia Web, introduzca la URL del servicio web al que se desea llamar y luego haga click en OK.

4. En la caja Nombre de la referencia Web, introduzca el nombre que se utilizará en el código para acceder al servicio web seleccionado.

5. Para crear una referencia al servicio web, haga click sobre Agregar Referencia. La nueva referencia se mostrará en el Explorador de Soluciones bajo el nodo Referencias Web.

Page 99: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Llamadas Síncronas a Servicios Web

Cuando una aplicación realiza una llamada a un servicio web, el hilo que realiza la llamada se queda bloqueado

Este bloqueo continúa hasta que el servicio web devuelve el resultado del método que realizó la llamada

Este bloqueo puede originar que el interfaz de usuario permanezca insensible a la interacción del usuario

Por tanto, se deben utilizar llamadas síncronas para métodos que se procesan y son devueltos rápidamente por el servicio web.

El código siguiente muestra cómo crear una instancia de una clase proxy de un servicio

web y cómo llamar al método GetItems para recuperar una lista de libros:BookCatalog.Service1 bookcatalog =

new BookCatalog.Service1();DataSet ds = bookcatalog.GetItems();

Page 100: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Llamadas a Servicios Web asíncronas

Una llamada se lleva a cabo por un hilo diferente del hilo que está ejecutando el interfaz de usuario

La interacción del usuario con la aplicación no se ve afectada mientras se accede al servicio web.

Para iniciar/finalizar un servicio web, se debe llamar al método Begin .

Este método devuelve un objeto System.Web.Services.Protocol.WebClientAsyncResult que proporciona información del estado de la llamada pendiente

Para finalizar el servicio web y recuperar la respuesta del servicio web, debe llamarse.

Page 101: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Ejemplo servicio web asíncrono

El siguiente ejemplo realiza un servicio web asíncrono para llamar a los métodos BegingetItems y EndGetItems:

private void button2_Click(object sender, System.EventArgs e){

BookCatalog.Service1 ws = new BookCatalog.Service1();AsyncCallback cb = new AsyncCallback(ServiceCallback);ws.BeginGetItems(cb,ws);

}

private void ServiceCallback(IAsyncResult ar){

BookCatalog.Service1 ws = (BookCatalog.Service1)ar.AsyncState;DataSet ds = ws.EndGetItems(ar);

}

Page 102: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Integración con Outlook Mobile

SMS, Mail, Attachments, Contacts, Tasks Appointments

Page 103: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Contenidos

Herramientas para Windows Mobile

Recuperar el estado del sistema utilizando el agente de notificaciones y estado

Integrar Características de Outlook Mobile en una aplicación Windows Mobile

Utilizando la Tecnología de la Plataforma de Invocación para Llamar a Funciones DLL no Manejadas

Implementando Comunicación entre Procesos

Page 104: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Herramientas de desarrollo

Emuladores de dispositivo

Cellular emulator

Fake GPS

Hopper

Security Configuration Manager

106

Page 105: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Emulador de dispositivos

Verdadero emulador ARMv4

Único conjunto de archivos para emulador y dispositivos reales

Ejecución rápida y fiable

Emuladores PPC 2003SE, Smartphone 2003SE, WM 5.0 PPC y WM 5.0 Smartphone, WM 6 Classic, Professional y Standard.Además de Windows CE 5.0 y CE 6.0

Page 106: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Emulador de dispositivos

Page 107: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Device Emulator

Características:

Emulación del estado de la energía

Emulación de perfiles de teléfono

Emulación de tarjeta de almacenamiento

Page 108: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Cellular Emulator

Emulador basado en software

Facilita desarrollo y testeo bajo plataforma WM

Testeo de aplicaciones bajo diferentes redes inalámbricas: GSM/GPRS y/o UMTS

Page 109: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

FakeGPS

Prueba de aplicaciones para posicionamiento sin necesidad de acceso a un dispositivo GPS

Archivo de texto con lista de mensajes GPS NMEA

EJEMPLO:

$GPGLL,4738.0173,N,12211.1874,W,191934.767,A*21

$GPGSA,A,3,08,27,10,28,13,19,,,,,,,2.6,1.4,2.3*3E

$GPGSV,3,1,9,8,71,307,43,27,78,59,41,3,21,47,0,10,26,283,40*77

$GPGSV,3,2,9,29,13,317,0,28,37,226,37,13,32,155,36,19,37,79,42*42

$GPGSV,3,3,9,134,0,0,0*46

$GPRMC,191934.767,A,4738.0173,N,12211.1874,W,0.109623,12.14,291004,,*2

1 $GPGGA,191935.767,4738.0172,N,12211.1874,W,1,06,1.4,32.9,M,-

17.2,M,0.0,0000*75

$GPGLL,4738.0172,N,12211.1874,W,191935.767,A*21

$GPGSA,A,3,08,27,10,28,13,19,,,,,,,2.6,1.4,2.3*3E

$GPRMC,191935.767,A,4738.0172,N,12211.1874,W,0.081611,15.81,291004,,*2

A

Page 110: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Hopper

Utilidad para realizar pruebas de esfuerzo

Simula usuario haciendo rápidos clics en ubicaciones aleatorias

Causa nivel de uso no estructurado que puede destapar errores inesperados

Puede aplicarse a una o varias aplicaciones simultáneamente aumentando el nivel de aleatoriedad

Debe incluirse en todas las pruebas de aplicación

Comprueba estabilidad de la aplicación y de dispositivo

Page 111: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Security Configuration Manager

Se ejecuta en el equipo de escritorio

Ofrece dos servicios básicos:– Muestra configuración de

seguridad actual del dispositivo WM o del emulador

– Permite configurar el emulador con directivas comunes de seguridad para testear aplicaciones

Page 112: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Introducción al agente de estadoy notificaciones

El agente de estado y notificaciones es un almacén de datos que proporciona un modelo publicador-suscriptor para distribuir notificaciones de cambio de datos.

Esta API almacena la información del estado, monitoriza cambios en los valores de estado y genera notificaciones sobre el estado de los cambios.

Se puede implementar este API en las aplicaciones utilizando las clases disponibles en el ensamblado Microsoft.WindowsMobile.Status

El API usa el registro como almacén de datos para almacenar valores en la clave de registro HKEY_LOCAL_MACHINE\System\State mientras que la información de estado por usuario se almacena en la clave HKEY_CURRENT_USER\System\State.

Page 113: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Valores de estado del sistema disponibles

Page 114: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Valores de estado del sistema disponibles

Estado de la red del teléfono. Se pueden utilizar propiedades del sistema para seguir el estado de disponibilidad de la red y la potencia de señal

Información de llamada. Las propiedades del sistema relacionadas con llamadas entrantes, salientes o actuales permiten realizar un seguimiento del estado de las llamadas

Información de red. Las propiedades del sistema permiten realizar un seguimiento de la de la red Wi-Fi.

Eventos del Gestor de información personal (PIM Personal Information Manager). Con las propiedades del sistema se puede seguir los cambios realizados en el calendario, contactos o tareas.

Page 115: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Valores de estado del sistema disponibles

Batería. Se pueden utilizar las propiedades del sistema para realizar un seguimiento del estado de la batería así como de la potencia restante de la batería principal o de la batería de respaldo.

Mensajería. Las propiedades del sistema permiten seguir los mensajes desde los servicios non-Microsoft ActiveSync e-mail y SMS (Short MessageService).

Page 116: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Consultar los Valores del Sistema Actuales

1. Agregar una referencia al espacio de nombres: agregar una referencia al espacio de nombres Microsoft.WindowsMobile.Status, este espacio de nombres proporciona clases como StateBase y SystemState que exponen el API del agente de estado y notificaciones.

2. Seleccionar el estado a monitorizar: El enumerador SystemProperty en el Explorador de Objetos proporciona una lista de propiedades de valores de estado, como PhoneSignalStrength y PhoneRoaming.

3. Agregar una instancia de la clase SystemState: la clase SystemState para recuperar el valor actual del estado. Se puede utilizar la clase SystemState para generar una notificación cuando el estado cambia.

4. Agregar un gestor de evento: Con la clase SystemState y un método para manejar el evento SystemState.Changed. Este evento se lanza cuando cambia un estado del sistema.

5. Responder al cambio de estado: El método SystemState.GetValuedevuelve el valor de un estado del sistema.

Page 117: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Monitorizar el estado del GPRSSolicitar una notificación mediante un manejador de evento

SystemState gprsCoverage;SystemState radioState;private void Trace(string s){

this.gprsCoverage =new SystemState (SystemProperty.PhoneGprsCoverage);gprsCoverage.Changed += new ChangeEventHandler(gprsCoverage_Changed);this.radioState = new SystemState(SystemProperty.PhoneRadioOff);radioState.Changed += new ChangeEventHandler(radioState_Changed);

}void radioState_Changed(object sender, ChangeEventArgs args){

//Añadir la lógica aquí}void gprsCoverage_Changed(object sender, ChangeEventArgs args){

//Añadir la lógica aquí}

Page 118: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Monitorizar el estado de la radioObtener el valor actual consultando el estado del sistema

Private void GetRadioState()

{

if (SystemState.PhoneRadioOff)

{

//Lógica si la telefonía está apagada

}

else

{

//Lógica si la telefonía está encendida

}

}

Page 119: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Gestión del Uso de la Batería del Dispositivo

Las aplicaciones de recursos intensivos afectan a la potencia de la batería del dispositivo móvil

Si se ejecutan varios procesos simultáneamente o si se deja la pantalla del dispositivo activa durante un largo periodo de tiempo se consumirá batería, reduciéndose el tiempo de standby del dispositivo

• Por tanto se debe monitorizar constantemente el estado de la batería del dispositivo móvil y proporcionar información al usuario sobre su estado

• Las propiedades SystemState.PowerBatteryState y SystemState.PowerBatteryStrength determinan el estado de la batería.

Page 120: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

La propiedad SystemState.PowerBatteryState

Charging

Indica que la batería está cargándose Critical

Indica que la carga de la batería es muy baja y necesita cargarse

inmediatamente Low

Indica que la carga de batería es baja Normal

Indica que la batería está cargada adecuadamente NotPresent

Indica que la batería no hay carga en la batería

Page 121: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

La propiedad SystemState.PowerBatteryStrength

La propiedad SystemState.PowerBatteryStrength recupera el nivel de batería restante en el dispositivo. Esta propiedad indica el nivel de batería a través de los siguientes valores del enumerador BatteryLevel

VeryHigh81 - 100%

High61 - 80%

Medium41 - 60%

Low21 - 40%

VeryLow0 - 21%

Page 122: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Espacio de nombres Microsoft.WindowsMobile.PocketOutlook

1. En Management Studio, abra el Explorador de objetos.2. En el Explorador de objetos, haga click sobre Conectar y luego

seleccione SQL Server Mobile.3. En el cuadro de diálogo Conectar al servidor, elija la base de datos

SQL Server Mobile que desee compactar y haga click en Conectar.4. En el explorador de objetos, haga click con el botón derecho del ratón

sobre la base de datos SQL Server Mobile recién agregada, y a continuación haga click en Propiedades.

5. En el cuadro de diálogo Propiedades de la base de datos, seleccione Realizar compactación de la base de datos completa (Perform full database compaction).

6. En Opciones de Archivo (File Options), seleccione la opción apropiada dependiendo de si lo que se necesita es reemplazar la base de datos o crear una nueva base de datos con un archivo nuevo tras la compactación. La casilla Sobreescribir el archivo de base de datos existente (Overwrite Existing Database File) modifica el nombre y localización de la base de datos existente y la reemplaza

Page 123: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Microsoft.WindowsMobile.PocketOutlook

•EmmailAcount: representa una cuenta Pocket Outlook e-mail.

•EmailMessage: representa un e-mail.

•SmsAccount: proporciona acceso a la cuenta SMS de Pocket Outlook, y a las carpetas de la cuenta SMS .

•SmsMessage: representa un mensaje SMS.

•Contact: representa un elemento de la colección Contact.

•ContactCollection: representa la colección de elementos Contact presentes en una carpeta de contactos.

•ContactFolder: contiene la colección Contact.

Page 124: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Microsoft.WindowsMobile.PocketOutlook

Appointment: representa un elemento Appointment en la colección de citas. Una cita es un bloque de tiempo que aparece en un calendario Pocket Outlook. Puede tener una fecha de inicio y fin, un lugar y se puede recurrir. Una cita se convierte en una reunión si se programa y se envía a otros contactos.

AppointmentCollection: representa la colección de elementos cita en una carpeta de citas.

AppointmentFolder: contiene la colección de citas.

Task: representa un elemento tarea en la colección de tareas. Una tarea representa un elemento que se puede activar y que se prioriza, se delega o se completa.

TaskCollection: representa la colección de elementos tarea en una carpeta de tareas.

TaskFolder: contiene la colección de tareas.

Page 125: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Enviar e Interceptar Mensajes SMS

Se puede integrar el envío y recepción de mensajes SMS en la aplicación mediante la clase.

Esta clase soporta propiedades y métodos que te permiten enviar y recibir mensajes SMS.

Page 126: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Enviar un mensaje SMS

Para enviar un mensaje SMS se ha de especificar el mensaje que se enviará en la propiedad SmSMessage.Body y el destinatario del mensaje mediante el método SmSMessage.To.Add.

También se puede especificar que se envíe un mensaje de acuso de recibo estableciendo la propiedad SmsMessage.RequestDeliveryReport a true.

Después de crear el mensaje, se puede enviar el mensaje con el método Send la clase SmsMessage.

Page 127: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Enviar un mensaje SMS a un destinatario

• La clase ChooseContactDialog se puede utilizar para mostrar un cuadro de diálogo que pida al usuario que especifique los detalles de contacto para enviar un mensaje SMS.

• Se puede especificar el título del cuadro de diálogo utilizando la propiedad contactDialog.Title.

• También es posible especificar que un mensaje de acuso de recibo se envíe al usuario que envía un mensaje estableciendo el valor de la propiedad SmsMessage.RequestDeliveryReport a true.

• Tras crear el mensaje, se puede utilizar el método Send de la clase SmsMessage para enviar el mensaje.

Page 128: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Interceptar un mensaje SMS

•La intercepción de mensajes es un mecanismo altamente configurable.

• Se puede programar un dispositivo móvil para notificar a la aplicación sobre los mensajes basándose en parámetros como el emisor, el destinatario o los contenidos del mensaje.

•También se puede programar la intercepción del sistema para arrancar la aplicación que requiere notificación si no estaba ya ejecutándose.

• Se pueden utilizar las siguientes clases para interceptar mensajes SMS:

MessageCondition. Especifica la condición del mensaje que debe buscarse.MessageInterceptor. Lanza un evento cuando un mensaje de entrada cumple la condición de intercepción.MessageInterceptorEventHandler. Un tipo delegado implementado por las clases que han sido registradas para recibir mensajes de notificación.

Page 129: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Ejemplo: cómo mandar un SMS a un dispositivo móvil.

SmsMessage smsMessage = new SmsMessage();

smsMessage.Body = “¿Boicoteamos la sesión de RIM y Nokia?";

smsMessage.To.Add(new Recipient(“Marta Rod", “6627727733"));

smsMessage.RequestDeliveryReport = true;smsMessage.Send();

return;

Page 130: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Ejemplo: cómo enviar un SMS a un contacto específico y solicitar un acuso de recibo.

using Microsoft.WindowsMobile.PocketOutlook;using Microsoft.WindowsMobile.Forms;// ...ChooseContactDialog contactDialog = new ChooseContactDialog();contactDialog.Title = “Seleccionar un usuario para enviar el sms”;if (contactDialog.ShowDialog() == DialogResult.OK){

// El constructor del sms necesita el destinatario de entrega

SmsMessage message = new SmsMessage(

contactDialog.SelectedContact.MobileTelephoneNumber, ”¿Saboteamos la red de Samba?");

message.RequestDeliveryReport = true;

// Enviar SMSmessage.Send();

Page 131: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Ejemplo: cómo interceptar un mensaje SMS.

Private MessageInterceptor _demoInterceptor = new MessageInterceptor(InterceptionAction.NotifyAndDelete, true);Private MessageCondition _demoCondition = new MessageCondition();

public frmMain(){

InitializeComponent();_demoCondition.Property = MessageProperty.Body;_demoCondition.ComparisonType = MessagePropertyComparisonType.StartsWith;_demoCondition.CaseSensitive = true;_demoCondition.ComparisonValue = "MsgDemo";_demoInterceptor.MessageCondition = _demoCondition;_demoInterceptor.MessageReceived +=new MessageInterceptorEventHandler(_demoInterceptor_MessageReceived);

}void _demoInterceptor_MessageReceived(object sender, MessageInterceptorEventArgs e){

SmsMessage smsDemo = (SmsMessage)e.Message;MessageBox.Show(smsDemo.Body, "Special SMS Received", MessageBoxButtons.OK,MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);

}

Page 132: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Practica: Envio e intercepcion de sms

Crear una aplicación que pueda enviar SMS de forma controlada

Implementar la capacidad de capturar SMS que comiencen con la palabra “MsgDemo”

Se necesitará el Celular Emulator del SDK de Windows Mobile 6

La App, se desarrollará sobre el emulador de Windows Mobile 6 Professional

Page 133: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Crear y Enviar E-Mails

•Cuando se desarrolla una aplicación basada en Windows Mobile, se puede integrar mensajería mediante las clases del espacio de nombres Microsoft.WindowsMobile.PocketOutlook.EmailAccount.

•La clase EmailAccount que proporciona una completa funcionalidad para los e-mails

•Se puede crear un e-mail mediante la clase EmmailMessage

•Se puede enviar con el método Send de la clase EmailAccount a una dirección de correo especificada.

Page 134: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Ejemplo: crear un e-mail, adjuntar un documento Pocket Word a él y enviar el mensaje

EmailMessage message = new EmailMessage();

message.To.Add(new Recipient(“[email protected]"));message.Subject = “Correo de soporte a estudiantes”;message.BodyText = “Una nueva pregunta ha sido generada

por un estudiante” + “Por favor lee el adjunto para masdetalles";

message.Attachments.Add(new Attachment(@"\My Documents\issue.doc"));

using (OutlookSession session = new OutlookSession()){

session.EmailAccounts[0].Send(message);}

Page 135: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Practica: Envio e intercepcionde correo electrónico

Crear una aplicación que pueda enviar E-mails a través de una cuenta de correo válida configurada en el emulador

Implementar la funcionalidad de insertar adjuntos en los mensajes

La App, se desarrollará sobre el emulador de Windows Mobile 6 Professional

Page 136: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Agregar contacto

El método AddNew de la clase Contact se utiliza para añadir un contacto. El siguiente ejemplo

muestra cómo agregar un contacto:

public void AddContact(string firstName, string lastName,

string title)

{

OutlookSession os = new OutlookSession();

Contact contact = os.Contacts.Items.AddNew();

contact.FirstName = firstName;

contact.LastName = lastName;

contact.Title = title;

contact.FileAs = contact.LastName + ", " +

contact.FirstName;

contact.Update();

}

Page 137: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Modificar contacto

Para modificar un contacto se puede utilizar el método Updatede la clase Contact. El siguiente ejemplo muestra cómomodificar un contacto:

public void EditContact(Contact contact,string firstName, string lastName, string title)

{contact.FirstName = firstName;contact.LastName = lastName;contact.Title = title;contact.FileAs = contact.LastName + ", " +contact.FirstName;contact.Update();

}

Page 138: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Borrar contacto

El método Delete de la clase Contact se usa para eliminar un contacto. El siguiente código muestra cómo eliminar un contacto:

public void DeleteContact(Contact contact){

contact.Delete();}

Page 139: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Practica: Creación de contactos

Crear una aplicación que permita crear un contacto con las siguientes características: Nombre

Foto

Organización

Departamento

Teléfono trabajo

IM

Correo

La App, se desarrollará sobre el emulador de Windows Mobile 6 Professional

Page 140: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Agregar tarea

El método AddNew de la clase Task permite añdir una nueva tarea. El siguiente ejemplo muestra cómo agregar una nueva tarea.

public void AddTask(string body, string categories, boolcomplete, DateTime startDate)

{OutlookSession os = new OutlookSession();Task task = os.Tasks.Items.AddNew();task.Body = body;task.Categories = categories;task.Complete = complete;task.StartDate = startDate;task.Update();

}

Page 141: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Modificar tarea

El método Update de la clase Task permite modificar una tarea. El código siguiente muestra cómo modificar una tarea:

public void EditTask(Task task, string body, string categories,bool complete, DateTime dueDate)

{task.Body = body;task.Categories = categories;task.Complete = complete;task.DueDate = dueDate;task.Update();

}

"

Page 142: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Borrar tarea

El método Delete de la clase Task borra una tarea. En el código siguiente se muestra cómo eliminar una tarea:

public void DeleteTask(Task task){

task.Delete();}

Page 143: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Agregar cita

Se puede agregar una cita con el método AddNew de la clase Appointment. El código siguiente muestra cómo añadir una cita:

public void AddAppointment(string body, string categories,DateTime startdate)

{OutlookSession os = new OutlookSession();Appointment appointment =

os.Appointments.Items.AddNew();appointment.Body = body;appointment.Categories = categories;appointment.Start = startdate;appointment.Update();

}

Page 144: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Modificar cita

El método Update de la clase Appointment permite modificar una cita.

El ejemplo siguiente muestra cómo modificar una cita:

public void AddAppointment(string body, string categories,DateTime startdate)

{OutlookSession os = new OutlookSession();Appointment appointment =

os.Appointments.Items.AddNew();appointment.Body = body;appointment.Categories = categories;appointment.Start = startdate;appointment.Update();

}

Page 145: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Borrar cita

El método Delete de la clase Appointment permite borrar una cita.

El código siguiente muestra cómo eliminar una cita:

public void DeleteAppointment(Appointment appointment){

appointment.Delete();

Page 146: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Utilizando la Tecnología de la Plataforma de Invocación para Llamar a Funciones DLL no Manejadas

•El Compact Framework soporta código de llamadas en módulos no manejados para usar funciones DLL.

•La tecnología de la plataforma de invocación se utiliza para llamar a estas funciones DLL.

•La tecnología de la plataforma de invocación es un superconjunto de las transiciones manejadas y no manejadas.

•Esta tecnología proporciona un rico conjunto de características de tipo conversión para trabajar con las diferencias inherentes entre DLL y CLR (Common Language Runtime).

.

Page 147: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Tecnología de la plataforma de invocación

Tiempo de diseño. Como desarrollador, se debe proporcionar una descripción de la función no manejada que debe ser llamada. La descripción contiene el nombre del módulo, el nombre del punto de entrada y la convención de llamada.

Just in time (JIT). El CLR extrae información sobre la función no manejada a la que se está llamando, localiza la DLL que contiene la función especificada, carga la DLL en memoria y luego entrega la dirección de la función.

Tiempo de ejecución. El CLR traduce los parámetros desde un formato manejado a un formato no manejado antes de que se produzca la llamada a la función. El CLR determina cómo traduce cada parámetro dependiendo de cómo se haya declarado la función en el código manejado.

Page 148: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Llamar a una Función DLL no Manejada

Para llamar a una función DLL no manejada se utiliza el atributo DllImport

Este atributo proporciona la información necesaria para llamar a la función que es exportada desde una DLL no manejada.

Cuando se utiliza el atributo DllImport, se debe incluir el nombre de la DLL que contiene el punto de entrada a una aplicación.

El siguiente ejemplo llama al método Add de una DLL no manejada llamada math.DLL:

class ManagedMath{

[DLLImport("math.DLL", EntryPoint="Add")]public static extern int Add(int a, int b);

}

Page 149: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Optimización y Despliegue de Soluciones de Movilidad

Page 150: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Contenidos

Midiendo y ajustando los recursos del sistema

Habilitando contadores de rendimiento en un dispositivo móvil

Firmando una aplicación basada en Windows Mobile

Empaquetando y desplegando aplicaciones basadas en Windows Mobile

Trabajando con herramientas remotas para Visual Studio 2005

Page 151: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Introducción

Antes de desplegar una aplicación basada en Windows Mobile 5.0 en un dispositivo, se necesita optimizar los recursos y asegurar la aplicación.

El Microsoft .NET Compact Framework 2.0 proporciona soporte para administrar la memoria y la energía en un dispositivo móvil

El Microsoft .NET Compact Framework 2.0 proporciona soporte para firmar una aplicación

Es posible monitorizar desde una estación de trabajo remotamente conectada usando herramientas remotas

Page 152: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Midiendo y ajustando los recursos del sistema

El rendimiento de nuestras aplicaciones basadas en Windows Mobile 5.0 es mejorable, midiendo y modificando los recursos

Un dispositivo móvil ya que el dispositivo tiene limitada la RAM física y no el archivo de paginamiento de memoria virtual.

Para diagnosticar el monitor y el rendimiento implementar traza de código y contadores

Se debe considerar como nuestro dispositivo móvil maneja las situaciones de memoria baja e hibernación

Se debe considerar como nuestra aplicación reserva memoria para manejar variables, pilas y montículos

Page 153: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Manejando estados de memoria baja

Los dispositivos basados en Windows Mobile están diseñados para un acceso rápido

Cuando una aplicación necesita mas memoria el Shell detiene las aplicaciones inactivas automáticamente.

Se debe manejar la persistencia del estado dentro de nuestra aplicación.

Las aplicaciones en espera reciben un mensaje WM_CLOSE para liberar memoria para la aplicación activa

Page 154: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Administrando variables y pilas

• Variables globales y estáticas

o variables creadas cuando un proceso se iniciao No son liberadas hasta que el proceso terminao Limitar el uso de variables estáticas y globales

• Pilas

o Cuando un proceso es creado , una pila es creada para el hilo al que pertenece el proceso.

o Para cada nuevo hilo que es creado en el proceso, una nueva pila es creada

o La nueva pila proporciona memoria usable para almacenar los valores de los parámetros que son pasados a funciones

o La pila de la memoria que es usada por una función es liberada cuando la función devuelve un valor

Page 155: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Manejando la hibernación de la aplicación

• El Shell de dispositivos basados en Windows Mobile usa un mensaje WM_HIBERNATE para obligar a las aplicaciones a liberar memoria

• Envía los mensajes empezando con la aplicación que ha estado inactiva el mayor período de tiempo.

• El Shell no envía mensajes WM_HIBERNATE a ventanas invisibles

• Al recibir este mensaje la aplicación libera cualquier gran bloque de memoria que este reservado por la función VirtualAlloc.

• Se liberan tanto gráficos, ventanas y objetos del subsistema de eventos como ventanas, bitmaps y contextos de dispositivo.

Page 156: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

El método GC.Collect

Fuerza la recolección de basura del CLR en un modelo mark-and-sweep (marcar y barrer)

Los objetos que están referenciados en código administrado no son recolectados.

No garantiza que toda la memoria inaccesible sea reclamada

Este método congela todos los hilos mientras están ejecutándose

Si se debe llamar al método GC.Collect, usar el método para manejar errores fuera de memoria (OOMs)

El método GC.Collect no libera toda la memoria disponible. Este método solo libera objetos que no son “disposables

Page 157: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Trabajando con herramientas remotas para Visual Studio 2005

Las herramientas remotas permiten conectar un dispositivo basado en Windows Mobile desde una estación de trabajo

También se pueden usar para administrar información de ficheros y de registro

Con las herramientas también es posible monitorizar el rendimiento de los hilos o procesos en un dispositivo Windows Mobile

Puede testear y depurar aplicaciones un dispositivo desde un equipo remoto conectado.

Page 158: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Herramientas remotas para Visual Studio 2005

Remote Process Viewer Esta herramienta muestra una lista de los hilos y los procesos que están ejecutándose en el

dispositivo destino e información acerca de cada uno de estos procesos e hilos.

Remote Heap Walker Esta herramienta muestra información acerca de identificadores de montículos, banderas, y

memoria del sistema para un proceso que está ejecutándose en un dispositivo destino.

Remote File Viewer Es una herramienta que muestra en una vista jerárquica el sistema de ficheros y permite

manejar el sistema de ficheros en el dispositivo destino.

Remote Zoom In Captura imágenes de pantalla de un dispositivo destino y almacena estas imágenes en

formato bmp. Se puede usar esta herramienta para capturar diferentes imágenes de pantalla en cada ventana.

Page 159: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Remote Spy Muestra las aplicaciones que están ejecutándose en el dispositivo

destino y los mensajes que estas aplicaciones intercambian unas con otras o a través de la red de los dispositivos

Remote Registry Editor Muestra el registro del dispositivo destino. Se puede añadir, modificar y

borrar las claves del registro y las entradas del registro usando esta herramienta.

Herramientas remotas para Visual Studio 2005

Page 160: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Técnicas para diagnosticar el rendimiento en los dispositivos móviles

La instrumentación permite monitorizar rendimiento de producto

La instrumentación permite diagnosticar errores

La instrumentación es la habilidad de una aplicación para implementar la traza de código, depuración y contadores de rendimiento

Page 161: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Usando contadores de rendimiento

Un contador de rendimiento colecciona datos de rendimiento acerca de los recursos

El contador de información incluye la categoría

Cada categoría está relacionada con un elemento funcional dentro del equipo y como un conjunto de contadores estándar asignados a él

Se puede usar el contador de datos para determinar el número de los recursos del sistema que están siendo utilizados

Es posible usar un contador de rendimiento para diagnosticar el bajo rendimiento de una aplicación

Se puede también trazar la ejecución del código en una aplicación instalada usando la clase Trace.

Page 162: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Habilitando contadores de rendimiento en un dispositivo móvil

• El .NET Compact Framework no soporta objetos PerformanceCounter

• El .NET Compact Framework tiene un conjunto de contadores de rendimiento predefinidos.

• Estos contadores analizan los tipos de carga que una aplicación provoca en los recursos del dispositivo.

• En un dispositivo móvil, los contadores de rendimiento son útiles para determinar el impacto del recolector de basura

• Los contadores de rendimiento también determinan el impacto de la compilación JIT en el rendimiento de la aplicación

Page 163: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Categorías de contadores de rendimiento

. Loader Contadores que se refieren a la operación del CLR

Generic Contadores que se refieren a métodos genéricos

Locks, Threads y Timers Contadores que se refieren a bloqueos, hilos, contenedor de hilos y temporizadores

GC Contadores que se refieren a operaciones del recolector de basura

Memoria Contadores que se refieren a los montículos de memoria administrada por el

recolector de basura

JIT Contadores que pertenecen a las operaciones del compilador JIT

Exceptions Contadores que se refieren a excepciones

Interop Contadores que se refieren a la interoperabilidad con código nativo

Networking Contadores que se refieren a las operaciones de red de enviar y recibir

Windows Forms Contadores que se refieren al nombre de espacio System.Windows.Forms

Page 164: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Monitor de rendimiento en tiempo de ejecución

• Gracias al monitor de rendimiento remoto, se pueden llevar a cabo las siguientes tareas:

• Ver los datos del contador de rendimiento mientras una aplicación se está ejecutando.

• Ver los datos del contador de rendimiento en un formato gráfico usando Perfmon.exe minetas una aplicación se está ejecutando.

• Habilitar la generación de ficheros .stat para duplicar el comportamiento que es soportado en versiones anteriores del .NET CF. Cuando se use esta característica, todos los ficheros .stat son escritos al disco cuando la aplicación se cierra.

• Ver los ficheros .stat generados previamente en el .NET Compact Framework 2.0.

• Habilitar y deshabilitar el logging.

Page 165: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Generar estadísticas de rendimiento

Para obtener las estadísticas de rendimiento, llevar a cabo los siguientes pasos:

1. Abrir el editor de registros de Windows y buscar la clave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETCompactFramework\PerfMonitor.

2. Ajustar la subclave Counters del registro PerfMonitor a 1

3. Ejecutar la apliación que se quiere examinar para el rendimiento. No ejecutar otras aplicaciones de .NET Compact Framework al mismo tiempo.

4. Examinar el fichero de estadísticas generado en la unidad raíz de nuestro dispositivo. El fichero tiene el mismo nombre que la aplicación de .NET CF que tiene una extensión .stat y esta ejecutándose actualmente.

5. Para apagar los contadores de rendimiento, ajustar la subclave Counters de PerfMonitor a 0.

Page 166: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Introducción al modelo de seguridad de aplicación

Page 167: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Herramientas en el modelo de seguridad

TestCert_Privileged.pfx y TestCert_Unprivileged.pfx Certificados que ayudan al desarrollo de seguridad. Pueden contener tanto el

certificado como la llave privada. El firmado falla si intentamos firmar una aplicación con un certificado que no tenga una llave privada correspondiente.

Load.xml Configura un modelo de seguridad de dos capas. Avisa al usuario con una

confirmación antes de ejecutar aplicaciones y no ejecuta aplicaciones no firmadas.

Prompt.xml Prompt.xml establece un modelo de seguridad de dos capas. Avisa al usuario de una

confirmación antes de continuar ejecutando aplicaciones, y ejecuta aplicaciones no firmadas como no privilegiadas.

Open.xml Open.xml configura un modelo de seguridad de una capa. No avisa al usuario con

una confirmación antes de ejecutar aplicaciones, y ejecuta todas las aplicaciones, incluyendo las aplicaciones no firmadas, como privilegiadas.

Page 168: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Herramientas en el modelo de seguridad

ActiveSync ActiveSync actúa como un Gateway entre un equipo basado en Windows y un

dispositivo basado en Windows Mobile 5.0, permitiendo la transferencia de información de Outlook, datos, y aplicaciones del equipo al dispositivo.

RapiConfig.exe RapiConfig.exe es una herramienta de configuración basada en XML que se puede

usar para configurar un emulador de dispositivo. Este fichero está localizado por defecto en \Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\SDKTools

Signtool Signtool es una herramienta de línea de comandos que firma digitalmente

ficheros, verifica firmas en ficheros o archivos de marcas de tiempo (time-stampfiles)

Page 169: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Firmar el ensamblado de una aplicación

Para firmar un ensamblado en un proyecto de dispositivo en Visual Basic o Visual C#, llevar a cabo los siguientes pasos:

1. En el explorador de soluciones, hacer clic en el botón derecho del ratón sobre el proyecto y después seleccionar Propiedades

2. Abrir la página de Firma

3. En la página de Firma seleccionar la casilla de verificación de Firmar el ensamblado

4. Para usar un fichero de claves de nombre seguro que ya existe, en la lista Seleccione un archivo de clave de nombre seguro seleccionar

Page 170: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Firmar una aplicación usando un certificado privilegiado de confianza o no privilegiado

Para firmar un proyecto de dispositivo en Visual Basic o Visual C#, llevar a cabo los siguientes pasos:

1. En el Explorador de soluciones hacer clic con el botón derecho del ratón sobre el proyecto y después seleccionar Propiedades.

2. Para abrir la página de Dispositivos en la página del nombre del proyecto, hacer clic en Dispositivos

3. En la página de Dispositivos en la sección de Firmar con Authenticode, seleccionar la casilla de Firmar el resultado del proyecto con este certificado

4. Para abrir el cuadro de diálogo Seleccionar certificado hacer clic en Seleccionar certificado

5. En el cuadro de diálogo de Seleccionar certificado de la lista de certificados, seleccionar el certificado que se quiera y después hacer clic en OK.

Page 171: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Empaquetando y desplegando aplicaciones basadas en Windows Mobile

El despliegue es el proceso de transferir una aplicación al dispositivo destino

Antes del despliegue se debe empaquetar la aplicación creando un archivo CAB

El archivo CAB es un ejecutable que puede contener nuestra aplicación, ficheros dependientes, recursos y ficheros de ayuda

Después de crear el archivo CAB se debe escoger una opción de despliegue.

Page 172: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Crear un proyecto CAB de dispositivo móvil

Para añadir un proyecto CAB, llevar a cabo los siguientes pasos:

1. Para abrir un proyecto de dispositivos inteligentes existente, en el menú Archivo hacer clic en Abrir y después en Proyecto/Solución

2. En el cuadro de diálogo de Abrir proyecto, seleccionar un proyecto de dispositivo inteligente y después hacer clic en Open

3. Para añadir un proyecto CAB, en el menú Archivo hacer clic en Añadir y después hacer clic en Nuevo proyecto

4. En el cuadro de diálogo de Añadir nuevo proyecto en el panel de Tipos de proyecto expandir Otros tipos de proyectos y después hacer clic en Instalación e implementación

5. En el panel de Plantillas, seleccionar Proyecto CAB de Smart Device

6. En el cuadro Nombre escribir CABProject y después hacer clic en OK.

Page 173: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Llenando el proyecto CAB

1. Asegurarse de que los ficheros que se seleccionan después en elproceso, están instalados dentro de la carpeta de aplicación en eldispositivo destino, en el panel de la izquierda del editor deficheros del sistema, seleccionar el nodo Carpeta de aplicación.Si el editor de ficheros del sistema no está visible, acceder alexplorador de soluciones, hacer clic con el botón derecho delratón sobre el nombre del proyecto CAB y hacer clic en Ver y enSistema de ficheros

2. En el Visual Studio 2005 en el menú Acción hacer clic enAñadir y después hacer clic en Resultado de proyecto

3. En el cuadro de diálogo de Añadir grupo de resultados deproyecto¸ de la lista de Proyectos seleccionar nuestro proyectode dispositivos inteligentes

4. De la lista de opciones de resultados, seleccionar Resultadoprincipal y después hacer clic en OK.

Page 174: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Personalizar el proyecto CAB

Cambiar el nombre del producto1. En el explorador de soluciones, seleccionar el proyecto CAB

2. En el menú Ver hacer clic en la Ventana de propiedades

3. En el campo Nombre de producto de la ventana de propiedades, escribir el nombre del nuevo producto

Especificar la localización del fichero de resultados1. En el explorador de soluciones, seleccionar el proyecto CAB

2. En el menú Ver hacer clic en el Editor y después en Sistema de ficheros

3. Hacer clic con botón derecho en Resultado Principal y después hacer clic en la Ventana de propiedades

4. En la ventana de propiedades, cambiar la propiedad Carpeta

Page 175: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Añadir dependencias si fuera necesario

1. En el explorador de soluciones, seleccionar el proyecto CAB

2. En el menú Proyecto seleccionar Añadir y después hacer clic en Archivo

3. En el cuadro de diálogo de Añadir ficheros, buscar el fichero que queramos añadir y después hacer clic en Abrir.

Page 176: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Crear un acceso directo

1. En el panel derecho del editor de sistema de ficheros, seleccionar Resultado principal de <nombre de proyecto de aplicación>

2. En el menú Acción seleccionar Crear un acceso directo al resultado principal de<nombre del proyecto de aplicación>

3. Botón derecho sobre el acceso directo que se ha creado y hacer clic en Renombrar

4. Escribir un nombre para el acceso directo

Page 177: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Editar una entrada de registro

1. Para editar una entrada de registro, llevar a cabo los siguientes pasos:

2. En el explorador de soluciones, seleccionar el proyecto CAB.

3. En el menú Ver, hacer clic en el Editor y después hacer clic en el Registro

4. En la pestaña Registro<nombre de proyecto> bajo el nodoRegistro en la máquina destino hacer clic en el botón derecho de ratón sobre HKEY_CURRENT_USER

5. En el menú de accesos directos, hacer clic en Nueva clave

6. Escribir un nombre para la nueva clave y después hacer clic con botón derecho de ratón en la nueva clave

7. En el menú de accesos directos, hacer clic en Nuevo y después hacerclic en Clave

8. Escribir un nombre para la clave y hacer clic con botón derecho de ratón sobre la clave.

9. En el menú de accesos directos hacer clic sobre la Ventana de propiedades

Page 178: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Opción de despliegue, ActiveSync

ActiveSync que permite copiar los archivos CAB de la aplicación a un dispositivo móvil.

El usuario puede el archivo CAB en el dispositivo para instalar la aplicación.

ActiveSync incluye una herramienta llamada ApplicationManager

Application Manager qproporciona un mecanismo para instalar y eliminar aplicaciones desde un dispositivo conectado.

Page 179: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Opción de despliegue, HTTP

Con HTTP los usuarios son dirigidos a la URL de los ficheros CAB en los que están localizados.

Cuando los usuarios acceden a la URL desde sus dispositivos Windows Mobile,pueden descargar e instalar la aplicación

Page 180: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Tarjeta de almacenamiento

Las tarjetas de almacenamiento se usan para desplegar aplicaciones en dispositivos desconectados

Windows Mobile detecta la tarjeta de almacenamiento cada vez que la tarjeta es insertada

Windows Mobile almacena el fichero autorun.exe

Este fichero de forma automática inicia la instalación de los ficheros CAB.

Autorun.exe también permite al software de Windows Mobile detectar la retirada de la tarjeta de almacenamiento

Autorun.exe indica a la aplicación a llevar a cabo una operación de limpieza y para eliminarse a si misma de la memoria activa.

Page 181: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de aplicaciones con Windows Mobile

Suministro de cliente WAP Suministro OMA DM

OMA DMinalámbrico

Suministro deExchange

inalámbrico

DesktopActiveSync®(RAPIConfig)

USB

Bluetooth

.CAB

OMA DM

iniciado por

SMS

WAP

iniciado por

SMS/SCCMExchange

Server 2007

ActiveSync

XML de configuración

en la ROM

Inicialización

de

Arranqueen frío

Obtención deun archivoinstalable

en eldispositivo

Provisión decliente WAPinalámbrica

Instalador de aplicaciones

WAP Push

Desktop ActiveSync

Cliente OMA DM

Proveedores de servicios de configuración (CSP)

Novedad Novedad

Métodos de aprovisionamiento en dispositivos –Ejecución de la administración de dispositivos

Page 182: Desarrollo_de_soluciones_de_movilidad_en_WM5y_6_y_VS_NET

Desarrollo de Soluciones Windows Mobile

DATOS DE CONTACTO:

EDUARDO ORTEGA [email protected]

VISITE NUESTRA WEB EN:

HTTP://WWW.MICMOVILIDAD.ES

COMUNIDAD DESARROLLADORES:HTTP://WWW.MOBILENUG.COM

Parque Tecnológico de Boecillo. Anexo Edificio Solar · 47151 Boecillo (Valladolid)Tlf: 983 549 630 · Fax: 983 549 752 · www.micmovilidad.es