1 / 64

Y ahora lo quiero en un dispositivo móvil

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!

hunter
Download Presentation

Y ahora lo quiero en un dispositivo móvil

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 SOAP (XML) Internet/Intranet WAP (XML) WebB

  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. App BTClient (dll) DAL (dll) Web Service DB ¿Qué modelo de aplicación escojo? ¿Es que hay más de uno? • Ejemplo BTServer, Arquitectura 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 <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>

  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/Default.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

More Related