conceptos básicos para el desarrollo sobre dispositivos móviles

39
Conceptos básicos Conceptos básicos para el Desarrollo para el Desarrollo sobre Dispositivos sobre Dispositivos Móviles. Móviles. Matías S. Iacono Matías S. Iacono Microsoft MVP ASP/ASP.net Microsoft MVP ASP/ASP.net

Upload: gabo

Post on 11-Apr-2015

1.968 views

Category:

Documents


0 download

DESCRIPTION

conceptos básicos para el desarrollo sobre dispositivos móviles

TRANSCRIPT

Page 1: conceptos básicos para el desarrollo sobre dispositivos móviles

Conceptos básicos para Conceptos básicos para el Desarrollo sobre el Desarrollo sobre

Dispositivos Móviles.Dispositivos Móviles.

Matías S. IaconoMatías S. IaconoMicrosoft MVP ASP/ASP.netMicrosoft MVP ASP/ASP.net

Page 2: conceptos básicos para el desarrollo sobre dispositivos móviles

AgendaAgenda

IntroducciónIntroducción Herramientas para el desarrollador.Herramientas para el desarrollador. Web para dispositivos móviles.Web para dispositivos móviles. Compact .Net Framework.Compact .Net Framework. Sugerencias de diseño.Sugerencias de diseño.

Page 3: conceptos básicos para el desarrollo sobre dispositivos móviles

IntroducciónIntroducción

Page 4: conceptos básicos para el desarrollo sobre dispositivos móviles

Microsoft .NET Microsoft .NET Plataforma software para servicios WebPlataforma software para servicios Web y XML y XML

Amplía posibilidades de servidores, clientes Amplía posibilidades de servidores, clientes y serviciosy servicios

Modelo de programación consistenteModelo de programación consistente Ínter operable vía XML Web ServicesÍnter operable vía XML Web Services VentajasVentajas

Entrega el software como servicioEntrega el software como servicio La integración es intrínseca en la plataformaLa integración es intrínseca en la plataforma Permite aplicaciones inteligentesPermite aplicaciones inteligentes

IntroducciónIntroducción

Page 5: conceptos básicos para el desarrollo sobre dispositivos móviles

Desarrollos .NETDesarrollos .NET Plataforma .NETPlataforma .NET

Única plataforma basada en XML WebÚnica plataforma basada en XML Web Entrega servicios vía ASP.NETEntrega servicios vía ASP.NET

Desarrollo multilenguajeDesarrollo multilenguaje 20 lenguajes de programación existentes20 lenguajes de programación existentes Optimización de códigoOptimización de código Herramientas ajustadas a cada aplicaciónHerramientas ajustadas a cada aplicación

Visual Studio .NETVisual Studio .NET La herramienta más popular del mercadoLa herramienta más popular del mercado Entorno de desarrollo de alta productividadEntorno de desarrollo de alta productividad

IntroducciónIntroducción

Page 6: conceptos básicos para el desarrollo sobre dispositivos móviles

Ventajas de Windows CE .NETVentajas de Windows CE .NET Tamaño reducidoTamaño reducido

Puede trabajar en configuraciones mínimasPuede trabajar en configuraciones mínimas 450K Rom y 32KB Ram450K Rom y 32KB Ram

Trabaja sobre una gran variedad de CPU´STrabaja sobre una gran variedad de CPU´S Funcionamiento en tiempo realFuncionamiento en tiempo real Optimizado para bajo consumoOptimizado para bajo consumo

Necesario en equipos portátilesNecesario en equipos portátiles Arranque en segundos..Arranque en segundos..

IntroducciónIntroducción

Page 7: conceptos básicos para el desarrollo sobre dispositivos móviles

Herramientas para el Herramientas para el desarrolladordesarrollador

Page 8: conceptos básicos para el desarrollo sobre dispositivos móviles

Herramientas para el Herramientas para el desarrolladordesarrollador EmuladoresEmuladores

OpenWaveOpenWave Nokia y SonyEricssonNokia y SonyEricsson

SmartPhone SDKSmartPhone SDK Microsoft eMbedded Visual ToolsMicrosoft eMbedded Visual Tools

Visual Basic EmbeddedVisual Basic Embedded

Microsoft SmartPhone SDKMicrosoft SmartPhone SDK Visual Studio .Net 2003Visual Studio .Net 2003 ComplementoComplemento

CrossFire para .NetCrossFire para .Net

Page 9: conceptos básicos para el desarrollo sobre dispositivos móviles

Dos lenguajesDos lenguajes VB (reducido)VB (reducido) C++C++

Pros:Pros: Son gratuitasSon gratuitas

Contras:Contras: VB muy pobreVB muy pobre ‘‘Anticuadas’Anticuadas’

eMbedded Visual ToolseMbedded Visual Tools

Herramientas para el Herramientas para el desarrolladordesarrollador

Page 10: conceptos básicos para el desarrollo sobre dispositivos móviles

Embedded Visual ToolsEmbedded Visual Tools

EjemplosEjemplos

Page 11: conceptos básicos para el desarrollo sobre dispositivos móviles

Edición de .NET Framework para Edición de .NET Framework para Windows CEWindows CE Toda la potencia de .NET en los Toda la potencia de .NET en los

dispositivos (Web services…)dispositivos (Web services…) Pros:Pros:

Mismo lenguaje y entorno que .NET Mismo lenguaje y entorno que .NET Framework (VB.NET, C# de momento)Framework (VB.NET, C# de momento)

Copiar-Pegar desde proyectos desktopCopiar-Pegar desde proyectos desktop

Compact FrameworkCompact Framework

Herramientas para el Herramientas para el desarrolladordesarrollador

Page 12: conceptos básicos para el desarrollo sobre dispositivos móviles

??La decisión.La decisión.

Page 13: conceptos básicos para el desarrollo sobre dispositivos móviles

Server Side o Smart ClientServer Side o Smart Client

Server Server SideSide

SmartSmartClientClient

??

Sus usuarios necesitan Sus usuarios necesitan acceso a sus aplicaciones acceso a sus aplicaciones y a datos al mismo y a datos al mismo tiempo?tiempo?

Necesita una interfaz Necesita una interfaz especial?especial?

Tiene una conexión cara?Tiene una conexión cara? Tiene control sobre los Tiene control sobre los

dispositivos?dispositivos? Puede administrar las Puede administrar las

aplicaciones en los aplicaciones en los dispositivos?dispositivos?

Tiene competencia? Que Tiene competencia? Que ofrecen?ofrecen?

Page 14: conceptos básicos para el desarrollo sobre dispositivos móviles

Web paraWeb para dispositivos dispositivos móviles.móviles.

Page 15: conceptos básicos para el desarrollo sobre dispositivos móviles

Windows Server + IISWindows Server + IIS

.NET Framework.NET Framework

XML Web ServicesXML Web Services

ASP.NETASP.NET

ControlesControlesMóvilesMóviles

ControlesControlesdede

escritorioescritorio

Windows Server + IISWindows Server + IIS

ASPASPXSLT/ XSLT/

XSLISAPIXSLISAPI

Visual Studio .NETVisual Studio .NET

Manejado o Nativo?Manejado o Nativo?Web para móvilesWeb para móviles

Page 16: conceptos básicos para el desarrollo sobre dispositivos móviles

<?xml version="1.0"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN""http://www.WAPforum.org/DTD/wml_1.1.xml"><wml>

<card id="card1" title="card 1"><p><anchor title="anchor tag">Ir a la segunda pantalla<go href="#card2" /></anchor></p></card>

<card id="card2" title="card 2"><p>Segunda Pantalla</p></card>

</wml>

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.ActiveForm = Form2End Sub

Manejado o Nativo?Manejado o Nativo?Web para Web para móvilesmóviles

Page 17: conceptos básicos para el desarrollo sobre dispositivos móviles

<?xml version="1.0"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN""http://www.WAPforum.org/DTD/wml_1.1.xml"><wml><card id="ic" title=“Seleccion"><p>Seleccione uno<br /><select name="favorite" title=“Elija su favorito">   <optgroup title=“Autos">

<%set dbc = server.createobject(“…”)dbc.opensql = “….”set rst = dbc.execute(sql)do while rst.eof %>

      <option value=“<%=rst(“..”)%>"><%=rst(..)%></option><%

rst.movenextloop %>

   </optgroup></select></p></card></wml>

Manejado o Nativo?Manejado o Nativo?Web para Web para móvilesmóviles

Dim oDS As New DataSet oDS.ReadXml(Server.MapPath("xmlfile1.xml"))

Me.SelectionList1.DataSource = oDS.Tables(0)

Me.SelectionList1.DataMember = "datos"

Me.SelectionList1.DataValueField = "ID"

Me.SelectionList1.DataTextField = "Nombre"

Me.SelectionList1.DataBind()

Page 18: conceptos básicos para el desarrollo sobre dispositivos móviles

Mobile ControlsMobile Controls Desarrollo productivoDesarrollo productivo Fácil de manejarFácil de manejar Soporte a datos XMLSoporte a datos XML Integración con Web ServiceIntegración con Web Service Alto rendimientoAlto rendimiento Programación basada en Programación basada en

eventoseventos Conveniente para aplicaciones Conveniente para aplicaciones

dinámicasdinámicas Nativo / XSLTNativo / XSLT

Dificultad para el desarrolladorDificultad para el desarrollador Desafíos de administraciónDesafíos de administración Soporte XMLSoporte XML No trabaja con WSNo trabaja con WS Mas lentos que ASP.netMas lentos que ASP.net Conveniente para contenido Conveniente para contenido

estáticoestático

ASP.NET, ASP.NET, Mobile Mobile ControlsControls

Nativo / Nativo / XSLTXSLT

Mobile Mobile Web BrowseWeb Browse ??

Web para móvilesWeb para móviles

Page 19: conceptos básicos para el desarrollo sobre dispositivos móviles

Hola Mundo.Hola Mundo.

EjemplosEjemplos

Page 20: conceptos básicos para el desarrollo sobre dispositivos móviles

Compact .Net Compact .Net Framework.Framework.

Page 21: conceptos básicos para el desarrollo sobre dispositivos móviles

Pequeño y portable, pensado para dispositivosPequeño y portable, pensado para dispositivos Soporte de Visual Basic® y C# Soporte de Visual Basic® y C#

Uso de Visual Studio® .NETUso de Visual Studio® .NET Implantación y ejecución desde el IDEImplantación y ejecución desde el IDE Depuración desde el IDEDepuración desde el IDE

Soportar clientes Servicios Web y aplicaciones Soportar clientes Servicios Web y aplicaciones basadas en WinFormsbasadas en WinForms Librerías para formularios, gráficos, almacenamiento, Librerías para formularios, gráficos, almacenamiento,

red, acceso a datos, XML, …red, acceso a datos, XML, … Integración completa con el SO existenteIntegración completa con el SO existente

Uso de threads, P/Invoke para llamar a código nativoUso de threads, P/Invoke para llamar a código nativo

Compact .Net Framework.Compact .Net Framework.

Page 22: conceptos básicos para el desarrollo sobre dispositivos móviles

Compact .Net Framework.Compact .Net Framework.

Ejecución segura (type safe ejecution)Ejecución segura (type safe ejecution) Control de tiposControl de tipos No se permite el uso de variables no No se permite el uso de variables no

inicializadasinicializadas No se permiten casts no segurosNo se permiten casts no seguros Comprobación de los índices de los arrays, Comprobación de los índices de los arrays,

no buffer underrunsno buffer underruns Recolección de Basura (Garbage Recolección de Basura (Garbage

Collection)Collection)

Page 23: conceptos básicos para el desarrollo sobre dispositivos móviles

Compact .Net Framework.Compact .Net Framework. Compilación JITCompilación JIT

Compilación método por métodoCompilación método por método El resultado se guarda en un cache para su futura El resultado se guarda en un cache para su futura

reutilizaciónreutilización Si el dispositivo está bajo en memoria se borra Si el dispositivo está bajo en memoria se borra

este cacheeste cache Control de errores con excepcionesControl de errores con excepciones Sistema de tipos común (Common Type Sistema de tipos común (Common Type

System)System) Invocación, herencia, y depuración a nivel de Invocación, herencia, y depuración a nivel de

código fuente entre componentes de distintos código fuente entre componentes de distintos lenguajeslenguajes

Page 24: conceptos básicos para el desarrollo sobre dispositivos móviles

ConectividadConectividadNivel físicoNivel físico

IrDA, Bluetooth, GSM/GPRS, Ethernet, WiFi etc.IrDA, Bluetooth, GSM/GPRS, Ethernet, WiFi etc.ActiveSyncActiveSync

Instalación de aplicacionesInstalación de aplicacionesIntegración con el entorno de desarrolloIntegración con el entorno de desarrollo

TCP/IP, HTTP TCP/IP, HTTP XML, Web ServicesXML, Web ServicesADO.NET data providerADO.NET data providerSQL CE ReplicationSQL CE Replication

Compact .Net Framework.Compact .Net Framework.

Page 25: conceptos básicos para el desarrollo sobre dispositivos móviles

Compact .Net Framework.Compact .Net Framework.

System System

System.DataSystem.Data System.XmlSystem.Xml

System.WebSystem.Web

GlobalizationGlobalization

TextText

SecuritySecurity

CollectionsCollections

ResourcesResources

ReflectionReflection

NetNet

IOIO

ThreadingThreading

DiagnosticsDiagnostics

ServiceProcess

Configuration

Design

ADO.NETADO.NET

SqlServerCeSqlServerCe

SqlClientSqlClient

Xslt/XPath

XmlDocumentXmlDocument

RuntimeInteropServices

Remoting

Serialization

Serialization

Configuration SessionState

Caching SecuritySecurity

ServicesServices

DescriptionDescription

DiscoveryDiscovery

ProtocolsProtocols

UIHtmlControls

WebControls

System.DrawingSystem.Drawing

Imaging

Drawing2DDrawing2D

TextText

Printing

System.WinFormsSystem.WinForms

DesignDesign ComponentModelComponentModel

Reader/writersReader/writers

Clases SoportadasClases Soportadas

Page 26: conceptos básicos para el desarrollo sobre dispositivos móviles

Compact .Net Framework.Compact .Net Framework.¿Cómo de Compacto?¿Cómo de Compacto?

  

Tamaño Tamaño de Ficherode Fichero    ClasesClases MétodosMétodos

   CFCF DesktopDesktop %% CFCF DesktopDesktop %% CFCF DesktopDesktop %%

““MSCorEE”MSCorEE” 400K*400K* 2.2 M2.2 M 18%18% N/AN/A N/AN/A N/AN/A N/AN/A N/AN/A N/AN/A

MSCorLibMSCorLib 200K200K 2M2M 10%10% 364364 12861286 28%28% 39893989 1381713817 29%29%

SystemSystem 100K100K 1.2M1.2M 8%8% 140140 765765 18%18% 10901090 69536953 16%16%

System.DrawingSystem.Drawing 20K20K 458K458K 5%5% 4141 254254 16%16% 385385 35093509 11%11%

System.Web.ServicesSystem.Web.Services 67K67K 503K503K 13%13% 5454 274274 20%20% 302302 20832083 14%14%

System.Windows.FormsSystem.Windows.Forms 56+55K56+55K 2M2M 5%5% 4343 823823 5%5% 393393 1133711337 3%3%

System.XMLSystem.XML 138K138K 1.2M1.2M 12%12% 100100 724724 14%14% 927927 72277227 13%13%

•Tamaño del fichero del .NETCF MSCorEE de la versión Win32/x86Tamaño del fichero del .NETCF MSCorEE de la versión Win32/x86

Page 27: conceptos básicos para el desarrollo sobre dispositivos móviles

ManejadoManejado Desarrollo productivoDesarrollo productivo Programación robustaProgramación robusta Soporte para WSSoporte para WS Librerías de clases ampliasLibrerías de clases amplias Mismas herramientas y APIs Mismas herramientas y APIs

que en escritorioque en escritorio Usado por la mayoría de los Usado por la mayoría de los

desarrolladoresdesarrolladores

NativoNativo Mayor integración con el Mayor integración con el

dispositivodispositivo Requerimientos en tiempo realRequerimientos en tiempo real Drivers del dispositivoDrivers del dispositivo Mayor código para manejo de Mayor código para manejo de

capascapas

ManejadoManejado.NET CF .NET CF (VS.NET)(VS.NET)

NativoNativo (eVC) (eVC)

SmartSmartClientClient ??

Compact .Net Framework.Compact .Net Framework.Nativo o ManejadoNativo o Manejado

Page 28: conceptos básicos para el desarrollo sobre dispositivos móviles

Hola compact.Hola compact.

EjemplosEjemplos

Page 29: conceptos básicos para el desarrollo sobre dispositivos móviles

Datos desde un XML.Datos desde un XML.

EjemplosEjemplos

Page 30: conceptos básicos para el desarrollo sobre dispositivos móviles

Interacción con WS.Interacción con WS.

EjemplosEjemplos

Page 31: conceptos básicos para el desarrollo sobre dispositivos móviles

Mismo código, diferentes Mismo código, diferentes dispositivos.dispositivos.

EjemplosEjemplos

Page 32: conceptos básicos para el desarrollo sobre dispositivos móviles

Sugerencias en diseño.Sugerencias en diseño.

Page 33: conceptos básicos para el desarrollo sobre dispositivos móviles

Que hacer?Que hacer?

No copie desde escritorio a dispositivos pequeños.No copie desde escritorio a dispositivos pequeños. Concéntrese en las tareas mas especificas.Concéntrese en las tareas mas especificas. Mas simple, mas claro.Mas simple, mas claro. Intégrelo con voz.Intégrelo con voz. Realice pruebas de usabilidad.Realice pruebas de usabilidad. Mire las aplicaciones de Microsoft para usarlas como guías.Mire las aplicaciones de Microsoft para usarlas como guías. Minimice los mensajes de alertas.Minimice los mensajes de alertas.

Page 34: conceptos básicos para el desarrollo sobre dispositivos móviles

1024x7681024x768 176x220176x220Pensando en chico.Pensando en chico.

Page 35: conceptos básicos para el desarrollo sobre dispositivos móviles

Texto corto.Texto corto.

No tan formalNo tan formal““No se pudo conectarNo se pudo conectar”” contra “Su teléfono no se pudo contra “Su teléfono no se pudo conectar con el servidor.”conectar con el servidor.”

Eliminar texto innecesario.Eliminar texto innecesario.““Seleccione la configuración a usar” contra “Selecciones Seleccione la configuración a usar” contra “Selecciones la configuración que USTED quiere usar”la configuración que USTED quiere usar”

En ayudas en línea use el símbolo (>)En ayudas en línea use el símbolo (>)““Archivo > Abrir” contra “En el menú Archivo, presione Archivo > Abrir” contra “En el menú Archivo, presione Abrir.”Abrir.”

Page 36: conceptos básicos para el desarrollo sobre dispositivos móviles

Pensar en un mínimo de 30% de Pensar en un mínimo de 30% de expansión en las etiquetas.expansión en las etiquetas.

Algunas palabras pueden crecer Algunas palabras pueden crecer hasta un 100%hasta un 100%

Castellano:Castellano: avisoaviso

Alemán:Alemán:EingabeaufforderungEingabeaufforderung

Idioma.Idioma.

Page 37: conceptos básicos para el desarrollo sobre dispositivos móviles

Preguntas.Preguntas.

Page 38: conceptos básicos para el desarrollo sobre dispositivos móviles

ReferenciasReferencias

Microsoft SmartPhone: Microsoft SmartPhone: http://www.microsoft.com/windowsmobile/smartphone/

Desarrollo para Dispositivos Móviles: Desarrollo para Dispositivos Móviles: http://www.microsoft.com/windowsmobile/developers/default.mspx

Información sobre Windows eMbedded: Información sobre Windows eMbedded: http://www.microsoft.com/windows/embedded

Información Técnica sobre eMbedded: Información Técnica sobre eMbedded: http://msdn.microsoft.com/embedded/

Page 39: conceptos básicos para el desarrollo sobre dispositivos móviles

© 2004 Microsoft Corporation. © 2004 Microsoft Corporation. Todos los derechos reservadosTodos los derechos reservados

Muchas gracias por su participaciónMuchas gracias por su participación