jueves, 14 de octubre de 2010

Profiling Mobile Applications

En las aplicaciones generadas con GeneXus tambien podemos realizar analisis de rendimiento. Para ello hay varias herramientas disponibles, yo quiero mostrarles una herramienta gratuita que encontre y creo puede ser de utilidad a muchos.

Dejo una serie de pasos para quienes quieran hacer alguna prueba.

1. Instalar EQATECProfiler.NET Esta es una herramienta ghratuita que puede ser descargada desde http://www.eqatec.com/tools/profiler





2. Abrir el directorio bin de la aplicación mobile desde EQATECProfiler. Es aquí donde se encuentran las dlls generadas de la aplicación.  

3. EQATECProfiler.NET tiene una seccion de Build que toma como entrada el directorio bin del modelo, y lo que hacer es crear un directorio bin-profiler hermano que tiene todas las dlls a las que le “inyecta” codigo de profiler ( Ver imagen).


4. Copiar al pocket pc el directorio bin-profiler y correr la aplacion. Cuando termino, queda en el \Temp\ un .log que lo sacas del pocket  y lo abris con este profiler en la seccion View y ahí ves qué metodos se llamaron y cuanto demoro cada uno.
Otra opcion es abrir directamente el archivo extesion .eqlog que ya te abre todo directamente con el profiler.
  
5. Analisis de resultados 

Espero que les sirva !!

sábado, 9 de octubre de 2010

Cómo crear un Data View para conectarse a SQL Server desde un PocketPC

En un post anterior mencionaba las diferentes formas de sincronizacion que existen, hoy voy a mostrar un ejemplo con Data Views.


Empezaremos por crear una base de datos a la cual nos conectaremos luego con Genexus. La base de datos se llamara APersona.


Les dejo el script para la creacion de la tabla y sentencias para cargar algunos datos necesarios para probar nuestro ejemplo


--Script creacion tabla 
GO
/****** Object:  Table dbo.Persona    Script Date: 01/20/2010 15:14:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE dbo.Persona(
      IdPersona numeric(18, 0) NOT NULL,
      NombrePersona char(20) NOT NULL,
      Direccion char(30) NOT NULL,
 CONSTRAINT PK_Persona PRIMARY KEY CLUSTERED
(
      IdPersona ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON PRIMARY
) ON PRIMARY

GO
SET ANSI_PADDING OFF


 --Ingreso de datos
INSERT INTO Persona SELECT 1 , 'PruebaDataView' , 'PruebaDataView'
INSERT INTO Persona SELECT 2 , 'DataView' , 'DataView'



Una vez creada la KB estamos a cuatro pasos de conectarnos a  la base de datos con nuestro Pocket PC.

      1.   Crear una  KB y seleccionar el Generador .Net Mobile



      2.   Crear el Data Store mediante el cual nos conectaremos a nuestra base de datos y configurarlo correctamente, este es el paso en el que se debe tener mas cuidado



La configuracion del Data Store deberia quedar asi 

Notar que se especifica el Puerto por el cual se va a acceder ("Server TCP/IP port") y la propiedad "Use Trusted Connection" esta en no.

Para quienes tengan la versión Express del SQL deben habilitar el protocolo TCP/IP desde el SQL Server Configuration Manager y en las propiedades especificar el TCP Port (puerto a utilizar: 1433)



      3.   Ahora si ya tenemos todo pronto para crear el Data View. Para esto utilizaremos el Database Reverse Engineering. 
En la configuración del Data View solo debemos tener en cuenta dos cosas: 
    1. En Platforms especificamos que es SQL Server CE y no SQL Server. Esta confusión es común y hará que nuestro Data View no funcione. 
    2. Property "Data Store" lo apuntamos al Data Store que creamos anteriormente.


      4.   Por ultimo, solo nos queda probar nuestra aplicacion, entonces indicamos que la Transaccion Persona sera nuestro Startup Object y damos F5. 
Si ingresamos el Id Persona = 1 y todo quedo bien