GeneXus & Mobile Application: presente y futuro

Slides:



Advertisements
Presentaciones similares
Person IP Una Herramienta Personalizada con la que trabajará On Line Conectando en Tiempo Real todo su negocio.
Advertisements

Conceptos básicos para el Desarrollo sobre Dispositivos Móviles.
Desarrollo de aplicaciones 100%.NET Octavio Hernández DANYSOFT Internacional Delphi 8 para Microsoft.NET Framework.
Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas
La plataforma .NET David Carmona
Francisco Martínez Miranda Most Valuable Student oviedo.net.
Unidad 2 IDE Visual Studio.Net [UTN - Tecnologías de desarrollo de software IDE] [2009]
Rossy Garita Componentes fundamentales de CLR y
Introducción a Microsoft .NET
Agenda Conceptos Claves.
INDUSOFT Software para generación de completas aplicaciones industriales multi-plataforma Se compone de un completo y potente conjunto de herramientas.
DAVID LEONARDO MORENO COD
Red de área local (LAN) : una red que se limita a un área especial relativamente pequeña tal como un cuarto, un solo edificio, una nave, o un avión.
Elisa García Anzano Academic Developer Advisor
Desarrollo en dispositivos móviles Smartphone 2003 Alejandro Mezcua MVP.NET Zaltor Soluciones Informáticas
Características Técnicas
Presentación : Arquitectura Dealer DATASUR Informática.
Migración Win a Web. Un caso de Outsourcing exprimiendo GXPatterns al máximo. Ing. Juan Marcelo Bustamante Lamas
Lic. Gonzalo R. Losada ARTech México GXpatterns: ¡Dispare su productividad!
Nicolás Jodal GeneXus en el corto y mediano plazo.
Plataforma Microsoft.NET
Aprenda a utilizar GeneXus 9.0 en su máxima potencia
Interacción Persona Ordenador
Monitoreo de Vehículos en Tiempo Real
Solución Consulta Precios DMS Presenta:
GeneXus y PDA Rodrigo Alvarez Miguel Silva
GeneXus 8.0 Armin Bachmann
Presentación Técnica Gonzalo Echagüe
GeneXus 8.0 ¡Más con menos! Gerardo Pizarro
Ing. Silvia Keymetlian ARTech Acompañe la evolución: Convierta sus aplicaciones !
GeneXus en el corto y mediano plazo Nicolás Jodal Nicolás Jodal
Programación e Ingeniería de Software III
Nueva tecnología NG aplicada a ContPAQ Oscar Coronel Ávalos Gerente de marca contable José María Sánchez Álvarez Gerente de línea contable Eduardo Pérez.
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
SYSDEV MOBILE COMPUTING KALIPSO- GENERADOR DE APLICACIONES MÓVILES
CONTROL REMOTO YESID ERNESTO PERDOMO B
Paulina Guevara UNITA - IBARRA. Lenguaje de programación orientado a objetos y procedural. Un Sistema Gestor de Bases de datos o Database Management System.
Tecnologias Usadas.Net Framework LINQ WCF Subversion Clickonce Smart Client Deployment SQL Server Compact Edition. Visual Studio Express 2008.
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors Sun Open Network Enviroment (Sun ONE) vs.
Movilidad en.NET … foco en ASP.NET Mobile Ing. Gabriel Fogante Program Manager Neodynamicwww.neodynamic.com.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Prueba Piloto de Discapacidad y Residencia Habitual Tecnología.
0 10/11/20000 ACCESO REMOTO A SIG Bartolomé Pocoví PAMPLONA, 10 DE NOVIEMBRE DE 2000.
REDES INALÁMBRICAS.
Clase I Curso Microsoft .NET I.S.F.T. N° 182.
Israel Herrera Cervantes Alberto Rebolledo Ayala Corina Hernández Aponte Israel Ocampo Abarca.
Introducción: Dispositivos Móviles Mtra. Carolina Galaviz Inzunza CBTIS 037.
Son elementos con algún tipo de funcionalidad con capacidad de procesamiento con conexión a algún tipo de red cumpliendo indefinidas ordenes que pueden.
RED INALAMBRICA.
Nombre: Germania Ruiz UNIVERSIDAD TECNOLOGICA AMERICA.
DISEÑO E IMPLEMTACIÓN DE UNA APLICACIÓN M-LEARNING PARA ACOMPAÑAMIENTO DE CLASES PRESENCIALES Estefanía Fernández Oviedo Laura Isabel Gómez Parra.
KATHLEEN YANINA BORDA MORALES GESTION BASICA DE LA INFORMACION TRABAJOS EN LA NUBE.
Presentado Por: Albert Steven Veloza Aguirre Presentado A: Diana Esperanza López CONVERGENCIA TECNOLOGICA Grupo:
Avancem grup Avancem Grup, le ofrece la solución AvanVoip basada en software libre, licencias ip sin coste y con todas las funcionalidades de una centralita.
Programación, Orquestación y Unificación: los 3 pilares del test Alejandro Blengio Alvaro Gareppe
DISPOSITIVOS MOVILES. Aparatos diseñados para mantener un tipo de función con conexión a una red. Son de tamaños muy pequeños y pueden manejar mas de.
Ing. Rigoberto Castro Hdez. GENERACIONES DE TECNOLOGIAS.
 Un dispositivo móvil se puede definir como un aparato de pequeño tamaño, con algunas capacidades de procesamiento, con conexión permanente o intermitente.
SCOPE MX Móvil.. Herramientas de SCOPEmx móvil. La versión 2.0 de esta aplicación cuenta con distintas herramientas importantes para su buen desempeño,
 Palabra inglesa que define un conjunto de conceptos, prácticas y criterios.  En el desarrollo de Sw es una estructura conceptual y tecnológica que proporciona.
SQL Server Compact Edition
Una de las características de un sitio Web eficaz es mostrar sus contenidos de manera accesible y vincular de manera fácil a documentos de diferentes.
QUE ES UN DISPOSITIVO MOVIL Un dispositivo móvil se puede definir como un aparato de pequeño tamaño, con algunas capacidades de procesamiento, con conexión.
SQL Server como Fuente de Datos para Office 365 Ing. David Sánchez Aguilar Microsoft MVP Office 365 Microsoft Certified Trainer Senior Developer Advisor.
Acceso por red fija - ADSL (II) Modem ADSL Red Telefónica Proveedor de Acceso Red GigADSL SPLITTER Internet.
Acceso por Terminal móvil - GPRS (I) General Packet Radio Service (Servicio General de Radio por Paquetes) Tecnología que permite la transmisión de datos.
Equipo de soporte y desarrollo
Evolución de la comunicación en mi trabajo.
L2.
Transcripción de la presentación:

GeneXus & Mobile Application: presente y futuro Claudia Murialdo, Rodrigo Alvarez ARTech cmurialdo@artech.com.uy, ralvarez@artech.com.uy Hace un año apróximadamente, liberamors el generador para Pocket PC, como "LA" solución GeneXus para movilidad A lo largo de este año, varias empresas  han utilizado este generador , ralizando aplicaciones impresionantes, como es el caso de Heurys, que lo va a exponer a continuación. De todo esto hemos aprendido, a partir de ese proceso, varias cosas, la idea de hoy es compartir con ustedes ese proceso de aprendisaje, en el cual se encuentran tanto best practices de programación, como también deberes para nosotros. A que me refiero con deberes? Como ustedes saben el generador Pocket PC genera un lenguaje llamado EVB, que es un subconjunto de Visual Basic, que como tal cuenta con una gran lista de limitaciones, lo que nos implicaba no poder tener todo el potencial de GeneXus en los aplicativos generados. El año pasado en la charla relacionada, comentabamos que la alternativa que ibamos a manejar a futuro era trabajar con Compact framework, que es al igual que el framework de .NET, un conjunto de herramientas para realizar aplicaciones moviles. En ese porceso estamos... Es por eso que hoy le vamos a mostrar lo que va a ser el nuevo generador para aplicaciones moviles, vamos a hablar de las ventajas que tiene sobre su antecesor, y vamos a ver que todo aquello que aprendimos en este año, o que hicimos con Pocket PC, nos va a servir, ya que GeneXus nos va a encapsular, como muchas veces lo ha hecho, este cambio de tecnología.

GeneXus Mobile ANÁLISIS DISEÑO GENERACIÓN COMUNICACIÓN PROTOTIPO Supongamos entonces que queremos hace una aplicación móvil, como todo porceso de desarrollo, vamos a seguir los siguientes pasos:   Analisis Diseño Generáción Y luego vamos a ver como conecto la aplicación con el mundo, hablando de la Conectividad PROTOTIPO

GeneXus Mobile ANÁLISIS DISEÑO GENERACIÓN COMUNICACIÓN PROTOTIPO

Análisis (I) Plataforma Web Win Base de datos local Cliente Servidor Las dos anteriores Supongamos que tengo entonces una lista de requerimientos sobre una aplicación que tiene que ejecutarce en un dispositivo móvil. No se si notaron que no estoy diciendo Pocket PC, si no dispositvo móvil, la idea es no restringirnos a un solo aparato, como veremos mas adelante. Podemos decir que hay dos tipos de aplicaciones basicamente, aplicaciones que esten full conectadas, o aplicaciones que no esten conectadas o simplemente que se conecten, pero no podamos garantizar la conectividad 7x24. En el primer caso, podriamos hacer una aplicación web, podriamos inclusive usar GXPortal, que trae un modulo para dispositivos móviles en el que las ventanas sonmas chicas, etc. En este caso la logica ejecutaría en el servidor web, y no necesito nada particular. La verdad las tecnologias de acceso no pueden aún garantizar un 7x24, muchas veces esta solución no nos va a servir, por lo que vamos a encarar el segundo punto, tener una aplicación corriendo en el aparato. Una aplicación con un form windows. Dentro de esta gama de aplicaciónes podriamos decir que tenemos aquellas que tienen una base de datos local, y despues por algún mecanismo de sincronización transferiremos la info a una base centralizada (recuerden que las aplicaciones moviles por lo general son parte de un todo, de una aplicación centralizada), luego vamos a hablar mejor de estos mecanismos de sincronización. Por otro lado, y volando un poco en ideas, yo podría decir, quiero una aplicación que al igual que en windows, ejecute cliente servidor, que acceda a una base de datos centralizada por algún mecanismo de comunicación, tengo el aparato conectado a una red, o algo así. Esto lo puedo hacer solo si estoy en ese rango de comunicación, no? Recordemos que esto es algo que no se puede hacer con el generador Pocket PC que esta hoy en el mercado, pero como vamos a ver, si se puede hacer desde nuestro nuevo generador.   Por otro lado yo quiciera un hibriso, una mezcla de ambos, para quedarme conlo mejor de todo. Simplemente tengo una base local, pero derrepente requiero algo de info que no tengo, y puedo por algún mecanismo traer info de otra base de datos (esos mecanismos pueden ser webservices por ejemplo, o simplemente un pedido de info a una base centralizada)

Análisis (II) Como organizo mi ambiente de desarrollo? Depende de mi realidad! Nueva KB Nuevo Modelo KB Corporativa SQL Server KB Pocket PC Pocket PC Access Supongamos en nuestr ejemplo que el modelo que vamos a seleccionar es el hibrido, ya que muestra lo mejor de ambas opciones. Ahora bien, como arranco a trabajar esto con GeneXus? Tengo que tener una KB, dos KB, una KB , con dos modelos? No existe una respuesta general a esta pregunta, porque depende de como sean las regals de mi negocio y va a depender mucho de los mecanismos de sincronización que elija. Lo que podemos es comentarles es algunas soluciones que implementaron algunos de los casos de exito de pocket PC. Por lo general los mecanismos de sincronización, requieren tener tablas indistintas tanto en el cliente como en el server de datos. (al menos eso era lo que pasaba con PPC) Ante esta optica yo podria optar por tener un esquema con una KB con un modelo PPC y otro modelo WIN, el tema es que en general no quiero tener Tooodo lo de win en PPC. Les cuento el esquema que se manejo en un proyecto de méxico (inclusive con el porblema de tablas

GeneXus Mobile ANÁLISIS DISEÑO GENERACIÓN COMUNICACIÓN PROTOTIPO

Diseño (I) Tamaño de pantalla VS

Diseño (II) Tamaño Entrada de datos Botones Menues Tabs Combos DatePicker Checkbox Entonces ante esta realidad se hace critico el aprovechamiento de los espacios. Entonces que cosas tenemos que tener en cuenta?     Intentar usar Menus en vez de botones, en general no se usan muchos botones en las aplicaciones, esto era algoq ue en ppc no teniamos,   pero ahora tenemos, y algo qque incorpora tambien el CF. Otra cosa que es muuy recomendable es el uso de Tabs control, ya que las aplicaciones no son MDI, tener TABS es una opción que nos va aresultar mas performante que una aplicación windows.   Por otro lado EL GRAN tema de los pocket PC, es como hacer la entrada de datos. La idea es intentar disminuir lo másximo posible la entrada de datos por el teclado. En el Pocket hay 3 tipos de teclado, el teclado por software, el teclado que te reconoce los caracteres y el teclado por hardware, en cualquiera de los tres casos es un sistema LENTo de entrada de información. Recuerden que quién va a usar una aplicación no es el gerente de la empresa, es el que este abajo,el vendedor, el obrero, o sea, es una aplicación para la gente que esta en la calle dentro del negocio, y por lo general son gente cuyo dedo puede ser mas grande que un pocket pc Por lo tanto la idea es utilizar lo máximo posible combos, checkboxes, datapicker, y cualquier mecanismo que nos facilite la entrada de información.

Diseño (III) Entonces ante esta realidad se hace critico el aprovechamiento de los espacios. Entonces que cosas tenemos que tener en cuenta?     Intentar usar Menus en vez de botones, en general no se usan muchos botones en las aplicaciones, esto era algoq ue en ppc no teniamos,   pero ahora tenemos, y algo qque incorpora tambien el CF. Otra cosa que es muuy recomendable es el uso de Tabs control, ya que las aplicaciones no son MDI, tener TABS es una opción que nos va aresultar mas performante que una aplicación windows.   Por otro lado EL GRAN tema de los pocket PC, es como hacer la entrada de datos. La idea es intentar disminuir lo másximo posible la entrada de datos por el teclado. En el Pocket hay 3 tipos de teclado, el teclado por software, el teclado que te reconoce los caracteres y el teclado por hardware, en cualquiera de los tres casos es un sistema LENTo de entrada de información. Recuerden que quién va a usar una aplicación no es el gerente de la empresa, es el que este abajo,el vendedor, el obrero, o sea, es una aplicación para la gente que esta en la calle dentro del negocio, y por lo general son gente cuyo dedo puede ser mas grande que un pocket pc Por lo tanto la idea es utilizar lo máximo posible combos, checkboxes, datapicker, y cualquier mecanismo que nos facilite la entrada de información.

GeneXus Mobile ANÁLISIS DISEÑO GENERACIÓN COMUNICACIÓN PROTOTIPO

Generación (I) Microsoft .NET Compact Framework “Common” con .NET Framework Common Language Runtime Common Type System Common Intermediate Language Controles GUI Web Services Optimización de memoria Emuladores Pasemos ahora a ver qué vamos a genera. Lo que vamos a generar con este generador va a correr en el compact framework. El compact framework es basicamente una version compacta del Framework .NET para plataformas como pocket pc y Windows Smartphone. Una de las caracteristicas mas importante del compact framework es, que ademas de ser una mejora, una evolucion, con respecto al desarrollo en Visual Basic Embedded, es que comparte con el framework .Net, el CLR: es decir que utilizan el mismo ambiente de runtime, el Lenguage intermedio (CIL), el lenguaje independiente de CPU en el que las instrucciones pueden ser convertidas a codigo nativo, y el mismo sistema de tipos (CTS), por ejemplo webservices! (es decir cómo los tipos son usados y manejados en runtime). En Compact framewokt tenemos soporte para consumir web services, lo que nos da un potencial muy imporante para la integracion de una aplicacion movil. El tamaño del cf instalado varia segun el dispositivo en el rango de 1.7 MBytes a 2.6 MBytes y puede ser instalado en la ROM, o en la RAM. A partir de la version 2003 de pocket pc el cf ya viene instalado en la ROM. Esta optimizado para el manejo de memoria, sobre todo en los mecanismos de Class Loader, y GC. La funcional del framework .NEt mas imporante omitida en el compact framework, es: Acceso Oledb, ASP.NEt, remoting (en lugar de esto se puede usar web services), impresion. Algunos controles del desktop framework no soportados son: GroupBox, RichTextBox, PrintDialog, PrintPreview, FontDialog, LinkLabel, HelpProvider, NotifyIcon, Tooltip. Se pueden sí crear custom controls. Uno de los objetivos del compact framework es proporcionar emuladores. Los emuladores corren dentro de una maquina completamente aislados del sistema operativo de la maquina que los hostea. De forma que no tiene acceso a dicha maquina. Incluso se puede mapear un puerto serial o paralelo en el emulador a un puerto sobre la maquina.

Generación (II) Acceso de Datos Web Services Sincronización RDA Merge SQL Server CE SQL Server Web Services ADO.NET Sincronización RDA Merge Conectados, Desconectados, u Ocacionalmente Conectados. Base de datos local (offline) Sincronización Merge de SQL Server Remote data access Base de datos remota (online) Web services Una caracterisitca fundamental de las aplicaciones corriendo en dispositivos mobiles es que necesitan poder manejar los datos localmente en forma robusta, porque, parte del tiempo, y para algunas todo el tiempo, los dispositivos estan desconectados de cualquier red o fuente de datos. Por eso el manejo de datos local es un concepto esencial en este tipo de aplicaciones. El compact framework proporciona ese soporte para manejar los datos localmente en el dispositivo. Como base de datos local podemos tener una base datos SQL server CE, es la version de sql server para compact framework. Tiene soporte de las principales caracteristicas como transacciones, Integridad referencial, indices, encriptacion de datos. No tiene soporte para stored procedures, triggers o vistas. Soporta solamente una conexion concurrente porque Windows CE es un systema opertaivo sigle-user. Por ejemplo en el caso de venta movil de libros de una editorial a librerias, supongamos que decidimos tener en cada dispositivo de cada vendedor una base de datos local con el stock de libros para ese vendedor, particionamos el stock central entre los vendedores, ese stock periodicamente se va a tener que sincronizar con el stock en la base de datos central. Supongamos que la editorial solo tiene venta movil, es decir que las ordenes solo las ingresan los vendendores moviles, y al final de cada dia de venta, los vendendores sincronizan envian sus ordenes a la central. Para este modelo se adpata muy bien el mecanismo de sincronizacion RDA . RDA lleva un tracking de los cambios en la bd local, y luego envia los cambios al servidor central via internet. Este mecanismo no requiere configuracion especial en el server, y se usa cuando son los clientes los que hacen los cambios. Supongamos ahora en el caso de venta movil, que el stock de libros es modificado tanto en la bd de la editorial como en los moviles, en ese caso necesitamos sincronizar haiendo un merge de los cambios. El mecanismo de merge de sql server, pude sincronizar datos entre una bd central sql server (que se publica) y una bd en el cliente que se suscribe. Es un mecanismo mas complejo pero con mas funcionalidad, por ejemplo manejo de conflictos, filtros. Puedo definir definir filtros sobre columnas o filas, o dinamicos. Un modelo de acceso a datos que podemos tener es acceso a remoto a una base datos central. El acceso en ese caso es por TCP/IP, es un modelo que requiere estar conectados, que es adecuado para aplicaciones que manejan grandes cantidades de datos y no es posible tenerlos localmente, o donde trabajar con los datos actualizados es fundamental. En este modelo se tiene seguridad, performance, y update inmediato de los datos en el server. En ambos casos, y en ambos ambientes, .NET o compact framework, el manejo de las Bases datos es con ADO.NET, y con data providers managed. Otra opcion para acceder a los datos, y que es intermedia entre las dos primeras, es Web Services. Intermedia porque requiere conectarnos ocasionalmente. Web services lo podemos ver como un mecanismo para el manejo de datos, pero es tambien un componente muy imporante para la integracion de la aplicacion, para que pueda interoperar con otras, incluso de distintos sistemas operativos. En general, en las aplicaciones moviles, vamos a necesitar una combinacion de estos mecanismos de acceso a datos. Las propiedades transaccionales, todo el tema transaccional sigue siendo igual en genexus para sql server, todo eso funciona igual que en .NET

GeneXus Mobile ANÁLISIS DISEÑO GENERACIÓN COMUNICACIÓN PROTOTIPO

Comunicación Tecnología Ancho de Banda Alcance aproximado Connexión directa Infrared 9.6 K a 115K 1 metro BlueTooth 1Mbps 10 a 30 metros WLAN (Wi-Fi) 11 a 90 Mbps 50 a 300 metros WWAN (GSM, GPRS) 14.4 a 114 Kbps Inter-continente Satelital 9.6 Kbps En estos mecanismos (anteriores), sincronizacion, acceso remoto, web services, necesito conectarme a una red. La opcion que elija de como conectarme va a depender de la velocidad que necesite, de la distancia entre los puntos a conectar, el lugar donde se encuentra el dispositivo. Conneccion directa Bluetooth InfraRed WLAN WAN GPRS GSM Satelital Coneccion directa (con cables): Por ejemplo para sicronizar las ordenes de los vendedores al final de cada dia, podria conectar directamente con un cable a un PC,por puerto USB, puerto COM. Si pensamos que al final del dia cada vendedor pase por la editorial central. InfraRed (sin cables): Se puede usar cuando los puntos a conectar si estan a menos de 1 metro, y no hay nada que obtruya la la linea de union. Wireless (sin cables): BlueTooth (PAN:personal area network): esta coneccion tiene un alcance de aprox. 10 a 30 metros. El ancho de banda es de 1Mbps (megabits por segundo) en una coneccion entre el dispositivo y una red. Una coneccion con un access point para bluetooth, conecta directamente a la LAN con una velocidad de 10 a 100 Mbps. Otro escenario puede ser conectar el dispositvo con un celular (que soporte bluetooth) el factor critico en este caso es el ancho de banda. WLAN: radio de 1 milla, velocidad tipica de 11 Mbps.Wi-Fi es una alianza que certifica productos wireless interoperables con otros productos Wi-Fi. Es buena idea asegurarse de comprar produtos con el logo Wi-Fi. Existen los hostspots, que son puntos de acceso a wireless Wi-Fi en diferentes lugares publicos como hoteles, aereopuertos, centros de conferencias. Ejemplos son: http://www.t-mobile.com/hotspot , http://www.boingo.com http://www.wayport.com WAN: son networks proporcionadas por las companias celulares, proporcionan un alcance intercontinentes. La velocidad es de 14.4kbp a 114 Kbps dependiendo del tipo de network. GSM es una de las principales, y que tiene mas usuarios por celular o wirelees. GPRS es otra que esta creciendo y que proporciona redes GSM. Satelital.

GeneXus Mobile ANÁLISIS DISEÑO GENERACIÓN COMUNICACIÓN PROTOTIPO

Demo: Venta móvil de libros SQL Server ADO.NET Web Service Web Service SQL Server CE

Resumiendo... Evolución Mas robusto Web Services Conexión Remota Soporte en SmartPhones Que es lo nuevo que tenemos respecto a hace un año atrás: Evolucion: Microsoft a fines del 2001 anuncio que visual basic embedded no va a seguir evolucionando, si no el foco pasaria a la nueva plataforma Compact Framework y tools para los dispositivos. Mas robusto: el ambiente como los emuladores son mas robustos, pero ademas el generador para compact framework comparte el “core” con el generador c#, con lo que hereda un tiempo de test importante. Web services: es nuevo tambien, ya que no lo tenemos en el generador de hoy para PPC. Conexión remota con sql server. Soporte para smartphone.