Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones...

64
Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas [email protected]

Transcript of Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones...

Page 1: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Y ahora lo quiero en un dispositivo móvil

Alejandro MezcuaResponsable DesarrolloZaltor Soluciones Informá[email protected]

Page 2: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Agenda

¿Qué modelo de aplicación escojo? ¿Quién va a usar mi aplicación? Las ventajas de los estándares ¡Dame mis datos! .NET y los servicios de red para mi aplicación Aplicaciones multitarea Código entre plataformas Optimización del interface

Page 3: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Agenda

¿Qué modelo de aplicación escojo? ¿Quién va a usar mi aplicación? Las ventajas de los estándares ¡Dame mis datos! .NET y los servicios de red para mi aplicación Aplicaciones multitarea Código entre plataformas Optimización del interface

Page 4: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¿Qué modelo de aplicación escojo?

Panorama actual

¿Es que hay más de uno?

Aplicaciones conectadas

Aplicaciones parcialmente conectadas

¿Cuál escoger?

Page 5: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¿Qué modelo de aplicación escojo? Panorama actual (I - Dispositivos)

Web Site

Web Site

Page 6: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¿Qué modelo de aplicación escojo? Panorama actual (II - Dispositivos)

Dispositivos móviles Ordenadores portátiles Tablet PC Pocket PC Teléfonos WAP SmartPhones

Todos con capacidades de conexión La gente QUIERE usarlos

Page 7: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¿Qué modelo de aplicación escojo? Panorama actual (III - Comunicaciones)

GSM Baja velocidad, coste por tiempo de conexión

GPRS Media velocidad (hasta 56kbps), coste por volumen

de tráfico UMTS

Alta velocidad (hasta 2Mbps, inicialmente 128kbps) coste por volumen (¿y tipo?) de tráfico

WLAN (802.11) Muy alta velocidad (2-54 Mbps)

Bluetooth Redes ‘personales’ (rango 10m)

Page 8: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¿Qué modelo de aplicación escojo? Panorama actual (IV - Comunicaciones)

Cliente - Servidor Sockets, Normalmente HTTP

Cliente - Cliente (Peer to Peer) Sockets propios

Servidor – Servidor Sockets, HTTP, Remoting

Intercambio de Datos XML - SOAP

Page 9: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¿Qué modelo de aplicación escojo? Panorama actual (V – Esquema final)

WebAWebA

WebBWebB

SOAP (XML)SOAP (XML)

WAP (XML)WAP (XML)

Internet/IntranetInternet/Intranet

Page 10: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¿Qué modelo de aplicación escojo? ¿Es que hay más de uno?

Modelo => Arquitectura La arquitectura la dará el uso esperado de

la aplicación Para aplicaciones nuevas determinar

arquitecturas flexibles Es probable que en el futuro pidan extenderla

Page 11: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¿Qué modelo de aplicación escojo? ¿Es que hay más de uno?

Ejemplo BTServer, Arquitectura

AppApp

BTClient (dll)BTClient (dll) DAL (dll)DAL (dll)

Web ServiceWeb Service

DBDB

DAL conecta directamente DAL conecta directamente a la base de datos o a la base de datos o conecta a un Web Service conecta a un Web Service (que usa la misma DLL (que usa la misma DLL para conectar a la base para conectar a la base de datos dependiendo de de datos dependiendo de un archivo de un archivo de configuración en el configuración en el cliente).cliente).Se unifica el API de Se unifica el API de acceso.acceso.

Page 12: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¿Qué modelo de aplicación escojo? Aplicaciones conectadas

El cliente sólo dispone de un interface El proceso se realiza en el servidor Ejemplo

Aplicaciones Web WAP Terminales

Page 13: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¿Qué modelo de aplicación escojo? Aplicaciones parcialmente conectadas

El cliente dispone de capacidad de proceso Puede funcionar de manera autónoma en algunos

casos Puede almacenar información local para reutilizarla

posteriormente Parte del proceso se realiza en el servidor y

parte en el cliente Ejemplo

Algunas aplicaciones Cliente - Servidor Clientes de correo (Outlook desconectado)

Page 14: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¿Qué modelo de aplicación escojo? ¿Cuál escoger?

El modelo vendrá dado por la arquitectura deseada de la aplicación

Una misma aplicación puede disponer de varios clientes, unos conectados y otros parcialmente conectados

Page 15: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Agenda

¿Qué modelo de aplicación escojo? ¿Quién va a usar mi aplicación? Las ventajas de los estándares ¡Dame mis datos! .NET y los servicios de red para mi aplicación Aplicaciones multitarea Código entre plataformas Optimización del interface

Page 16: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¿Quién va a usar mi aplicación?

Tipos de usuarios

Dispositivos a utilizar

Un ejemplo

Page 17: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¿Quién va a usar mi aplicación? Tipos de usuarios

No todos los usuarios realizan las mismas tareas Administración de la aplicación Entrada de datos Análisis

Page 18: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¿Quién va a usar mi aplicación? Dispositivo a utilizar

Cada dispositivo es fuerte/débil en alguna característica Entrada de datos

Buena: Web, Win32 Mala: WAP, Pocket PC

Consulta de datos Buena: Todos Excelente: Dispositivos móviles, permiten acceder desde

cualquier sitio (WAP, Pocket) ya que el usuario lo suele llevar consigo

¿Con qué frecuencia se realiza la tarea?

Page 19: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¿Quién va a usar mi aplicación? Un ejemplo (I – definición)

Aplicación de gestión de errores de desarrollo (bugs) Permite a los testers/desarrolladores registrar

errores de los proyectos en los que trabajen Se hace un seguimiento de cómo va el proyecto

Permite a los jefes de proyecto tener un seguimiento de la calidad del proyecto

Page 20: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¿Quién va a usar mi aplicación? Un ejemplo (II – perfiles)

Administrador gestiona usuarios, proyectos, tablas auxiliares Tareas de realización poco frecuente, no urgentes Aplicación: Win32, Web; Conectada

Usuarios (Programadores) registran y examinan los errores que tienen asignados para solucionarlos Tareas frecuentes Aplicación: Win32, Web; conectada. Posible

WinCE si desarrollo fuera de oficina frecuente.

Page 21: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¿Quién va a usar mi aplicación? Un ejemplo (III – perfiles)

Usuarios (Testers/Programadores) registran y examinan los errores que tienen asignados para solucionarlos Tareas frecuentes Aplicación: Win32, Web; conectada. Posible

WinCE si desarrollo fuera de oficina frecuente.

Page 22: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¿Quién va a usar mi aplicación? Un ejemplo (IV – perfiles)

Jefes de proyecto, managers, clientes, ven estadísticas del progreso del proyecto Tareas de realización relativamente frecuente,

urgentes Aplicación: Web, WAP, Pocket PC; Conectada,

parcialmente conectada

Page 23: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Agenda

¿Qué modelo de aplicación escojo? ¿Quién va a usar mi aplicación? Las ventajas de los estándares ¡Dame mis datos! .NET y los servicios de red para mi aplicación Aplicaciones multitarea Código entre plataformas Optimización del interface

Page 24: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Las ventajas de los estándares XHTML (I)

Separación de contenido y formato Basado en estilos (css) Visible desde dispositivos

Aunque se el formato no se vea se ve el contenido de manera cómoda

Cada vez más dispositivos lo incorporan En VS.NET los controles de servidor no

generan XHTML Lo incorporarán en el futuro

Page 25: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Las ventajas de los estándares XHTML (II)

Los nuevos navegadores lo incorporan IE 6.0, última versión de Mozilla, etc…

Para IE 6.0 hay que incluir una declaración en la página y en la etiqueta <HTML> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0

Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

El contenido se organiza utilizando <div>

Page 26: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Las ventajas de los estándares XHTML (III)

Referencias de diseño con CSS http://www.csszengarden.com

Validación de XHTML correcto http://validator.w3.org/

Page 27: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Agenda

¿Qué modelo de aplicación escojo? ¿Quién va a usar mi aplicación? Las ventajas de los estándares ¡Dame mis datos! .NET y los servicios de red para mi aplicación Aplicaciones multitarea Código entre plataformas Optimización del interface

Page 28: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¡Dame mis datos!

¿Qué usar cómo almacenamiento?

Aprovecha tu dispositivo

Page 29: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¡Dame mis datos! ¿Qué usar cómo almacenamiento? (I)

No usar almacenamiento local Ventajas

Simplicidad en local

Inconvenientes No se puede usar si se está desconectado

Tipo de aplicaciones Sólo aplicaciones conectadas (tipo Web, por

ejemplo)

Page 30: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¡Dame mis datos! ¿Qué usar cómo almacenamiento? (II)

Base de datos local Access para Windows CE desaparecerá !! Se quedará el equivalente a SQLCE actual

Ventajas Disponible sin conexión Acceso con objetos conocidos (ADO.NET)

Búsquedas, actualizaciones, etc., con SQL Inconvenientes

Mayor complejidad en la instalación y configuración Memoria del dispositivo

Tipo de aplicaciones Conectadas, desconectadas, conectadas

esporádicamente

Page 31: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¡Dame mis datos! ¿Qué usar cómo almacenamiento? (III)

Archivos locales XML Texto plano (CSV)

Ventajas Disponible sin conexión Simplicidad de instalación (copiar)

Inconvenientes Búsquedas más pobres (en Compact Framework no hay

XPATH!!) Acceso manual

Tipos de aplicaciones Conectadas, desconectadas, conectadas

esporádicamente

Page 32: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¡Dame mis datos! Aprovecha tu dispositivo (I)

SQL Server Múltiples ediciones

Servidor: SQL Server Cliente Win32 (PC, TabletPC): MSDE Windows CE (PocketPC): SQLCE

Sincronizable entre todas ellas Mediante replicación

Permite disponer de copia local de los datos con un motor muy potente y API de acceso conocido (ADO.NET)

Page 33: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

¡Dame mis datos! Aprovecha tu dispositivo (II)

XML Archivos de texto de fácil edición manual Fáciles de mover de un sitio a otro API conocido

System.Xml Búsquedas mediante Xpath (excepto en Compact

Framework) Serialización de objetos a XML (en Compact

Framework serialización sólo mediante XML Web Services)

Page 34: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Agenda

¿Qué modelo de aplicación escojo? ¿Quién va a usar mi aplicación? Las ventajas de los estándares ¡Dame mis datos! .NET y los servicios de red para mi aplicación Aplicaciones multitarea Código entre plataformas Optimización del interface

Page 35: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

.NET y los servicios de red

¿Con quién tengo que hablar?

Servicios Web XML

Serialización de objetos práctica

Page 36: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

.NET y los servicios de red ¿Con quién tengo que hablar? (I)

Sockets .NET dispone de clases completas de sockets

TCP, UDP Clientes y listeners Broadcast / Multicast

A más alto nivel Clientes HTTP (HttpClient) Clientes SOAP (SOAPClient) DNS

Page 37: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

.NET y los servicios de red ¿Con quién tengo que hablar? (II)

Para servidores LDAP System.DirectoryServices (DirectoryEntry) Permite por ejemplo obtener información de

ActiveDirectory

Para servidores MessageQueue System.Messaging

Page 38: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

.NET y los servicios de red ¿Con quién tengo que hablar? (III)

Microsoft Exchange 2003 Sirve como base de datos de información no

relacional (documentos, mensajes de correo, etc.)

Accesible con WebDAV (HTTP). Con la clase WebClient,

modificando las cabeceras CDO (no .NET)

Page 39: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

.NET y los servicios de red Servicios Web XML (I)

Implementados por ASP.NET Nueva ISAPI para IIS intercepta la llamada y la

procesa

Serialización de objetos implícita Desde el punto de vista del programador, por

defecto HTTP y XML son transparentes A través e una clase proxy el cliente genera

un mensaje SOAP que envía al servidor

Page 40: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

.NET y los servicios de red Servicios Web XML (II)

Base de interoperatividad XML y HTTP son universales Los dos lados de la comunicación no tienes

por que ser iguales (Windows <-> UNIX) Ojo con tipos de datos

DataSet no es entendible por otras plataformas (sólo entre .NET)

Si se quiere interoperatividad, definir mensajes y mapear objetos a XML para serializar (mediante atributos)

Page 41: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

.NET y los servicios de red Servicios Web XML (III)

Modelo RPC Simula llamadas a funciones (tipo API) Implica Solicitud - Respuesta Por defecto en todas las herramientas de

WebServices Inconvenientes

A gran escala, HTTP puede dar problemas (protocolo no conectado)

Extensiones por parte de los fabricantes WSI

Útil en entornos controlados Sustituible en ocasiones por remoting

Page 42: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

.NET y los servicios de red Servicios Web XML (III)

Modelo Documento Basado en mensajes. No simula un API, sino que se basa en

‘contratos’ Un mensaje completo puede implicar N

operaciones en el destino

La comunicación es asíncrona Base de SOA (Services Oriented Architecture)

Page 43: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

.NET y los servicios de red Servicios Web XML (VI)

En .NET implementados en toda la plataforma .NET Framework .NET Compact Framework

Page 44: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

.NET y los servicios de red Servicios Web XML (V)

Ejemplo interesante: Cassini

Código gratuito Servidor Web Multitarea Carga el entorno de ejecución de ASP.NET en un

proceso independiente http://www.asp.net/Projects/Cassini/Download/

Default.aspx?tabindex=0&tabid=1

Page 45: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

.NET y los servicios de red Serialización de objetos práctica

Demo BTServer: Cuando un cliente arranca, inicia un listener

de UDP en un puerto aleatorio Al iniciar sesión, registra su IP, Puerto Desde el servidor se envían mensajes al

cliente Usando un WebService El mensaje es una clase que se serializa El cliente, al recibir el mensaje, deserializa el XML

en un objeto de la clase original

Page 46: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Agenda

¿Qué modelo de aplicación escojo? ¿Quién va a usar mi aplicación? Las ventajas de los estándares ¡Dame mis datos! .NET y los servicios de red para mi aplicación Aplicaciones multitarea Código entre plataformas Optimización del interface

Page 47: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Aplicaciones multitarea

System.Threading

La clase ThreadPool

Windows Forms

XML Web Services

Page 48: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Aplicaciones multitarea System.Threading

Namespace con las clases para multitarea

Dispone de clases para la creación de nuevos threads, sincronización (Mutex), timers, etc.

Page 49: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Aplicaciones multitarea La clase ThreadPool (I)

.NET pone a disposición de las aplicaciones un ‘Pool’ de threads a utilizar Si una aplicación crea muchos threads acaba por

agotar los recursos del sistema El threadpool gestiona la asignación de threads a la

aplicación en base al estado del sistema La aplicación ‘encola’ peticiones en el pool y el pool

las asignará un thread según estén disponibles Permite afinar el rendimiento del sistema y evitar el

consumo excesivo de CPU

Page 50: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Aplicaciones multitarea La clase ThreadPool (II)

Ejemplo BTServer: Cada cliente arranca un listener UDP El listener bloquea la ejecución del Thread hasta que

recibe datos La aplicación crea un nuevo thread del thread pool

que es el que queda bloqueado a la espera de recepción de mensajes.

Una vez tratado el mensaje, vuelve a crear un nuevo thread a la espera

De esta manera se consiguen notificaciones de cambios sin que el cliente tenga que preguntar periódicamente

Page 51: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Aplicaciones multitarea Windows Forms

Una aplicación Windows Forms ejecuta un thread en el que se puede trabajas con los controles Desde un segundo thread no se puede

acceder directamente a propiedades de un control

Para notificar a un control desde un thread distinto al principal Control.Invoke (o Control.BeginInvoke)

Page 52: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Aplicaciones multitarea Servicios Web XML (I)

Las llamadas a un servicio Web, pueden demorar bastante la respuesta Acceso en internet

Referencias Web Por defecto se genera una clase proxy con 3

métodos por cada WebMethod. Para HelloWorld

HelloWorld BeginHelloWorld EndHelloWorld

Page 53: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Aplicaciones multitarea Servicios Web XML (I)

Los métodos con BeginX EndX ejecutan la llamada de forma asíncrona Multithread No bloquean la aplicación Cuando regresan, avisan a la aplicación

mediante un ‘delegate’ (AsyncCallback)

Conveniente utilizar llamadas asíncronas siempre que se pueda

Page 54: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Agenda

¿Qué modelo de aplicación escojo? ¿Quién va a usar mi aplicación? Las ventajas de los estándares ¡Dame mis datos! .NET y los servicios de red para mi aplicación Aplicaciones multitarea Código entre plataformas Optimización del interface

Page 55: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Código entre plataformas Compartir código entre plataformas (I)

Un assembly lleva en sus metadatos las referencias a todas las demás En VS hechas a través de ‘References’ En línea de comando pasadas por parámetro A la hora de ejecutar se buscan de manera muy

estricta En .NET Framework (no en Compact Framework) se

pueden redefinir que assemblies se quieren utilizar en tiempo de ejecución (Assembly binding redirection) Mediante los archivos de configuración

<assemblyBinding>

Page 56: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Código entre plataformas Compartir código entre plataformas (II)

Entre PC y Tablet PC no hay diferencias Excepto controles propios de Tablet Mismo .NET Framework, basta con copiar los

assemblies de un equipo a otro Entre PC y Pocket PC

PC .NET Framework, Pocket .NET Compact Framework

Compact Framework es un subconjunto de .NET Framework

Mucho código se puede copiar, pegar y recompilar En la documentación aparecen todas las clases

soportadas

Page 57: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Código entre plataformas Compartir código entre plataformas (III)

Entre PC y Pocket PC Clases que sólo hagan referencia a System

se pueden copiar compiladas Útiles para la definición de tipos generales No soportado

Page 58: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Agenda

¿Qué modelo de aplicación escojo? ¿Quién va a usar mi aplicación? Las ventajas de los estándares ¡Dame mis datos! .NET y los servicios de red para mi aplicación Aplicaciones multitarea Código entre plataformas Optimización del interface

Page 59: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Optimización del interface Usabilidad (I)

Cada dispositivo se utiliza de manera distinta y de diseñaron con propósitos diferentes

La aplicación ha de adaptarse a la manera de trabajar del usuario y no al revés

Cada dispositivo dispone de características especiales Pocket PC: pantalla táctil. Se puede usar con el dedo Tablet PC: permite escribir y reconocer la escritura de manera

muy rápida Teléfonos WAP: la entrada de datos es muy lenta por el teclado

Page 60: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Optimización del interface Usabilidad (II)

Pocket PC Orientado a acciones concretas y rápidas Cada pantalla ha de permitir realizar una sola

acción, no muchas. Claridad. La entrada de datos se hace mediante teclado

en pantalla El teclado en pantalla ocupa mucho espacio, ojo

con no poner controles de texto debajo (permitir scroll de los controles)

Page 61: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Optimización del interface Usabilidad (III)

Dispositivos WAP Pantalla muy pequeña de texto Límite de datos en DeckSize Entrada con teclado numérico

Navegación por la pantalla lenta

Orientar cada página a algo muy concreto

Page 62: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Optimización del interface Usabilidad (IV)

Tablet PC La pantalla puede cambiar de sentido

(horizontal/vertical) Tenerlo en cuenta en el interface

La pantalla NO es táctil, se usa un ‘bolígrafo’ especial

Entrada de datos por reconocimiento Entrada de datos por “gestos”

Page 63: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Referencias

http://www.microsoft.com/spanish/msdn http://www.zaltor.com http://www.tabletpcdeveloper.com http://www.gotdotnet.com

Page 64: Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas amezcua@zaltor.com.

Preguntas

?