Tutorial: Crear una aplicación conectada ocasionalmente con el Asistente para la configuración de orígenes de datos

Este tutorial proporciona directrices paso a paso para desarrollar aplicaciones que se conectan ocasionalmente incorporando servicios de sincronización al ejecutar Asistente para la configuración de orígenes de datos.

Las aplicaciones que se conectan ocasionalmente son aplicaciones que es posible que no siempre tengan acceso a datos remotos. Dado que no siempre cuentan con este tipo de acceso, utilizan los datos de una base de datos local ubicada en el cliente y, periódicamente, sincronizan los datos entre la base de datos remota y la base de datos local. Microsoft Synchronization Services for ADO.NET (el espacio de nombres Microsoft.Synchronization.Data) facilita la sincronización de datos entre la base de datos local y la base de datos remota. Crea inicialmente esta sincronización agregando una memoria caché de la base de datos local a una aplicación mediante el cuadro de diálogo Agregar nuevo elemento o ejecutando el Asistente para la configuración de orígenes de datos. En este tutorial, realizará esto último.

Durante este tutorial realizará las tareas siguientes:

  • Crear una nueva aplicación de Windows Forms.

  • Ejecute el Asistente para la configuración de orígenes de datos a fin de crear y configurar un conjunto de datos con tipo que tiene almacenamiento en caché de la base de datos local.

  • Cree un formulario Windows Forms para mostrar los datos y confirmar la sincronización.

  • Agregar código para iniciar la sincronización entre las bases de datos.

  • Agregar un cuadro de mensaje para mostrar información sobre el número de registros sincronizados.

Requisitos previos

Para realizar este tutorial, necesita lo siguiente:

  • Tener acceso a la versión de SQL Server de la base de datos de ejemplo Northwind. Para obtener más información, vea Cómo: Instalar bases de datos de ejemplo.

  • SQL Server Compact 3.5 instalado en el equipo que ejecuta Visual Studio.

Crear la aplicación de formularios Windows Forms

Puesto que los datos van a mostrarse en un formulario Windows Forms (para comprobar que la sincronización es correcta), el primer paso de este tutorial es crear una nueva aplicación de Windows Forms.

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 crear la nueva aplicación de formularios Windows Forms

  1. Desde el menú Archivo, cree un proyecto nuevo.

  2. Asigne al proyecto el nombre OCSWalkthrough2.

  3. Haga clic en la plantilla Aplicación de Windows Forms y, a continuación, en haga clic en Aceptar. Para obtener más información, vea Crear aplicaciones basadas en Windows.

    El proyecto OCSWalkthrough2 se crea y agrega al Explorador de soluciones.

Crear un origen de datos que incluye una memoria caché de la base de datos local

Dado que este tutorial muestra cómo incorporar los servicios de sincronización en una aplicación mediante el Asistente para la configuración de orígenes de datos, el paso siguiente es iniciar el asistente. En este paso se inicia el asistente y se crea un conjunto de datos que se basa en las tablas Customers de la base de datos de ejemplo Northwind. Al elegir la tabla de la base de datos para agregar al conjunto de datos, seleccionará la opción para habilitar el almacenamiento de datos en la memoria caché local.

Crear un origen de datos que incluye una memoria caché de la base de datos local

  1. En el menú Datos, haga clic en Mostrar orígenes de datos.

  2. En la ventana Orígenes de datos, haga clic en Agregar nuevo origen de datos para iniciar el Asistente para la configuración de orígenes de datos.

  3. Deje el valor predeterminado de Base de datos seleccionado en la página Elija un tipo de origen de datos y, a continuación, haga clic en Siguiente.

  4. En la página Elegir la conexión de datos, siga uno de estos procedimientos:

    • Si en la lista desplegable está disponible una conexión de datos a la versión de SQL Server de la base de datos de ejemplo Northwind, selecciónela.

      O bien

    • Haga clic en Nueva conexión para abrir el cuadro de diálogo Elegir origen de datos o Agregar/Modificar conexión y crear una nueva conexión a la versión de SQL Server de la base de datos Northwind. Para obtener más información, vea Agregar/Modificar conexión (Cuadro de diálogo, General).

  5. Si la base de datos requiere una contraseña, seleccione la opción para incluir datos confidenciales y, a continuación, haga clic en Siguiente.

  6. Haga clic en Siguiente en la página Guardar cadena de conexión en el archivo de configuración de la aplicación.

  7. Expanda el nodo Tablas en la página Elija los objetos de base de datos.

  8. Seleccione la tabla Customers.

  9. Seleccione Habilitar almacenamiento en caché de la base de datos local.

  10. Haga clic en Siguiente en la página Elija los objetos de base de datos.

  11. Seleccione la tabla Customers en la página Elegir tablas para almacenar en caché.

    Nota

    Deje el valor predeterminado de Incremental para el Modo de sincronización. El modo Incremental sólo sincroniza las modificaciones que se realizaron en el servidor desde la última sincronización. El modo de instantánea reemplaza toda la tabla almacenada localmente en la memoria caché por la tabla actual del servidor. Al principio se carga la tabla completa en la caché de la base de datos local sin tener en cuenta esta selección, para que siempre se inicie con un conjunto completo de datos actuales.

  12. Haga clic en Finalizar.

  13. Si el modo de sincronización de una de las tablas almacenadas en la memoria caché local está establecido en Cambios nuevos e incrementales después de la primera sincronización, se requiere una actualización de la base de datos de SQL Server y se abre el cuadro de diálogo Generar scripts SQL. De forma predeterminada, ambas opciones están seleccionadas en el cuadro de diálogo.

    • Actualice el servidor con los cambios incrementales. Seleccione esta opción para que el servidor se actualice automáticamente y la sincronización incremental pueda realizarse inmediatamente después de que se cierre este cuadro de diálogo.

    • Guarde los scripts SQL en el proyecto para su uso posterior. Seleccione esta opción para agregar al proyecto los scripts SQL generados de modo que se puedan ejecutar más adelante en la base de datos de SQL Server. También se generan y se agregan al proyecto scripts undo.

  14. Haga clic en Aceptar.

Habilitar la sincronización en la aplicación

Después de terminar de ejecutar el Asistente para la configuración de orígenes de datos en los pasos anteriores, se configura la sincronización de datos. La aplicación contiene ahora lo siguiente:

  • Una versión local de la base de datos Northwind (Northwind.sdf).

  • Un archivo de configuración de sincronización de datos (NorthwindCache.sync).

  • Un conjunto de datos con tipo, NorthwindDataSet.xsd, que genera el Asistente para la configuración de orígenes de datos. Contiene una tabla Customers que rellena los datos a partir de la base de datos local.

    Se ejecuta una sincronización inicial y la tabla Customers de la memoria caché de la base de datos local se sincroniza con la base de datos servidor. En otras palabras, la tabla Customers de la base de datos local de SQL Server Compact 3.5 (Northwind.sdf) se rellena con los datos que están actualmente en la tabla Customers de la base de datos del servidor.

  • Una carpeta SQLScripts que contiene los scripts que se utilizan para crear las columnas de seguimiento, la tabla de elementos eliminados y los desencadenadores necesarios para realizar el seguimiento de los cambios en el servidor.

  • Una carpeta SQLUndoScripts que contiene los scripts necesarios para quitar las columnas de seguimiento, la tabla de elementos eliminados y los desencadenadores necesarios para realizar el seguimiento de los cambios en el servidor.

    Nota

    Sólo se crearán scripts SQL si es necesario realizar modificaciones en el servidor. Si el servidor ya tiene una tabla de elementos eliminados y columnas de seguimiento, no se creará ningún script.

  • Referencias a las siguientes DLL de Microsoft Synchronization Services for ADO.NET:

    • Microsoft.Synchronization.Data

    • Microsoft.Synchronization.Data.Server

    • Microsoft.Synchronization.Data.SqlServerCe

Agregar funcionalidad de sincronización a la aplicación

Después de configurar la sincronización de datos, todavía tendrá que agregar la funcionalidad de sincronización a la aplicación. En concreto, deberá agregar código que inicie el proceso de sincronización. Agregará controles al formulario para mostrar los datos e iniciar el proceso de sincronización.

En primer lugar, agregará un control DataGridView arrastrando el nodo Customers desde la ventana Orígenes de datos hasta el formulario. El DataGridView mostrará la tabla Customers de la caché de la base de datos local (la base de datos Northwind.sdf ubicada en el proyecto), de forma que pueda comprobar si los datos están sincronizados entre las bases de datos local y remota. También agregará un botón para iniciar el proceso de sincronización.

Para crear un formulario enlazado a datos para iniciar y comprobar la sincronización de datos

  1. Arrastre el nodo Customers desde la ventana Orígenes de datos hasta Form1.

  2. Arrastre un control Button desde el Cuadro de herramientas hasta Form1. Establezca su propiedad Name en SynchronizeButton y su propiedad Text en Sincronizar ahora.

  3. Haga doble clic en el botón Sincronizar ahora para crear un controlador de eventos de clic de botón y abrir el formulario en el Editor de código.

  4. Agregue código para iniciar el proceso de sincronización y, a continuación, rellene la tabla Customers del conjunto de datos. El código del controlador de eventos debe presentar un aspecto similar al siguiente:

    Nota

    La línea de código que declara la variable syncStats se explica posteriormente en este documento.

Probar la aplicación

Para probar la aplicación

  1. Presione F5.

  2. Cuando se esté ejecutando la aplicación, use el Explorador de servidores/Explorador de bases de datos (u otra herramienta de administración de bases de datos) para conectar a la base de datos del servidor remoto y modificar algunos registros.

    1. En el Explorador de servidores/Explorador de bases de datos, busque la tabla Customers del servidor de bases de datos remoto (no la conexión a Northwind.sdf).

    2. Haga clic con el botón secundario en la tabla Customers y, a continuación, haga clic en Mostrar datos de tabla.

    3. Modifique uno o varios registros y confirme el cambio. (Desplácese fuera de la fila modificada.)

  3. Regrese al formulario y haga clic en Sincronizar ahora.

  4. Compruebe que los cambios realizados en la base de datos remota se hayan sincronizado con la base de datos local y que se muestren en el formulario.

  5. Cierre el formulario. (Detenga la depuración.)

Recuperar información de una sincronización

Al llamar al método Synchronize, además de iniciar el proceso de sincronización realiza otras tareas. El método Synchronize también devuelve un objeto SyncStatistics desde el que se puede obtener acceso a información de sincronización.

Para obtener acceso a las estadísticas de sincronización

  • Abra Form1 en el Editor de código y agregue el código siguiente al final del controlador de eventos SynchronizeButton_Click, bajo el código agregado en los pasos anteriores:

Probar la aplicación

Para probar la aplicación

  1. Presione F5.

  2. Cuando se esté ejecutando la aplicación, use el Explorador de servidores/Explorador de bases de datos (u otra herramienta de administración de bases de datos) para conectar a la base de datos del servidor remoto y modificar algunos registros.

    1. En el Explorador de servidores/Explorador de bases de datos, busque la tabla Customers del servidor de bases de datos remoto (no la conexión a Northwind.sdf).

    2. Haga clic con el botón secundario en la tabla Customers y, a continuación, haga clic en Mostrar datos de tabla.

    3. Modifique uno o varios registros y confirme el cambio. (Desplácese fuera de la fila modificada.)

  3. Regrese al formulario y haga clic en Sincronizar ahora.

  4. Aparecerá un cuadro de mensaje que contiene información sobre los registros sincronizados.

  5. Compruebe que los cambios realizados en la base de datos remota se hayan sincronizado con la base de datos local y que se muestren en el formulario.

Pasos siguientes

En función de los requisitos de la aplicación, quizás sea conveniente realizar varios pasos después de configurar una caché de base de datos local en una aplicación. Por ejemplo, a continuación se indican algunas de las mejoras que podría realizar en esta aplicación:

Vea también

Tareas

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

Conceptos

Información general sobre las aplicaciones conectadas ocasionalmente

SQL Server Compact 3.5 y Visual Studio