La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas"— Transcripción de la presentación:

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

2 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

3 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

4 ¿Qué modelo de aplicación escojo? Panorama actual ¿Es que hay más de uno? Aplicaciones conectadas Aplicaciones parcialmente conectadas ¿Cuál escoger?

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

6 ¿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

7 ¿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)

8 ¿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

9 ¿Qué modelo de aplicación escojo? Panorama actual (V – Esquema final) WebA WebB SOAP (XML) WAP (XML) Internet/Intranet

10 ¿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

11 ¿Qué modelo de aplicación escojo? ¿Es que hay más de uno? Ejemplo BTServer, ArquitecturaApp BTClient (dll) DAL (dll) Web Service DB DAL conecta directamente a la base de datos o conecta a un Web Service (que usa la misma DLL para conectar a la base de datos dependiendo de un archivo de configuración en el cliente). Se unifica el API de acceso.

12 ¿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

13 ¿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)

14 ¿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

15 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

16 ¿Quién va a usar mi aplicación? Tipos de usuarios Dispositivos a utilizar Un ejemplo

17 ¿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

18 ¿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?

19 ¿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

20 ¿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.

21 ¿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.

22 ¿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

23 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

24 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

25 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 El contenido se organiza utilizando

26 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/

27 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

28 ¡Dame mis datos! ¿Qué usar cómo almacenamiento? Aprovecha tu dispositivo

29 ¡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)

30 ¡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

31 ¡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

32 ¡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)

33 ¡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)

34 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

35 .NET y los servicios de red ¿Con quién tengo que hablar? Servicios Web XML Serialización de objetos práctica

36 .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

37 .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

38 .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)

39 .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

40 .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)

41 .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

42 .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)

43 .NET y los servicios de red Servicios Web XML (VI) En.NET implementados en toda la plataforma.NET Framework.NET Compact Framework

44 .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/Def ault.aspx?tabindex=0&tabid=1

45 .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

46 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

47 Aplicaciones multitarea System.Threading La clase ThreadPool Windows Forms XML Web Services

48 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.

49 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

50 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

51 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)

52 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

53 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

54 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

55 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

56 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

57 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

58 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

59 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

60 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)

61 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

62 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

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

64 Preguntas ?


Descargar ppt "Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas"

Presentaciones similares


Anuncios Google