Blog de Jorge Pedraza

octubre 22, 2012

Sync Framework Toolkit con Android

Hola, el presente articulo tiene como finalidad tratar de resaltar de forma rápida y directa el uso de Microsoft Sync Framework Toolkit, en la construcción de servicios de sincronización de datos, y su uso desde cualquier plataforma cliente, tal es el caso de Android. La idea principal es intentar mapear determinado ejemplo (demodb) que se expone en este articulo, y así obtener mejor entendimiento acerca del tema.

Requisitos:

  • Microsoft Visual Studio 2010 SP1 o Superior.
  • Microsoft SQL Server 2008 R2 o Superior.
  • Microsoft Sync Framework ToolKit.
  • Microsoft IIS 7.x o superior.
  • Conocimiento en Base de datos.
  • Experiencia con el Lenguaje C#
  • MOTODEV Studio for Android o Eclipse con Android SDK.
  • Experiencia con el Lenguaje Java.
  • Experiencia con desarrollo de aplicaciones base de datos en Android.

Índices:

  1. Introducción de Sync Framework Toolkit.
  2. Construcción de Sync Framework Toolkit.
  3. Uso de Sync Framework Toolkit (Ejemplo propio demodb).
  4. Solución servicio de sincronización (Ejemplo propio demodb).
  5. Aplicación cliente Android.
  6. Código fuentes.
  7. Enlaces de interés.

 

1. Introducción de Sync Framework Toolkit:

Es un conjunto de herramientas y códigos de ejemplos, que permite construir y optimizar aplicaciones desconectadas para la sincronización de datos que se ejecutan en cualquier plataforma cliente como Microsoft (Windows, Silverlight, Windows Phone 7 y Windows Mobile) y No Microsoft (iPhone, Android y Blackberry y asi como HTML). Note que clientes basado en Windows requieren Sync Framework 2.1.

2. Construcción de Sync Framework Toolkit:

  1. Descargar Microsoft Sync Framework Toolkit y descomprimir Microsoft Sync Framework Toolkit.zip en una carpeta syncopensrc en disco y dentro de esa carpeta debe renombrar una carpeta llamada C# en src.
  2. Por razones que el paquete Sync Framework Toolkit esta comprendido inicialmente por una solución de múltiples proyectos, es necesario Instalar Windows Phone Developer Tools 7.0 y Silverlight 4 Tools for Visual Studio 2010.
  3. Abrir el archivo syncfxtoolkit.sln ubicado en la carpeta src.
  4. Construir la solución, el cual generará los siguientes archivos:
    • syncopensrc\bin\SyncSvcUtil.exe (Utilidad versión Consola)
    • syncopensrc\bin\SyncSvcUtilUI.exe (Utilidad versión aplicación Windows)
    • syncopensrc\server\Microsoft.Synchronization.Services.dll (Ensamblado para construir servicio Web de Sincronización)
    • syncopensrc\Client\WP7\Microsoft.Synchronization.ClientServices.dll (Ensamblado cliente WP7 de Sincronización)
    • syncopensrcClient\Silverlight\Microsoft.Synchronization.ClientServices.dll (Ensamblado cliente Silverlight de Sincronización)
  5. Mover la carpeta "Samples" de "\syncopensrc\src\Samples" a "\syncopensrc\Samples.

Ahora estás listo para seguir la documentación (\syncopensrc\src\Sync Framework Toolkit.chm) y comenzar a escribir su servicio de sincronización y aplicaciones sin conexión utilizando el código fuente.

3. Uso de Sync Framework Toolkit (Ejemplo propio demodb):

Con fines de agilizar el aprendizaje de Sync Framework Toolkit se va exponer una vista rápida basado en el ejemplo principal de Sync Framework Toolkit, de como implementar base de datos y servicios propio para la sincronización de datos con cualquier cliente desconectado. Para esta demostración se utiliza Visual Studio 2012 Edición profesional y SQL Server 2012 Edición Web. Además se usa Autenticación SQL Server, el cual es imprescindible tener configurada un cuenta valida SQL server, por ejemplo Login: sa y Password: 123.

1. Crear base de datos llamada demodb en SQL Server y luego aplicar estructura de datos demodbscript.sql 2. Ejecuta la utilidad auxiliar versión aplicación Windows: syncopensrc\bin\SyncSvcUtilUI.exe
esquemadb SSUtility
   

Pasos para usar la utilidad SyncSvcUtilUI:

Parte 1 : Paso 1 Paso 2
SSUtilityOption1 SSUtilityOption1Step1 SSUtilityOption1Step2
     
  Paso 3 Paso 4
  SSUtilityOption1Step3 SSUtilityOption1Step4
     
  Paso 4.1 Paso 4.2
  SSUtilityOption1Step4_1 SSUtilityOption1Step4_2
  Paso 4.3 Paso 5
  SSUtilityOption1Step4_3 SSUtilityOption1Step5
     
Parte 2 : Paso 1 Paso 2
SSUtilityOption2 SSUtilityOption2Step1 SSUtilityOption2Step2
     
Parte 3 : Paso 1 Paso 2
SSUtilityOption3 SSUtilityOption3Step1 SSUtilityOption3Step2
  Paso 3  
  SSUtilityOption3Step3  

4. Solución servicio de sincronización (Ejemplo propio demodb):

1. Crear proyecto WCF Service Application llamado demodbsync 2. Seleccionar archivos por defectos y eliminarlos
demodbsyncstep1 demodbsyncstep2
   
3. Agregar archivos fuentes generado en la parte 3 de SyncSvcUtilUI y además un archivo Web.Config nuevo 4. Agregar referencia de ensamblado Microsoft.Synchronization.Services.dll
demodbsyncstep3 demodbsyncstep4
5. Agregar en Web.Config sesión connectionStrings con cadena de conexión relacionada. 6. Modificar el código en DefaultScopeSyncService.svc según el código de ejemplo demodbsync adjunto a este articulo.
demodbsyncstep5 demodbsyncstep6
7. Agregar los siguientes archivos (login.ashx y login.ashx.cs) existentes en el código de ejemplo demodbsync de este articulo 8. Finalmente construir e implementar en IIS.
demodbsyncstep7 demodbsyncstep8

En teoría el servicio de sincronización debe estar funcional desde IIS, si puede cerciórese previamente que este funcionado antes de continuar con el desarrollo y prueba del cliente desconectado, en este caso Android.

5. Aplicación cliente Android:

El desarrollo de la aplicación desconectada, cliente Android se basa inicialmente en el código (SelvinListSyncSample) adaptado al ejemplo oficial de Microsoft Sync Framework Toolkit, el cual se trata de los siguientes:

  1. Se descargar el ejemplo SelvinListSyncSample (Alpha 2).
  2. Usar la librería ActionBarSherlock vinculado con el ejemplo SelvinListSyncSample
  3. Revisar la documentación propia para su funcionamiento.

Ahora con relación al ejemplo propio demodb, su aplicación cliente Android DemodbSync. se plantea los siguientes:

1. Gestión de proyecto Android 2.2 propio (Unificado) 2. Parametrizar datos de sincronización de la aplicación Android con el servicio WCF
DemodbSyncAndroid1 DemodbSyncAndroid2
   
3. Construir y ejecutar proyecto dentro de la maquina virtual con conectividad a una red valida de prueba. 4. Realizar prueba manipulando uno o más registros, en la base de datos local de la aplicación Android y posteriormente sincronizar. Luego verificar que los datos se hayan escrito en SQL Server.
DemodbSyncAndroid3 DemodbSyncAndroid4

Es Importante resaltar lo siguiente: Esta aplicación Android de ejemplo es un versión literalmente básica y sencilla, cuya intensión es demostrar su funcionamiento con Sync Framework, sin tomar en cuenta tópicos internos relacionado con Android como (componentes de terceros, validaciones, Multithreading, etc.).

6. Código fuentes:

7. Enlaces de interés:

5 comentarios »

  1. […] Sync Framework Toolkit con Android […]

    Pingback por Agenda de la Comunidad « MSExpertos — octubre 22, 2012 @ 7:47 pm | Responder

  2. Estupendo Post Jorge, Muchas gracias por el aporte.
    saludos desde Perú.

    Comentarios por Julver — enero 11, 2013 @ 6:20 pm | Responder

  3. Realmente te ha funcionado el ejemplo de Selvin? Lo intentaste o solo te refieres a el dando por sentado que si funciona. Yo lo bajé y además de que la documentación es una porquería, esa cosa no funciona,

    Comentarios por Mauricio Ramirez — octubre 22, 2013 @ 11:28 pm | Responder

    • Hola.
      Gracias por tu comentario.
      Realmente si funciona incluso en este articulo se anexa un ejemplo simplificado y funcional, pero no té recomiendo ni el ejemplo ni la tecnología de sincronización tales como Sync framework o Oracle Database Mobile Server entre otras para un escenario real, por muchas razones.

      Según mi experiencia con desarrollo en dispositivo móviles, existe alternativas más liviana, simple y optima para escenario de transferencia de datos por lote!
      formulas serían:
      1. ADO.NET + Servicio Web de ASP.NET (ASMX,WCF, ojo No RestFul).
      2. Comunicación nativa con la base de datos del servidor desde el dispositivo móvil.

      Eso es todo por lo momento.
      Saludos.

      Comentarios por JorgePedraza — octubre 23, 2013 @ 3:33 pm | Responder


RSS feed for comments on this post. TrackBack URI

Deja un comentario

Crea un blog o un sitio web gratuitos con WordPress.com.