Está en la página 1de 25

Aplicaciones Mviles

El problema

En la mayora de los sistemas corporativos existen procesos que a pesar del grado tecnolgico se siguen haciendo de
manera informal, provocando que la informacin almacenada en la base de datos central no sea del todo correcta o no
est ingresada en tiempo y forma.
Nos estamos refiriendo por ejemplo al vendedor que toma las rdenes de compra en papel, y recin al final del da o la
semana ingresa esa orden en el sistema. Esto puede traer un gran nmero de problemas, como vender productos que
no estn en stock, vender productos con un precio no actualizado, no poder actualizar los datos del cliente en tiempo
real, etc.,adems de que se debe realizar el ingreso de datos dos veces una al realizar la venta y otra a la hora de
agregarlo al sistema. En esta segunda instancia nos podemos topar con problemas como datos insuficientes...
Este es solo un ejemplo de los problemas que tiene no tener nuestros sistemas cuando no estamos en nuestra oficina.
Dependiendo del dominio de la aplicacin es probable que existan un gran nmero ms de problemas.
La solucin
La solucin al problema planteado anteriormente es poder acceder a nuestros sistemas hasta cuando no estamos en
nuestras oficinas.
Las alternativas fueron evolucionando atadas al desarrollo tecnolgico.
Una solucin que comenz a ser utilizada es tener Laptops con sistemas "satlite" del sistema centralizado para luego
enviar esos datos al sistema central.
El problema principal de utilizar Laptop es que muchas veces el ciclo de uso de la aplicacin tiene que ser gil
(pensemos en un visitador mdico que tiene 3 o 4 minutos para ver al mdico entre pacientes) y prender un Laptop,
esperar que cargue el sistema operativo y la aplicacin para dar de alta la venta es un proceso costoso.
Por otro lado muchas veces es necesario poder tener la aplicacin al alcance de la mano, pensemos por ejemplo en una
toma consumo, el cargar un Laptop en su recorrido es inimaginable.
Con el desarrollo tecnolgico evolucionan los pocket PC's de ser simple agendas a ser dispositivos con todo el potencial
de ejecutar aplicaciones potentes. En particular aquellos que corren sistemas operativos de la familia de Windows
Mobile .
Es en este marco que Microsoft libera el Compact Framework un Framework reescrito para estos dispositivos, capaz de
interpretar aplicaciones .NET.
Aprovechando esto es que nace el generador .NET Mobile, un generador especifico para generar aplicaciones mviles
para el Compact Framework
Caractersticas
El generador .NET Mobile genera cdigo C# interpretable por el Compact Framework, donde las aplicaciones son con
interfaz win.
Soporta todas las ventajas de las aplicaciones GeneXus con esta interfaz, como son el consumo de Webservices, el uso
de Bussines Components, SDTs, Multiidioma, etc.
Base de Datos
Las aplicaciones mviles rara vez son aplicaciones en si mismas independientes del resto de los sistemas, sino que
suelen ser satlites de sistemas centralizados. De todas formas es necesario poder almacenar datos de manera local o
poder ver datos de sistemas centralizados. (Ms adelante veremos el problema de Sincronizacin ).
El generador .NET Mobile puede trabajar con la base de datos local SQL Server CE base de datos que corre en el
dispositivo, o acceder a una base de datos centralizada como es SQL Server.
A medida que existan providers ADO para conectarse a otras bases de datos se irn agregando al generador.
Conectividad
Los dispositivos cuentan con varios mecanismos de comunicacin por los cuales el dispositivo se conecta a una red,
pudiendo transferir archivos, consumir WebServices de la red, o cualquier cosa que se pueda hacer en esa red.

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 1 de 25

Requerimientos de desarrollo
Introduccin
Para poder utilizar el generador .NET Mobile es necesario tener instalado ciertos requerimientos de Software. Dicho
Software debe instalarse en un orden establecido para que todo funcione correctamente.
Generador .NET Mobile
El generador .NET Mobile si bien genera cdigo C#, el mismo difiere del cdigo generado en las aplicaciones .NET ya
que utiliza como base el .NET Compact Framework. Esto implica que sea necesario tener instalado GeneXus 9.0 , y el
generador .NET Mobile.
ActiveSync 3.7 o superior
Este programa es utilizado para establecer la comunicacin entre el dispositivo/emulador con la PC de desarrollo.
Se puede descargar gratuitamente del siguiente link
El sistema operativo Windows Mobile 5.0 requiere el activesync 4.0 o superior.
Visual Studio .NET 2003
El Visual Studio .NET 2003 trae incorporado todas las clases necesarias para manejar aplicaciones mviles. Si bien no es
utilizado directamente, si se usa un conjunto de dll's que no son distribuibles.
SDK de plataforma de desarrollo
Cada dispositivo cuenta con un SDK (Software Developer Kit) particular, dependiendo del tipo de dispositivo.
En caso de trabajar con Windows Mobile 2003, se puede descargar el SDK for Windows Mobile 2003-based Pocket PCs
Emulador
En caso de no contar con un dispositivo conectado a la PC para prototipar, se puede trabajar con emuladores. Los
emuladores son mquinas virtuales que corren en la PC las cuales podemos utilizar tal cual el dispositivo.
Existen un emulador dependiendo de cada plataforma de desarrollo (Windows CE 2002, Windows Mobile 2003,
SmartPhone? , etc)
Para trabajar con el SDK mencionado anteriormente se puede bajar el emulador Emulator Images for Windows Mobile
2003 Second Edition software for Pocket PC
SQL Server CE versin 2.0
En caso de trabajar utilizando la sincronizacin de SQL Server, es necesario tener instalado la siguiente actualizacin del
mismo, para poder usar el Internet Information Server como mecanismo de publicacin de datos.
Se puede obtener del siguiente link y se debe seleccionar la versin correspondiente con el Service Pack de SQL Server
que se tenga instalado en el servidor.
Consideraciones
Es importante tener presente que los requerimientos de Software listados anteriormente deben instalarse en el orden
prefijado.
Esto es:
1.
2.
3.
4.

ActiveSync? 3.7 o superior


Visual Studio .NET 2003
SDK de la plataforma de desarrollo
Emulador

En caso de ser necesario reinstalar uno de los componentes se deber reinstalar tambin los siguientes.
Por ejemplo, si se reinstala el ActiveSync? , ser necesario reinstalar el Visual Studio, el SDK y el emulador.
En caso de que no se haga esto, al momento de prototipar tendremos problemas a la hora de transferir archivos al
emulador o al dispositivo.

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 2 de 25

Si a pesar de haber instalado los componentes en orden, a la hora de conectarse con el emulador se presenta el
siguiente mensaje: "One or more files from the Emulator for Windows CE installation is missing. Please reinstall
Emulator for Windows CE and try again."
Se debe a que no se tiene instalado el "Virtual PC Application services". Para corroborarlo, hacer clic derecho Mi PC,
Propiedades ->Hardware ->"Device Manager"
En caso de no tenerlo instalado se debe instalar corriendo el setup que se encuentra en:
<VSROOT>CompactFrameworkSDKConnectionManagerBinDriverInstallSmart Devices Emulator.msi

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 3 de 25

Arquitectura
Introduccin

A la hora de construir una aplicacin mvil, es necesario definir como va a ser la arquitectura de la misma. Con esto nos
referimos a que por lo general las aplicaciones mviles no son el ncleo de la aplicacin en si mismo, si no una forma
de entrada o consulta de datos. Por lo tanto, va a ser necesario definir como vamos a trabajar con estos mdulos del
sistema y como se van a integrar con nuestra sistema existente.
Entorno de desarrollo
Una pregunta comn al comenzar a trabajar con aplicaciones mviles es como debo estructurar mi base de
conocimiento.
En la mayora de los casos, vamos a partir de un sistema ya existente, en el cual tenamos resuelta la toma de datos
por algn modulo del sistema, ya sea Win o Web, con cierta lgica asociada que quisiramos reutilizar.
Existen distintas alternativas que podemos manejar:
Un nuevo modelo asociado al generador .NET Mobile
En la mayora de los casos no nos va a servir, pues, si nuestra base de conocimiento tiene un modulo de entrada de
datos que podemos reutilizar, tambin tiene muchas cosas que no queremos tener en nuestro modelo mvil.
Por ejemplo, nuestro sistema de entrada de datos podra simplemente utilizar 3 tablas, mientras que la base de
conocimiento tiene muchas ms. No tiene sentido crear esta cantidad de tablas en el Pocket PC cuando solo usamos 3.
Sin embargo parece muy util cuando se utiliza replicacin de SQL Server como veremos ms adelante.
Una nueva base de conocimiento
Quizs esta sea la mejor opcin, pues podemos quedarnos solo con aquello que necesitamos.
Consiste en crear una nueva base de conocimiento con aquellos objetos que vamos a utilizar en la aplicacin mvil.
Tenemos dos alternativas, consolidar los objetos de la KB centralizada y recortarlos, o rehacer los objetos en nuestra
nueva KB.
Ejemplo
Con el fin de ilustrar la forma de plantear el entorno de desarrollo, veamos el siguiente ejemplo:
Se tiene una sistema dedicado a administrar servicios tcnicos de PC's. El sistema consiste en manejar a partir de
requerimientos de entrada, pedidos de services, asociarlos a un tcnico, el cual va a realizar el service al cliente y al
retornar registra el resultado del mismo.
Dicho sistema se tiene instalado en el local de donde parten los tcnicos, y tradicionalmente se les presenta una planilla
con los services que debe realizar en cada turno. El Tcnico al retornar de su turno, debe ingresar los datos que rellen
en la planilla en el sistema.
Para manejar esta realidad se tiene un sistema con las siguientes transacciones:
Issue: Para manejo de los incidentes reportados por los clientes, y asignacin del empleado que lo va a atender.

Employes: Manejo de empleados que hacen Service tcnico

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 4 de 25

Customer: Datos de los clientes de la empresa

Assist: Transaccin paralela a la Issue donde el empelado registra los datos del incidente luego de atenderlo.

Con estas 4 transacciones podemos modelar de forma sencilla el manejo de incidentes, asignacin de empleados y
registro de clientes.
Ahora queremos darle a cada tcnico un Pocket PC, de forma de cargar en el Pocket cada una de los incidentes que
debe atender, as como los datos necesarios para que lo atienda.
Aqu nos surge una pregunta, realmente necesitamos toda la informacin que tiene el sistema central?
No nos sirve de nada tener todos los datos de todos los empleados, por ejemplo, ya que es algo que no voy a requerir.
Lo que vamos a hacer es consolidar las transacciones en una nueva KB y luego vamos a eliminar la transaccin de
empleados y recortar datos innecesarios de las restantes.
El resultado final es la siguiente estructura:

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 5 de 25

Issue: Se elimina referencia al empleado, as como la descripcin de Cliente (por un tema de diseo de pantallas, como
veremos mas adelante)

Customer: Solo nos quedamos con los datos de los clientes que nos interesan visto desde el punto de vista del
tcnico. No tiene sentido manejar la fecha de pago, o la direccin de cobro

Assist: Permanece incambiada.

Ntese entonces que hacemos dos recortes:


1 - Eliminamos transacciones que no nos interesan
2 - Eliminamos atributos dentro de transacciones que no nos interesan.
Esto se debe a que si bien los dispositivos mviles son computadoras, los recursos son limitados y debemos intentar
recortar lo ms posible la aplicacin para tener solo aquellas cosas que necesitamos realmente.
An no definimos como vamos a comunicar el sistema centralizado con el sistema mvil. Tampoco como vamos a
estructurar los form de la aplicacin, eso lo veremos mas adelante.
Conclusin
A la hora de construir un sistema mvil se tiene que tener presente que en la mayora de los casos este se debe
integrar con un sistema central y que no nos va a interesar tener todo el sistema central en nuestro dispositivo.
Como alternativa podemos definir una nueva base de conocimiento importando solo aquello que necesitamos.

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 6 de 25

Creacin y configuracin del modelo


Introduccin
A continuacin se ver como configurar un modelo .NET Mobile. Teniendo en cuenta que se crearon las estructuras
definidas en el paso anterior.
Wizard New Model
Al crear un nuevo modelo se presenta el wizard new model para definir las opcines de configuracin del modelo
Paso 1

Model Name: Nombre del Modelo


Language:Se debe seleccionar .NET Mobile
User Interface:Win (nica opcin)
DBMS :SQL Server|SQL Server CE
Target Path :Directorio del Modelo
Notar que las bases de datos disponibles son SQL Server CE que corre dentro del dispositivo y SQL Server. En este
ltimo caso se debe garantizar conectividad de la aplicacin sobre la base de datos.
Paso 2
Considerando que se selecciona SQL Server CE (en caso de seleccionar SQL Server los restantes pasos son similares al
generador .NET)

Database name: Nombre de la base de datos (GeneXus la crea si no existe en el dispositivo)


Database Password: Password de la base de datos
Declare referencial integrity: No/Yes
Client side validation:Yes/No

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 7 de 25

Compact Framework assemblies directory: Directorio del VisualStudio? .Net con las clases utilizadas por los
programas generados. En caso de estar trabajando con Windows en ingles y Visual Studio en ingles, se encuentran en:
C:\Program Files\Microsoft Visual Studio .NET 2003\CompactFrameworkSDK\v1.0.5000\Windows CE

Paso3

Compiler:Compilador de .NET, es el mismo que en caso del generador .NET (csc.exe) y se encuentra en el directorio
del framework
Otras propiedades especficas
Device Installation Directory
Directorio donde se instalar el programa en el dispositivo/Emulador.
Se debe indicar a partir de la raz del dispositivo (por ejemplo \MyPrograms )
Por defecto se instalan en \Program Files
Se debe escribir de la forma \Storage Card\Datos.sdf siendo la extensin sdf opcional.

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 8 de 25

Ejecucin
Introduccin
Al momento de ejecutar, GeneXus brinda herramientas de instalacin en el dispositivo/emulador.
Veremos como funcionan estas herramientas y como se debe proceder en caso de querer instalar a mano una
aplicacin.
Ejecucin desde GeneXus

Antes de ejecutar una aplicacin o una reorganizacin es necesario instalar en el emulador/dispositivo el SQL Server CE.
Instalar SQL Server CE
Ejecucin de Reorganizaciones

Al momento de ejecutar una reorganizacin se presenta la siguiente ventana:

La misma nos muestra los emuladores instalados en el PC, as como los dispositivos conectados.
Seleccionando el emulador/dispositivo elegido para ejecutar y con el botn de Deploy & Run se copia todo lo necesario
al emulador/dispositivo y se ejecuta en el mismo. En caso de utilizar la opcin del botn Deploy e crean los paquetes
para transferir al dispositivo en formato CAB en la carpeta bin del modelo.
En el caso de utilizar Deploy & Run la ventana mostrar informacin de lo que est haciendo:

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 9 de 25

Como se indica en este paso se debe consultar el dispositivo/emulador que debe estar pidiendo confirmacin para
continuar con la instalacin y ejecucin. Notar que la reorganizacin es igual a los otros generadores GeneXus

Ejecucin de los programas generados

Al igual que la reorganizacin, para ejecutar una aplicacin al hacer el Execute desde GeneXus , se presentar una
ventana similar a la ya vista.

La diferencia es el TAB "Files to deploy" que nos permite agregar archivos adicionales para instalar as como imgenes
u otros archivos adicionales, pudiendo seleccionar la carpeta origen en el PC y destino en el Pocket PC.

La usar el botn Deploy & Run se arma el archivo CAB y se transfiere al Pocket ejecutando la aplicacin.

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 10 de 25

Ejecucin Manual
Ver la seccin Instalacin de Aplicaciones

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 11 de 25

Diseo de Formularios
Introduccin
Uno de los temas ms crticos en el desarrollo de una aplicacin mvil es el diseo de los formularios. Tenemos dos
diferencias fundamentales con respecto a una aplicacin de escritorio; primero el tamao de la pantalla, que nos limita
sobre la cantidad de informacin que podemos desplegar o pedir, la otra es como resolver de forma gil el ingreso de
datos.
Tamao de pantalla
La mayora de los Pocket PC del mercado tienen una pantalla de 240 x 320 pixeles, lo que nos limita considerablemente
con respecto a cuanto contenido podemos tener en una ventana.
A modo de ejemplo, esta es la diferencia en proporcin entre una ventana 800x600 y una 240x320

Los SmartPhone? tienen pantallas an ms chicas, por lo que se hace critico el buen aprovechamiento del espacio.
Para poder ver en GeneXus las guas que nos muestran el tamao de pantalla deseado es necesario definir en el
archivo model.ini de la KB en la seccin Preferences lo siguiente

Preferences
CustomScreenLineX=240
CustomScreenLineY=268

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 12 de 25

De esta forma se ve el editor de GeneXus de la siguiente forma:

Entrada de datos
Tenemos que tener presentes que generalmente el dominio de aplicaciones mviles tiene como usuario aquel que
realiza la actividad del negocio. Con esto nos referimos por ejemplo a la fuerza de venta, los toma consumos, la
realizacin de pedidos, la consulta de datos remota, etc. Por lo tanto, es vital para el buen uso de esta tecnologa la
agilidad de la aplicacin.
Existen varias maneras de ingresar datos en un dispositivo mvil:
Teclado por Software [[2611 )
Es el mas lento de los mtodos de ingreso(*), consiste en que cuando el foco esta situado en un campo editable se
muestra en la parte inferior de la pantalla un teclado. Los botones son bastante pequeos deben cliquearse con el
Mouse (lpiz o puntero). Adems tiene como contra que se pierde parte de la pantalla ya que el teclado la tapa.

Al entrar en un campo editable, el teclado se presenta automticamente, esto es configurable en la propiedad del
modelo:
Simple Input Panel Activation que acepta los valores Auto (comportamiento descrito anteriormente) o No, en este
ltimo caso se debe seleccionar el teclado por software a mano.
Se debe buscar alternativas para minimizar la entrada de datos por este medio
(*) Existen otras alternativas por software como son el reconocedor de caracteres donde uno dibuja el carcter y el
sistema operativo lo selecciona comparado con un patrn almacenado. Dicho mtodo suele ser ms lento e inexacto
que el teclado

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 13 de 25

Teclado por Hardware


Algunos dispositivos traen integrado un teclado por el cual se puede hacer el ingreso de datos, as como tambin
existen teclados que se pueden conectar a los dispositivos que no tienen. Si bien es una forma sencilla de ingresar los
datos, no es tampoco de las ms rpidas, aunque es ms rpida que el teclado por software. Adems la mayora de los
aparatos no tienen teclados incorporados, solo aquellos robustos que suelen ser mas caros.

Lpiz o Mouse
Sin duda la forma ms rpida de interactuar con la aplicacin Se tiene un lpiz que al hacer clic en la pantalla simula el
clic del Mouse y dejando el lpiz presionado simula el clic derecho. En el diseo de los formularios vamos a intentar
utilizar al mximo posible el lpiz, o en algunos casos inclusive podemos mostrar botones tan grandes que los
seleccionemos con el dedo para ahorrar tiempo.
Si bien es el mecanismo utilizado con el teclado por software [[2611 vamos a intentar interactuar directamente con la
aplicacin no por medio del teclado.
Consideraciones de diseo
Teniendo presente los puntos descritos anteriormente, hay un conjunto de consideraciones a la hora de desarrollar una
aplicacin:
Sugerencia de datos
A la hora de pedir informacin al usuario, debemos tener presente el dominio de informacin que el usuario puede
ingresar, y en caso que sea posible sugerir ese dato o facilitar la forma de ingreso.
Por ejemplo, a la hora de pedir el sexo de una persona, perfectamente podemos utilizar un combobox o un checkbox,
de esa forma no se tendr que digitar nada, sino hacer clic. Lo mismo podemos hacer con algn rango limitado de
datos, por medio de combos dinmicos, campos suggest, o prompts.

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 14 de 25

Date picker
Una alternativa al ingresar datos tipo Date es hacer clic y dejando presionado el lpiz aparece un calendario sonde se
puede seleccionar la fecha/hora.

Calculadora
De la misma forma que el calendario se puede invocar a la calculadora en los campos numricos.
Botones
Es recomendable el uso de botones no muy chicos y que sea claro su uso. Hay que tener presente que esto puede
ocupar mucho espacio en pantalla, y si el caso lo amerita se puede remplazar la etiqueta del botn con una imagen, la
misma ocupa menos espacio y puede emitir un claro mensaje.
Por ejemplo en este caso se ve como se remplazaron todos los botones con imgenes:

En este caso el tamao de los botones es significativo ya que esto permite utilizar el lpiz tanto como el dedo.
Si se desea cambiar las imgenes de los botones de la transaccin se deben modificar las propiedades del
grupo:Transaction configuracin:

Add button bitmap


Update button bitmap
Confirm button bitmap
Delete button bitmap

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 15 de 25

Mens
Es una practica comn el uso del objeto men, pues ahorra mucho espacio en pantalla. El uso es similar al uso en
aplicaciones Windows, la nica diferencia es que se visualiza en la esquina inferior izquierda y no arriba. En la prctica
es muy til poder definir opciones en el men, y la mayora de las aplicaciones para Pocket PC aprovechan esto.

Tabs controls
Una caracterstica del Windows CE es que al abrir una ventana en una aplicacin la misma queda en memoria. Por lo
tanto, cuantas ms ventanas tenga una aplicacin mas memoria consumir relentizando el sistema.
Una solucin comn es el uso de Tabs control, ocultando el mismo tab y pasando a la siguiente pgina en un evento.
Es muy prctico en particular para wizard de ingreso o visualizacin de datos donde se debe pasar por varias ventanas.
Adems tiene la ventaja que no carga un nuevo objeto en memoria.
Tamao de grillas
Por lo general al usar una grilla, nos va a pasar que es mucha la informacin que queremos mostrar para el ancho de la
pantalla. Una prctica usual es mostrar solo la informacin mas descriptiva de la grilla, y por medio de un botn ir a una
ventana de display cuyo nico objetivo sea mostrar completa la informacin de esa lnea.

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 16 de 25

Sincronizacin
Introduccin
Uno de los factores crticos entorno al desarrollo de aplicaciones mviles es como sincronizar los datos desde la base de
datos central hacia las bases de datos de los dispositivos.
Existen varios factores a tener en cuenta a la hora de sincronizar de los cuales muchos van a estar relacionados con el
dominio de la aplicacin.
Vamos a analizar los mecanismos tcnicos de sincronizacin y como pueden ser implementados de cada lado. Tambin
veremos las facilidades que el SQL CE aporta para sincronizar con SQL Server directamente.
Conectividad
Un factor a tener en cuenta a la hora de implementar un mecanismo de sincronizacin es la conectividad de la cual se
dispone.
Los dispositivos mviles funcionan de manera similar a una PC, pueden ser parte de una red asignndole un IP. Vamos
a "ver" la red cuando estemos conectados a la base del dispositivo conectado a una PC, o si el mismo lo permite
podemos conectarnos a una red inalmbrica. Ver mecanismos de comunicacin
Siendo parte de la red podemos "ver" el resto de las mquinas y eso es algo que vamos a utilizar a la hora de la
sincronizacin.
Pero que pasa si no estoy en el rango de la lan y quiero sincronizar informacin con la base central? Una forma es
utilizar Internet como red y publicar los mecanismos de sincronizacin en la web. Para que un dispositivo se pueda
conectar a Internet se debe tener contratado un servicio con el proveedor de Internet para dispositivos mviles, y el
aparato debe tener ya sea un MODEM integrado o anexarle uno.

Mecanismos de sincronizacin
Web Services
Un mecanismo sencillo de implementar es el de enviar/recibir informacin por medio de webservices. Lo que hacemos
es definir desde el lado de la base centralizada webservices y consumirlos desde el dispositivo. Este mecanismo puede
ser utilizado tanto desde la LAN como desde Internet y nos permite tener cierta flexibilidad con la informacin ya que
podemos controlar por programacin que informacin vamos a ingresar a la base de datos.
No importa el lenguaje o la base de datos en el que generemos la base centralizada, siempre podemos sincronizar.
Ver mas...
Sincronizacin SQL CE - SQL Server
SQL Server y SQL CE traen mecanismos nativos para sincronizar tablas.
Bsicamente lo que se hace es publicar algunas tablas de la base centralizada (que debe ser SQL Server) por medio de
IIS.
Ver mas...
Data View
La plataforma Net Mobile permite utilizar como base de datos tanto SQL CE como SQL Server. Podramos definir las
tablas de la aplicacin mvil en SQL CE y algunas en SQL Server y acceder a las mismas por medio de un Data View.
Esto nos permitira por medio de un procedimiento GX copiar datos directamente desde una tabla a la otra.
Ver mas...
Otros mecanismos
Se pueden implementar otros mecanismos ms artesanales, como ser la transferencia de archivos (XML, CSV, TXT, etc)
a los dispositivos, y hacer la lectura y actualizacin de la base. El mecanismo de transferencia de los archivos podra ser
FTP, o recibir el mismo por email en el dispositivo.
Ver mas...

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 17 de 25

Impresin
Introduccin

Muchos sistemas mviles requieren la impresin, ya sea para facturas, boletas, recibos, etc...
Existen un conjunto de impresoras "mviles" que se conectan a los dispositivos va conexin serial directa con el
aparato o por medios inalmbricos (Infrarojo, Bluetooh, etc)
Es posible imprimir con estos dispositivos por medio de una aplicacin .NET Mobile aunque no se pueden visualizar
los mismos en pantalla
Se diferencian 2 casos, los reportes modo texto y los reportes modo grfico.
Reportes Modo Texto

Los reportes modo texto pueden ser impresos en cualquier clase de impresora, sea modo texto o no.
Muchas veces no necesitamos grandes opciones de formato, lo que transforma a este tipo de reportes los mas sencillos
de utilizar.
El nico requerimiento es que en el caso de usar InfraRojo? para conectarse a la impresora se debe tener en el sistema
operativo el Printer port driver.
La operativa es hacer un reporte modo texto, al imprimir muestra un dialogo de seleccin de impresora o archivo, en
caso de ser archivo el mismo queda con extensin txt.

Reportes Modo Grfico


El caso de los reportes modo grfico es un poco ms complejo que los reportes modo texto, por lo que vale la pena
analizar previamente si realmente son necesarios o se pueden suplantar por reportes modo texto.

Printer API

A diferencia de Windows, no hay un estndar definido dentro del sistema operativo Mobile para la impresin modo
grfico (a diferencia de modo texto que se manda el buffer a la impresora directamente).
Por esta razn existen productos de terceros que implementan la interfaz entre las aplicaciones y la impresora.
La idea no es seleccionar un nico producto como interfaz, sino presentar un esquema lo suficientemente flexible de
manera que se pueda incorporar cualquier herramienta de terceros.
Como ejemplo el generador trae incorporado como sera la implementacin con Printer CE
Printer CE
Printer CE es un producto de Fieldsoftware
Es necesario descargar las dll's del siguiente link
- PrinterCE.NetCF.dll
- PrCE_NetCF.dll
Copindolas al directorio \bin del modelo y llevndolas al directorio de ejecucin del dispositivo por medio del
deployment de GeneXus .
De esta forma al ejecutar un reporte modo grfico se presenta un dialogo de seleccin de la impresora.

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 18 de 25

ATENCION
En caso de usar la versin TRIAL de la Printer CE primero se presentan los siguientes dilogos que deben ser
aceptados:

Como funciona?
En el directorio \bin del modelo existe un archivo PrinterAPI.dll que es la compilacin de los archivos existentes en
PrinterAPIsource.zip donde se muestra como es la implementacin para usar un producto de terceros.
Usando otros productos de terceros

Nota: Se debe tener instalado el Visual Studio .NET para poder hacer lo siguiente
Si se necesita usar otro producto de terceros se debe instalar ese producto en el dispositivo o copiar las dll's al
directorio de ejecucin.
Por otro lado se debe modificar la PrinterAPI de la siguiente forma:
1 - Descomprimir el PrinterAPISource.zip en un directorio
2 - Copiar las dll's del producto de terceros a ese directorio y la gxclasses.dll
3 - Abrir el archivo PrinterAPI.csproj con lo que se abre el proyecto en el Visual Studio.NET
4 - En el proyecto abierto, se debe agregar la referencia a la GXclasses del directorio \bin
5 - A continuacin se debe modificar la implementacin de las siguientes funciones:

Initialize
NewPage
EndDoc
EndPrint
DrawLine
DrawRect

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 19 de 25

DrawPicture
DrawText

Usando las primitivas del producto a utilizar.


6 - Se debe compilar el proyecto copiando la PrinterAPI.dll generada al \bin

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 20 de 25

Distribucin de Aplicaciones
Introduccin

En el desarrollo de aplicaciones corporativas siempre hay una instancia de deployment o instalacin, donde se instala
en las mquinas las aplicaciones.
En el caso de aplicaciones mviles nos enfrentamos ante el problema que los dispositivos no suelen estar en una oficina
como una PC, sino que tienden a estar en la calle y es complicado actualizar las aplicaciones.
Por esa razn .NET Mobile facilita el deployment de aplicaciones al mximo.
Instalacin
En el captulo de Ejecucin veamos que al utilizar los botones de Deploy o Deploy&Run se genera un archivo CAB A
efectos de Windows Mobile un CAB es un archivo de instalacin, por lo tanto basta con copiarlo y ejecutarlo al pocket
para instalarlo.
Adems el mismo se puede colocar el Internet, de forma que con solo referenciar desde el Pocket Browser el mismo (ej
http://direccion_internet/Archivo.cab ) se baja o instala la aplicacin.
Esto permite que de forma remota cualquier pocket con acceso a internet pueda instalar o actualizar una aplicacin

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 21 de 25

Problemas Comunes
Error creating data base: Error loading data store 'C:\Documents and Settings\All Users\Application
Data\Microsoft\VisualStudio\devices\7.1\conman_ds'

Compiling Reorganization...
gxexec
"C:\Modelos\ModelYi\Prueba\DATA002\bldReorganization.cs" -r:GxBaseBuilder.dll
-arg:csc="C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.exe" /noconfig
@cf_csc.rsp -arg:mdlpath="C:\Modelos\ModelYi\Prueba\DATA002\"
Building bin\Reorganization.dll
Versin del compilador de Microsoft (R) Visual C# .NET7.10.6001.4 para
Microsoft (R) .NET Framework versin 1.1.4322
(C) Microsoft Microsoft Corporation 2001-2002. Reservados todos los
derechos.
Compilation Successful
Executing Reorganization...
C:\Modelos\ModelYi\Prueba\DATA002\bin\Gxcff5.exe
"C:\Modelos\ModelYi\Prueba\DATA002\bin\reor.inf"
"C:\Modelos\ModelYi\Prueba\DATA002\bin" "reor"
Error loading data store 'C:\Documents and Settings\All Users\Application
Data\Microsoft\VisualStudio\devices\7.1\conman_ds'
Reorganization not completed.
Execution Failed

Este error se debe a que el Visual Studio est en un lenguaje distinto a ingles, mientras que el emulador est en ese
idioma.
La solucin es buscar todas las sub-carpetas correspondiente al idioma de C:\Documents and Settings\All
Users\Application Data\Microsoft\visualstudio y remplazarlas (1034 en caso de espaol) y copiarlas con el nombre 1033
que se corresponde a Ingles.

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 22 de 25

Preguntas Frecuentes
1. Cmo incluyo una dll externa?
Para usar una dll externa es necesario setear la preferencia del modelos
"Compiler Flags" = /r:binmylibrary1.dll /r:binmylibrary2.dll .....
Luego generar y compilar
2.Cmo llamar a una aplicacin externa?

Existen dos formas de llamar a una aplicacin externa


1. Como call dinmico
a.Teniendo el cdigo externo en la carpeta del modelo, (supongamos 'afvbateria.cs'), con la siguiente estructura:

using GeneXus.Application;
using com.genexus;
....
namespace GeneXus.Programs
{
public class afvbateria{
...
public afvbateria(IGxContext context, int hnd, ModelContext jContext):this(){... }
....
public void execute(ref string var1, ref int var2....){.....}
...
}
}

b. Si el archivo cs referencia la librera externa, es necesario hacer lo indicado en el punto 1


c. Llamamos al componente con el siguiente cdigo

Event 'DynCall'
call('afvbateria', &var1, &var2....)
EndEvent // 'DynCall'

2.Con cdigo C#
a. Teniendo la dll externa en el directorio del modelo (supongamos 'afvLibrary.dll')
b. Agregar afvLibrary.dll a las Compiler Flags (ver punto 1)
c. Hacer la llamada con el siguiente cdigo
csharp MyLibraryNamespace.MyClass form = new MyLibraryNamespace.MyClass();
csharp form.execute([!&var1!], [!&var2!]...);

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 23 de 25

3.Cmo cambio el cursor?


Para cambiar el cursor es necesario usar el siguiente cdigo:
Csharp System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default;
Csharp System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
4.Cmo cambio el icono de mis aplicaciones?

Para cambiar el icono es necesario copiar el mismo al directorio del modelo y agregar a la propiedad "Compiler Flags"
/win32icon:customicon.ico

5.Cmo compacto mi base de datos?


A veces es necesario compactar la base de datos pues la misma crece significativamente guardando informacin que
luego no ser utilizada.
Para eso se puede utilizar el siguiente cdigo para hacer un backup de la base de datos

&src = "sampledb.sdf"
&dest = "sampledb.sdf.tmp"
&dbconn = GetDataStore("Default")
&password = &dbconn.UserPassword
&dbconn.Disconnect()

csharp System.Data.SqlServerCe.SqlCeEngine engine = new System.Data.SqlServerCe.SqlCeEngine("Data Source=" +


[!&src!] + ";Password=" + [!&password!]);
csharp engine.Compact("Data Source=" + [!&dest!] + ";Password=" + [!&password!]);
csharp engine.Dispose();
6 Como genero un "Beep"?
Para generar un "beep" copie el siguiente cdigo:

Event 'beep'
Do 'Beep'
EndEvent // 'beep'

Sub 'Beep'
csharp
csharp
csharp
csharp
csharp
csharp

Beep();
}
[System.Runtime.InteropServices.DllImport("coredll", EntryPoint="MessageBeep", SetLastError=true)]
private static extern void MessageBeep(uint type);
public static void Beep(){
MessageBeep(0xffffffff);

/*
Default = 0xFFFFFFFF,
Asterisk = 0x00000040, //Sound played during an Asterisk Message Box.
Exclamation = 0x00000030,// Sound played during an Exclamation Message Box.
Question = 0x00000020, // Sound played during a Question Message Box.
Hand = 0x00000010,// Sound played during a Hand Message Box.
/*
Endsub

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 24 de 25

6 Como activo, desactivo el SIP manualmente?

Se puede hacer por medio del siguiente cdigo


Event 'Sip'
csharp SIP.Show();
EndEvent // 'Sip'

Event 'Nosip'
csharp SIP.Hide();
EndEvent // 'Nosip'

DMR Sistemas SA,

Distribuidor de ARTech Consultores SLR en Espaa.Telfonos 609 82 86 70 - *941 25 91 33


www.genexus.es

Pgina 25 de 25

También podría gustarte