Y ahora lo quiero en un dispositivo mvil - PowerPoint PPT Presentation

1 / 64
About This Presentation
Title:

Y ahora lo quiero en un dispositivo mvil

Description:

Y ahora lo quiero en un dispositivo m vil. Alejandro Mezcua. Responsable Desarrollo ... notificaciones de cambios sin que el cliente tenga que preguntar peri dicamente ... – PowerPoint PPT presentation

Number of Views:93
Avg rating:3.0/5.0
Slides: 65
Provided by: downloadM
Category:

less

Transcript and Presenter's Notes

Title: Y ahora lo quiero en un dispositivo mvil


1
Y ahora lo quiero en un dispositivo móvil
  • Alejandro Mezcua
  • Responsable Desarrollo
  • Zaltor Soluciones Informáticas
  • amezcua_at_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 gt 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, 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 ltHTMLgt
  • lt!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
    Transitional//EN" "http//www.w3.org/TR/xhtml1/DTD
    /xhtml1-transitional.dtd"gt
  • lthtml xmlns"http//www.w3.org/1999/xhtml"gt
  • El contenido se organiza utilizando ltdivgt

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 lt-gt 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/Defau
    lt.aspx?tabindex0tabid1

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
  • ltassemblyBindinggt

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
  • ?
Write a Comment
User Comments (0)
About PowerShow.com