24. Técnicas de Desarrollo para Dispositivos Móviles con .NET

Transcripción

24. Técnicas de Desarrollo para Dispositivos Móviles con .NET
Universidad de Deusto
Facultad de Ingeniería - ESIDE
Universidad de Deusto
. . . . . . . .
.
Técnicas de desarrollo para
dispositivos móviles con .NET
Iñaki Vázquez
[email protected]
Universidad de Deusto
Universidad de Deusto
. . . . . . . .
.
Contenidos
• Particularidades del desarrollo para
dispositivos móviles
• Tipos de aplicaciones y servicios, y su
problemática.
• .NET Mobile Internet Toolkit
• .NET CF para PocketPC y Smartphone
• Conclusiones
Iñaki Vázquez
.NET Day 2002
Técnicas de desarrollo para
dispositivos móviles con .NET
1
Universidad de Deusto
Facultad de Ingeniería - ESIDE
Universidad de Deusto
. . . . . . . .
.
Desarrollo para dispositivos móviles (I)
• ¿Qué diferencia un dispositivo móvil de otras
plataformas?
• Se entiende por dispositivo móvil aquel “que
disfruta de autonomía de movimiento y está
libre de cableado”.
• Es autónomo en cierta medida:
– Dispone de una batería
– La batería necesita recargarse, periódicamente
anulando la movilidad.
Técnicas de desarrollo para
dispositivos móviles con .NET
Iñaki Vázquez
Universidad de Deusto
. . . . . . . .
.
Desarrollo para dispositivos móviles (II)
• La batería y la miniaturización obligan a que
la potencia esté limitada:
– Procesador más simple
– Menor cantidad de memoria
– Componentes más pequeños, pero posiblemente
menos capaces
• Como consecuencia las aplicaciones móviles
serán menos potentes “a priori”.
• Una forma de evitar esta limitación es
dotando al dispositivo de capacidades de
comunicación.
Iñaki Vázquez
.NET Day 2002
Técnicas de desarrollo para
dispositivos móviles con .NET
2
Universidad de Deusto
Facultad de Ingeniería - ESIDE
Universidad de Deusto
. . . . . . . .
.
Desarrollo para dispositivos móviles (III)
• Ello permitiría:
– Depositar mayor cantidad de lógica de proceso en
servidores centrales muy potentes
– Gestión de información centralizada
• Inconvenientes:
– Encarecimiento del dispositivo
– Mayor consumo de energía
• Si movemos toda la lógica hacia servidores
centrales y dejamos sólo interfaz en el
dispositivo ? Web ? Web móvil ? Internet
móvil
Técnicas de desarrollo para
dispositivos móviles con .NET
Iñaki Vázquez
Universidad de Deusto
. . . . . . . .
.
Desarrollo para dispositivos móviles (IV)
• Repartamos la lógica de proceso de una
manera u otra, la interfaz siempre estará en
el lado del usuario: en el dispositivo móvil.
• ¿De qué capacidades de interacción
disponemos en un terminal pequeño?
– Una pantalla reducida, quizá monocromo
– Un mecanismo de entrada de datos complicado:
• Teclado numérico de teléfono
• Reconocimiento de escritura / teclado virtual
• Reconocimiento de voz (aún no muy desarrollado y no
adecuado para muchas tareas)
Iñaki Vázquez
.NET Day 2002
Técnicas de desarrollo para
dispositivos móviles con .NET
3
Universidad de Deusto
Facultad de Ingeniería - ESIDE
Universidad de Deusto
. . . . . . . .
.
Desarrollo para dispositivos móviles (V)
• Conclusiones preliminares:
– La interfaz a diseñar debe ser relativamente simple
sin solicitar entrada masiva de datos.
– Se deberá estudiar cuidadosamente el diseño de la
misma.
– Existen recomendaciones y guías de estilo al respecto
• Entonces, ¿qué ventaja tienen los dispositivos
móviles?
– Son móviles ? portables
– Acceso a información y servicios “dónde estés y a la
hora que estés”(efecto Martini), potenciado por
capacidades de comunicación
Técnicas de desarrollo para
dispositivos móviles con .NET
Iñaki Vázquez
Universidad de Deusto
. . . . . . . .
.
Tipos de dispositivos móviles (I)
• Básicamente existen dos tipos de
terminales móviles o plataformas de
computación portables:
–Teléfonos móviles
–PDAs (PocketPC, Palm)
• Hay otras como ordenadores portátiles,
TabletPCs, etc.. pero no se guardan en
el bolsillo.
Iñaki Vázquez
.NET Day 2002
Técnicas de desarrollo para
dispositivos móviles con .NET
4
Universidad de Deusto
Facultad de Ingeniería - ESIDE
Universidad de Deusto
. . . . . . . .
.
Tipos de dispositivos móviles (II)
• Teléfonos móviles
– Pros:
• Muy extendidos
• Ligeros y transportables
• Económicos
• Capacidades de comunicación innatas
– Contras:
• Poca potencia de proceso
• Poca memoria
• Capacidades de visualización limitada
• Interacción avanzada difícil
Técnicas de desarrollo para
dispositivos móviles con .NET
Iñaki Vázquez
Universidad de Deusto
. . . . . . . .
.
Tipos de dispositivos móviles (III)
• PDAs (Personal Digital Assistant),
ordenadores de bolsillo
(PocketPC, Palm, ...)
– Pros:
• Visualización mejorada (pantallas más
grandes y a color)
• Interacción avanzada (pantalla táctil,
comandos de voz,..)
• Mayor capacidad de computación que un
teléfono móvil
– Contras:
• Necesita accesorio para comunicaciones
• Mayor precio que un teléfono móvil
Iñaki Vázquez
.NET Day 2002
Técnicas de desarrollo para
dispositivos móviles con .NET
5
Universidad de Deusto
Facultad de Ingeniería - ESIDE
Universidad de Deusto
. . . . . . . .
.
Tipos de dispositivos móviles (IV)
• ¿Qué pasa si diseñamos un híbrido
entre PDA y teléfono móvil?
• ¿De qué mundo vienes?
– Del de PDAs ? PDA + módulo de
comunicación integrado (HP Compaq,
Toshiba)
– De la telefonía móvil ? teléfono móvil
con mayor capacidad de computación e
interacción (Nokia, Sony-Ericsson)
• Plataformas de Microsoft:
– PocketPC Phone Edition
– SmartPhone
Técnicas de desarrollo para
dispositivos móviles con .NET
Iñaki Vázquez
Universidad de Deusto
. . . . . . . .
.
Tipos de dispositivos móviles (V)
• Otras formas de tener capacidad de
comunicación en un PocketPC:
– Cable conectado a un teléfono móvil
– IR
– Bluetooth
– WLAN (Wi-Fi, 802.11b)
• Otras tecnologías complementarias:
– Localización
• DEMO: terminales móviles en acción
Iñaki Vázquez
.NET Day 2002
Técnicas de desarrollo para
dispositivos móviles con .NET
6
Universidad de Deusto
Facultad de Ingeniería - ESIDE
Universidad de Deusto
. . . . . . . .
.
Problemática
• Básicamente existen dos tipos de
aplicaciones para dispositivos móviles:
–Aplicaciones web: accesibles a través de un
navegador, con la lógica de procesamiento
en un servidor web
–Aplicaciones autónomas (standalone): con
la lógica residiendo en la propia aplicación
instalada en el terminal móvil
Técnicas de desarrollo para
dispositivos móviles con .NET
Iñaki Vázquez
Universidad de Deusto
. . . . . . . .
.
Problemática Aplicaciones Web (I)
• En sobremesa hay dominancia de un
navegador, estándar de facto: IE
• En los terminales móviles hay múltiples
plataformas, navegadores y lenguajes de
presentación (WML, cHTML, HTML):
– Pocket IE
– Sony-Ericsson
– Nokia
– Openwave
– ...
Iñaki Vázquez
.NET Day 2002
Técnicas de desarrollo para
dispositivos móviles con .NET
7
Universidad de Deusto
Facultad de Ingeniería - ESIDE
Universidad de Deusto
. . . . . . . .
.
Problemática Aplicaciones Web (II)
• En sobremesa se ha estandarizado un
tamaño de pantalla
• Cada terminal móvil tiene diferente tamaño
de pantalla, capacidades y forma de
interacción
• Debido a estos factores el desarrollo de
aplicaciones para Internet móvil es tedioso:
– Diferentes versiones de la sede web para cada
lenguaje de presentación
– Diferentes versiones de la sede web para cada
dispositivo específico según sus capacidades
Técnicas de desarrollo para
dispositivos móviles con .NET
Iñaki Vázquez
Universidad de Deusto
. . . . . . . .
.
Problemática Aplicaciones Web (III)
• El trabajo de los diseñadores y
desarrolladores se multiplica por n=nº de
versiones diferentes de la sede web
• El proceso de mantenimiento es costoso y
fomenta errores e incoherencias
• ¿Cómo hacer que una sede web se visualice
en sobremesa y en dispositivo móvil?
• ¿Cómo hacer servicios de Internet móvil que
se visualicen correctamente y de forma
optima en todos los dispositivos?
Iñaki Vázquez
.NET Day 2002
Técnicas de desarrollo para
dispositivos móviles con .NET
8
Universidad de Deusto
Facultad de Ingeniería - ESIDE
Universidad de Deusto
. . . . . . . .
.
.NET MIT (I)
• Eso es lo que nos permite el .NET Mobile
Internet Toolkit (MIT)
• Consta de dos módulos:
– Mobile Internet Designer: diseñador que se acopla
al VS.NET y permite diseñar las páginas web
móviles de manera independiente del dispositivo de
acceso, como si de un “formato neutro”de tratase
– Mobile Internet Controls Runtime: módulo que se
acopla al IIS y que trasforma las páginas diseñadas
en el “formato neutro”a uno específico y
optimizado para el dispositivo que realizó la petición
Técnicas de desarrollo para
dispositivos móviles con .NET
Iñaki Vázquez
Universidad de Deusto
. . . . . . . .
.
.NET MIT (II)
WML/HTTP
HTTP
+
Cabeceras
IIS
Plataforma .NET
Mobile Internet
Controls Runtime
Capacidades
de
dispositivos
Iñaki Vázquez
.NET Day 2002
HolaMundo.aspx
Técnicas de desarrollo para
dispositivos móviles con .NET
9
Universidad de Deusto
Facultad de Ingeniería - ESIDE
Universidad de Deusto
. . . . . . . .
.
.NET MIT (III)
HTML/HTTP
HTTP
+
Cabeceras
IIS
Plataforma .NET
Mobile Internet
Controls Runtime
HolaMundo.aspx
Capacidades
de
dispositivos
Técnicas de desarrollo para
dispositivos móviles con .NET
Iñaki Vázquez
Universidad de Deusto
. . . . . . . .
.
.NET MIT (IV)
• Ejemplo de petición HTTP:
GET
GET // HTTP/1.1
HTTP/1.1
Host:
Host: wap.deusto.es
wap.deusto.es
accept-charset:
accept-charset: US-ASCII,
US-ASCII, ISO-8859-1,
ISO-8859-1, UTF-16
UTF-16
Accept:
Accept: application/vnd.wap.wmlscriptc,
application/vnd.wap.wmlscriptc, application/vnd.wap.wbxml,
application/vnd.wap.wbxml,
application/vnd.wap.wmlc,
application/vnd.wap.wmlc, image/vnd.wap.wbmp,
image/vnd.wap.wbmp, image/jpeg,
image/jpeg,
image/gif,
image/gif, text/vnd.wap.wmlscript,
text/vnd.wap.wmlscript, text/html,
text/html,
text/plain,
text/plain, text/vnd.wap.wml
text/vnd.wap.wml
user-agent:
user-agent: Nokia-MIT-Browser/3.0
Nokia-MIT-Browser/3.0
accept-language:
accept-language: en
en
Via:
Via: Nokia
Nokia Activ
Activ Server
Server 2.0
2.0 Professional
Professional (build
(build 2451A)
2451A)
X-Network-Info:
X-Network-Info: UDP,127.0.0.1,security=0
UDP,127.0.0.1,security=0
Connection:
Connection: Close
Close
Iñaki Vázquez
.NET Day 2002
Técnicas de desarrollo para
dispositivos móviles con .NET
10
Universidad de Deusto
Facultad de Ingeniería - ESIDE
Universidad de Deusto
. . . . . . . .
.
.NET MIT (V)
• Extracto de página web móvil (Mobile Web
Form):
<mobile:Form
<mobile:Formrunat="server">
runat="server">
<mobile:Label
<mobile:Labelrunat=“
runat=“server">
server">
Hola,
mundo
Hola, mundomóvil
móvil
</mobile:Label>
</mobile:Label>
</mobile:Form>
</mobile:Form>
Técnicas de desarrollo para
dispositivos móviles con .NET
Iñaki Vázquez
Universidad de Deusto
. . . . . . . .
.
.NET MIT (VI)
• Extracto de capacidades
(machine.config):
[...]
[...]
<case
<case
match="Sony
match="Sony CMD-Z5"
CMD-Z5"
with="${deviceID}">
with="${deviceID}">
mobileDeviceManufacturer
mobileDeviceManufacturer == "Sony"
"Sony"
mobileDeviceModel
mobileDeviceModel == "CMD-Z5"
"CMD-Z5"
screenPixelsWidth
screenPixelsWidth == "96"
"96"
screenPixelsHeight
screenPixelsHeight == "60"
"60"
screenCharactersWidth
screenCharactersWidth == "20"
"20"
screenCharactersHeight
screenCharactersHeight == "4"
"4"
screenBitDepth
screenBitDepth == "2"
"2"
requiresOutputOptimization
requiresOutputOptimization == "true"
"true"
</case>
</case>
[...]
[...]
Iñaki Vázquez
.NET Day 2002
Técnicas de desarrollo para
dispositivos móviles con .NET
11
Universidad de Deusto
Facultad de Ingeniería - ESIDE
Universidad de Deusto
. . . . . . . .
.
.NET MIT (VII)
• El .NET MIT identifica el dispositivo móvil y genera la
presentación optimizada, según:
– Lenguaje de presentación
– Tipo y dimensiones de la pantalla
– Otras capacidades del dispositivo (frames, imágenes)
• Proceso:
– El dispositivo móvil genera la petición HTTP, que llega al
servidor
– Éste determina el adaptador adecuado para el control según
el lenguaje (WML, HTML cHTML, ...)
– El adaptador obtiene las capacidades del dispositivo, y
genera la salida más optimizada...
– ...que llega al terminal móvil en la respuesta HTTP
Técnicas de desarrollo para
dispositivos móviles con .NET
Iñaki Vázquez
Universidad de Deusto
. . . . . . . .
.
.NET MIT (VIII)
• ¿Es bueno tanto automatismo?
• ¿Se puede mantener algo de control?
• .NET MIT permite cierto grado de
personalización mediante diversos
mecanismos:
– Filtros de dispositivos, que permiten definir el
contenido a generar cuando el dispositivo
solicitante dispone de una característica concreta
– Controles de usuario: permite crear controles
móviles reutilizables, por ejemplo una barra de
menú.
Iñaki Vázquez
.NET Day 2002
Técnicas de desarrollo para
dispositivos móviles con .NET
12
Universidad de Deusto
Facultad de Ingeniería - ESIDE
Universidad de Deusto
. . . . . . . .
.
.NET MIT (IX)
• Combinando estos dos mecanismos un
desarrollador puede crear sus propios
controles que generan una determinada
salida según el tipo de terminal. Por
ejemplo, una barra de menú optimizada
según dispositivo.
• DEMO: MIT en acción
Técnicas de desarrollo para
dispositivos móviles con .NET
Iñaki Vázquez
Universidad de Deusto
. . . . . . . .
.
.NET MIT (X)
Iñaki Vázquez
.NET Day 2002
Técnicas de desarrollo para
dispositivos móviles con .NET
13
Universidad de Deusto
Facultad de Ingeniería - ESIDE
Universidad de Deusto
. . . . . . . .
.
.NET CF (I)
• Aplicaciones autónomas:
–Desarrollar una aplicación capaz de
ejecutarse en dispositivos con tipos de
procesador diferentes.
–Necesidad de una plataforma común.
• La plataforma .NET es demasiado
pesada...
• ...pero si creamos una versión reducida...
• .NET Compact Framework (.NET CF)
Técnicas de desarrollo para
dispositivos móviles con .NET
Iñaki Vázquez
Universidad de Deusto
. . . . . . . .
.
.NET CF (II)
• Versiones:
– .NET CF para
PocketPC (Windows
CE.NET)
– .NET CF para
SmartPhone (bajo
desarrollo)
– Otros dispositivos
(WebPad, Cámaras,
..)
Iñaki Vázquez
.NET Day 2002
.NET Sobremesa
.NET PocketPC
.NET
SmartPhone
Técnicas de desarrollo para
dispositivos móviles con .NET
14
Universidad de Deusto
Facultad de Ingeniería - ESIDE
Universidad de Deusto
. . . . . . . .
.
.NET CF (III)
• Consideraciones respecto a la versión de
sobremesa:
– No todas las librerías están incluidas
– No todas las clases de una librería están incluidas
– No todos los métodos de una clase están
incluidos, y el comportamiento de los que están
puede variar
• Es necesario experimentar y la reutilización
de librerías de clases es posible, pero de
manera limitada
Técnicas de desarrollo para
dispositivos móviles con .NET
Iñaki Vázquez
Universidad de Deusto
. . . . . . . .
.
.NET CF (IV)
• ¿Qué permite .NET CF?
–
–
–
–
–
–
–
Diseño de interfaz gráfica basada en ventanas
Acceso al sistema de ficheros
Acceso a BD locales y remotas
Comunicación por red
Acceso a Web Services y soporte limitado para proceso XML
Uso de librerías nativas del dispositivo
Misma seguridad, eficiencia y robustez que .NET Framework
• La versión SmartPhone está más limitada
gráficamente y con menores capacidades de proceso
XML
Iñaki Vázquez
.NET Day 2002
Técnicas de desarrollo para
dispositivos móviles con .NET
15
Universidad de Deusto
Facultad de Ingeniería - ESIDE
Universidad de Deusto
. . . . . . . .
.
.NET CF (V)
Button
CheckBox
ComboBox
HScrollBar
ListBox
RadioButton
TextBox
TrackBar
Label
VScrollBar
ColorDialog
ContextMenu
DataGrid
DateTimePicker
ErrorProvider
FontDialog
GroupBox
HelpProvider
LinkLabel
ListView
MainMenu
MonthCalendar
NumericUpDown
OpenFileDialog
Panel
PictureBox
SaveFileDialog
StatusBar
TabControl
Timer
ToolTip
TreeView
DomainUpDown
ImageList
NotifyIcon
ProgressBar
ToolBar
CheckedListBox
PageSetupDialog
PrintPreviewDialog
Splitter
MdiClient
PocketPC
Sobremesa
RichTextBox
Técnicas de desarrollo para
dispositivos móviles con .NET
Iñaki Vázquez
Universidad de Deusto
. . . . . . . .
Smart
Phone
.
.NET CF (VI)
• Posibles aplicaciones con .NET CF:
–Juegos
–Sistemas de gestión con envío o consulta
periódica de datos contra servidores
centrales: agentes comerciales, encuestas
y recogida de datos, toma de pedidos
–Control y visualización remota de cámaras
y televigilancia: telemetría y telecontrol
–Integración con sistemas de localización
Iñaki Vázquez
.NET Day 2002
Técnicas de desarrollo para
dispositivos móviles con .NET
16
Universidad de Deusto
Facultad de Ingeniería - ESIDE
Universidad de Deusto
. . . . . . . .
.
.NET CF (VII)
• A tener en cuenta:
–Estas aplicaciones sí se van a ejecutar en
el dispositivo móvil, consumen su memoria
y procesador
–Debemos ser más cuidadosos que nunca
con la gestión de estos recursos muy
limitados
–Por lo tanto las aplicaciones deben ser
ligeras
Técnicas de desarrollo para
dispositivos móviles con .NET
Iñaki Vázquez
Universidad de Deusto
. . . . . . . .
.
SmartPhone
• La versión de .NET CF está bajo desarrollo.
• Arquitectura:
Iñaki Vázquez
.NET Day 2002
Técnicas de desarrollo para
dispositivos móviles con .NET
17
Universidad de Deusto
Facultad de Ingeniería - ESIDE
Universidad de Deusto
. . . . . . . .
.
Conclusiones (I)
• Necesidades de comunicación:
–Aplicaciones web móvil: constante
–Aplicaciones autónomas:
•Ninguna: solitario, programa de cálculo
•Periódica: recogida y consulta de datos
•Constante: juego distribuido, chat, mensajería
instantánea
Técnicas de desarrollo para
dispositivos móviles con .NET
Iñaki Vázquez
Universidad de Deusto
. . . . . . . .
.
Conclusiones (II)
• Uso de Web Services:
–Aplicaciones web móvil: desde el servidor,
nunca desde el cliente
–Aplicaciones autónomas:
•Con comunicación periódica bajo demanda del
usuario
•Con comunicación constante (en menor
medida, puesto que posiblemente hagan uso
de un protocolo específico: IRC, Multimedia, ...)
Iñaki Vázquez
.NET Day 2002
Técnicas de desarrollo para
dispositivos móviles con .NET
18
Universidad de Deusto
Facultad de Ingeniería - ESIDE
Universidad de Deusto
. . . . . . . .
.
Conclusiones (III)
• El .NET MIT hace viable la gestión de sedes
web multidispositivio con todas la potencia
adicional de la plataforma .NET, de una forma
sencilla y pontente.
• El .NET CF permite el desarrollo de
aplicaciones avanzadas interactivas para
dispositivos, con la posibilidad adicional de
acceder a sistemas de información mediante
Web Services.
Técnicas de desarrollo para
dispositivos móviles con .NET
Iñaki Vázquez
Universidad de Deusto
. . . . . . . .
Iñaki Vázquez
.NET Day 2002
.
Técnicas de desarrollo para
dispositivos móviles con .NET
19

Documentos relacionados