Cómo: Configurar la sincronización de datos en una aplicación

Actualización: Julio de 2008

Si la aplicación requiere datos de una base de datos remota que no tienen que recuperarse continuamente de la base de datos (o que no siempre están disponibles), se puede usar una base de datos local para almacenar los datos en el equipo cliente con la aplicación. A continuación, puede configurar su aplicación para sincronizar los datos entre las bases de datos locales y remotas mediante el cuadro de diálogo Configurar sincronización de datos para configurar Microsoft Synchronization Services para ADO.NET.

A partir de Visual Studio 2008 SP1, además del cuadro de diálogo Configurar sincronización de datos, se puede usar asimismo el Asistente para la configuración de orígenes de datos para configurar la sincronización. Durante la configuración de un conjunto de datos con tipo, seleccione la opción Habilitar almacenamiento en caché de la base de datos local en la página Elija los objetos de base de datos del asistente. Para obtener más información, vea Tutorial: Crear una aplicación conectada ocasionalmente con el Asistente para la configuración de orígenes de datos.

Nota: en proyectos de Smart Device, el diseñador de sincronización no se puede iniciar desde el Asistente para la configuración de orígenes de datos. Para obtener más información, vea Aplicaciones conectadas ocasionalmente (Dispositivos). Además, se ha agregado compatibilidad para la característica de seguimiento de cambios de SQL Server 2008 para Visual Studio 2008 SP1. Puede habilitar el seguimiento de cambios de SQL Server 2008 al configurar la sincronización desde el cuadro de diálogo Configurar sincronización de datos o el Asistente para la configuración de orígenes de datos. Para obtener más información, vea Cómo: Configurar la sincronización de datos para usar el seguimiento de cambios de SQL Server.

Por ejemplo, considere una aplicación de inventario que usa datos de varias tablas en una base de datos. El número de elementos disponibles para cualquier artículo individual es un dato importante que cambia continuamente, por lo que la aplicación debería reflejar siempre los valores actuales en la base de datos. Sin embargo, la aplicación también muestra una lista de compañías de distribución válidas que raramente cambia. Estas compañías de distribución válidas están almacenadas en la tabla de distribuidores y no tienen que recuperarse cada vez que se necesitan datos de la base de datos. Si almacena esta tabla de distribuidores en una caché de base de datos local, se puede disminuir el número de ciclos de ida y vuelta innecesarios que la aplicación tiene que realizar a la base de datos remota. Considere la opción de almacenar los datos que cambian con poca frecuencia (o que cambian según una programación conocida) en una caché de base de datos local.

La caché de base de datos local utiliza una base de datos SQL Server Compact 3.5 para almacenar localmente los datos. Puede utilizar una base de datos de SQL Server Compact 3.5 como caché de base de datos local. Si todavía no tiene una base de datos local, puede establecer el cuadro de diálogo Configurar sincronización de datos para crear una nueva base de datos local.

Después de agregar una base de datos local a su aplicación y completar el cuadro de diálogo Configurar sincronización de datos, todavía tiene que agregar código a su aplicación para iniciar la sincronización. Después de haber sincronizado correctamente los datos, también deberá agregar código para rellenar la tabla del conjunto de datos a partir de la base de datos local.

Nota:

El cuadro de diálogo Configurar sincronización de datos permite configurar Microsoft Synchronization Services para ADO.NET únicamente para escenarios de descarga. Esto significa que, después de configurar la sincronización de datos mediante el cuadro de diálogo Configurar sincronización de datos, la llamada a Microsoft.Synchronization.Data.SyncAgent.Synchronize sólo actualizará la base de datos local con los cambios que se encuentren en la base de datos remota. Los cambios realizados en los datos de la base de datos local no se cargarán en la base de datos remota. Después de configurar la sincronización de datos mediante el cuadro de diálogo Configurar sincronización de datos, puede habilitar las cargas de datos mediante programación (sincronización bidireccional) durante la sincronización. Para obtener más información, vea Cómo: Configurar una base de datos local y una base de datos remota para que exista sincronización bidireccional.

Agregar una caché de base de datos local a un proyecto

Puede configurar las aplicaciones de modo que almacenen los datos localmente en memoria caché agregando un archivo .sync a su proyecto y configurándolo mediante el cuadro de diálogo Configurar sincronización de datos. Puede agregar archivos .sync a los proyectos mediante Agregar nuevo elemento (Cuadro de diálogo).

El procedimiento siguiente proporciona los pasos básicos necesario para configurar la sincronización de datos. Para obtener ejemplos que utilizan datos reales, vea Tutorial: Crear una aplicación que se conecta ocasionalmente y Tutorial: Crear una aplicación de Smart Device que se conecta ocasionalmente.

Nota:

Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio incluidos en las instrucciones siguientes. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, vea Valores de configuración de Visual Studio.

Para configurar la sincronización de datos

  1. En el menú Proyecto, haga clic en Agregar nuevo elemento.

  2. Haga clic en la plantilla Caché de base de datos local.

  3. Proporcione un nombre alternativo o mantenga el nombre predeterminado de LocalDataCache1.sync.

  4. Haga clic en Agregar.

    El archivo .sync se agrega al proyecto, y el cuadro de diálogo Configurar sincronización de datos se abre.

  5. Establezca la Conexión del servidor con la base de datos remota a la que desea conectarse.

  6. Establezca la Conexión de cliente con la base de datos de SQL Server Compact 3.5 local que almacenará sus datos localmente. Si no dispone de una base de datos local, puede dejar la configuración predeterminada de DatabaseName.sdf (nuevo) para crear una nueva base de datos en el proyecto. El nombre de la nueva base de datos se basará en el nombre de la base de datos de la Conexión del servidor.

    Nota:

    El botón Aceptar se encuentra deshabilitado de forma predeterminada, y se habilitará después de agregar una tabla al área Tablas en caché.

  7. Haga clic en Agregar para abrir el cuadro de diálogo Configurar tablas para usarlas sin conexión y seleccione y configure las tablas de base de datos para agregarlas a la caché de base de datos local.

  8. Seleccione las tablas de base de datos que desee agregar a la caché de base de datos local, y configure cada uno de los valores siguientes:

    • Datos para descargar:

      Cambios nuevos e incrementales después de la primera sincronización

      Esta opción de configuración permite recuperar los registros del servidor que se han modificado desde la última vez que se sincronizaron los datos. La primera vez que se utiliza la sincronización, se descargará la tabla completa.

      Toda la tabla cada vez

      Esta opción de configuración permite desechar la tabla local y reemplazarla con la versión del servidor.

    • Comparar actualizaciones usando

      Configure esta opción con el nombre de columna de la tabla seleccionada que se utiliza para realizar un seguimiento de cuándo se hizo la última actualización de un registro. De forma predeterminada, en esta lista aparecerá cualquier columna definida como fecha y hora o marca de tiempo. Si la tabla no contiene ninguna columna que se utilice para realizar el seguimiento de los registros modificados, puede dejar la opción predeterminada de LastEditDate (nuevo), que creará automáticamente la columna de seguimiento.

    • Comparar inserciones usando

      Configure esta opción con el nombre de columna de la tabla seleccionada que se utiliza para realizar un seguimiento de cuándo se agregan nuevos registros a la tabla. De forma predeterminada, en esta lista aparecerá cualquier columna definida como fecha y hora o marca de tiempo. Si la tabla no contiene ninguna columna que se utilice para realizar el seguimiento de los nuevos registros, puede dejar la opción predeterminada de CreationDate (nuevo), que creará automáticamente la columna de seguimiento.

    • Mover elementos eliminados a

      Configure esta opción con la tabla de la base de datos del servidor que se utiliza para almacenar los registros eliminados. De forma predeterminada, cualquier tabla denominada nombreTabla_Deleted o nombreTabla_Tombstone aparecerá en esta lista. Si la base de datos no contiene una tabla para almacenar los elementos eliminados, puede dejar la opción predeterminada nombreTabla_Tombstone (nuevo), que creará automáticamente la tabla de elementos eliminados.

      Nota:

      Configure estos valores para cada tabla que vaya a utilizar sin conexión.

  9. De forma predeterminada, las opciones de Generación de scripts se establecen automáticamente para generar y ejecutar los scripts del servidor que se utilizan para configurar el servidor de base de datos. Si no necesita estos scripts, o si no tiene acceso al servidor de base de datos, puede borrar cualquier opción y ejecutar manualmente los scripts o modificar las tablas. Si no se requiere ningún cambio en el servidor, no se generará ningún script.

    Nota:

    Estos scripts agregan las columnas de seguimiento en las tablas seleccionadas, crean las tablas para almacenar elementos eliminados y agregan algunos desencadenadores que deben existir para poder realizar un seguimiento de las inserciones, actualizaciones y eliminaciones en las tablas configuradas para almacenamiento en caché local.

  10. Haga clic en Aceptar.

  11. Haga clic en Mostrar ejemplo de código para abrir el cuadro de diálogo Ejemplo de código, que proporciona un fragmento de código que inicia el proceso de sincronización. Puede copiar este fragmento de código en el portapapeles e insertarlo en su programa.

  12. Opcionalmente, establezca las opciones Avanzadas.

    Las opciones Avanzadas del cuadro de diálogo Configurar sincronización de datos proporcionan valores que permiten controlar si se sincronizan las tablas independientemente o en una única transacción. Las opciones también permiten separar el código para aplicaciones con n niveles.

    1. Sincronizar tablas en una sola transacción. De forma predeterminada, esto no se comprueba, y todas las tablas se sincronizan individualmente. Si se encuentran errores, sólo se revierten los cambios para las tablas con errores. Si activa esta opción, todas las tablas se sincronizan en una única transacción. Si se encuentran errores, se revierten todos los cambios para todas las tablas.

    2. Crear componentes de sincronización. De forma predeterminada, se generan componentes de sincronización para el cliente y el servidor. Puede establecer esta opción en Sólo cliente o Sólo servidor para satisfacer los requisitos de su aplicación.

    3. Ubicación del proyecto de servidor. De forma predeterminada, los componentes de sincronización para el servidor se generarán en el proyecto actual. Establezca esta opción para generar componentes de sincronización para el servidor en cualquier proyecto de Visual Basic o Visual C# en la solución.

    4. Ubicación del proyecto de cliente. De forma predeterminada, los componentes de sincronización para el cliente se generarán en el proyecto actual. Establezca esta opción para generar componentes de sincronización para el cliente en cualquier proyecto de Visual Basic o Visual C# en la solución.

Después de completar el cuadro de diálogo Configurar sincronización de datos, deberá agregar código a su aplicación para iniciar la sincronización.

Nota:

Al sincronizar los datos, se actualiza la base de datos local, no la tabla del conjunto de datos o cualquier otro objeto de su aplicación. No olvide volver a cargar el origen de datos de la aplicación con los datos actualizados de la base de datos local. Por ejemplo, realice una llamada al método TableAdapter.Fill para cargar la tabla de datos del conjunto de datos con los datos actualizados de la base de datos local.

Para iniciar la sincronización

  • Si copió el código proporcionado en el cuadro de diálogo Ejemplo de código de la sección anterior, puede pegarlo simplemente en su aplicación. De lo contrario, puede insertar el siguiente código en cualquier parte de su aplicación donde desee iniciar el proceso de sincronización:

    ' Call SyncAgent.Synchronize() to initiate the synchronization process.
    ' Synchronization only updates the local database, not your project's data source.
    Dim syncAgent As LocalDataCache1SyncAgent = New LocalDataCache1SyncAgent()
    Dim syncStats As Microsoft.Synchronization.Data.SyncStatistics = syncAgent.Synchronize()
    
    ' Add code here to refill your application's data source
    ' with the updated data from the local database.
    
    // Call SyncAgent.Synchronize() to initiate the synchronization process.
    // Synchronization only updates the local database, not your project's data source.
    LocalDataCache1SyncAgent syncAgent = new LocalDataCache1SyncAgent();
    Microsoft.Synchronization.Data.SyncStatistics syncStats =
    syncAgent.Synchronize();
    
    // Add code to refill your application's data source
    // with the updated data from the local database.
    

Vea también

Tareas

Tutorial: Crear una aplicación que se conecta ocasionalmente

Tutorial: Implementar una aplicación cliente conectada ocasionalmente con la base de datos local

Ejemplo Occasionally Connected Data

Tutorial: Crear una aplicación de Smart Device que se conecta ocasionalmente

Conceptos

Información general sobre las aplicaciones conectadas ocasionalmente

Aplicaciones conectadas ocasionalmente (Dispositivos)

Otros recursos

Aplicaciones conectadas ocasionalmente

Historial de cambios

Fecha

Historial

Motivo

Julio de 2008

Información agregada sobre cómo configurar la sincronización de datos utilizando el Asistente para la configuración de orígenes de datos.

Cambio de características de SP1.

Julio de 2008

Notas agregadas sobre la sincronización en proyectos de Smart Device.

Cambio de características de SP1.