Upload
gabo
View
1.968
Download
0
Embed Size (px)
DESCRIPTION
conceptos básicos para el desarrollo sobre dispositivos móviles
Citation preview
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
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.
IntroducciónIntroducción
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
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
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
Herramientas para el Herramientas para el desarrolladordesarrollador
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
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
Embedded Visual ToolsEmbedded Visual Tools
EjemplosEjemplos
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
??La decisión.La decisión.
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?
Web paraWeb para dispositivos dispositivos móviles.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
<?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
<?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()
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
Hola Mundo.Hola Mundo.
EjemplosEjemplos
Compact .Net Compact .Net Framework.Framework.
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.
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)
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
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.
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
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
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
Hola compact.Hola compact.
EjemplosEjemplos
Datos desde un XML.Datos desde un XML.
EjemplosEjemplos
Interacción con WS.Interacción con WS.
EjemplosEjemplos
Mismo código, diferentes Mismo código, diferentes dispositivos.dispositivos.
EjemplosEjemplos
Sugerencias en diseño.Sugerencias en diseño.
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.
1024x7681024x768 176x220176x220Pensando en chico.Pensando en chico.
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.”
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.
Preguntas.Preguntas.
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/
© 2004 Microsoft Corporation. © 2004 Microsoft Corporation. Todos los derechos reservadosTodos los derechos reservados
Muchas gracias por su participaciónMuchas gracias por su participación