Пошаговое руководство. Создание произвольно подключаемого приложения

Обновлен: Июль 2008

Периодически подключаемые приложения являются приложениями, которые не всегда имеют доступ к удаленным данным. Поскольку они не всегда имеют такой доступ, они потребляют данные из локальной базы данных, расположенной на стороне клиента, и периодически синхронизируют данные между удаленной и локальной базами данных. Синхронизация данных между локальной и удаленной базами данных является "облегченной" посредством Microsoft Synchronization Services для ADO.NET (пространство имен Microsoft.Synchronization.Data). Синхронизация настраивается в диалоговом окне Настройка синхронизации данных.

Начиная с версии Visual Studio 2008 SP1, дополнительно к диалоговому окну Настройка синхронизации данных для настройки синхронизации можно также использовать Мастер настройки источника данных. Во время настройки типизированного набора данных выберите параметр Включить кэширование локальной базы данных на странице Выбор объектов базы данных мастера. Дополнительные сведения см. в разделе Пошаговое руководство. Создание произвольно подключаемого приложения с помощью мастера настройки источника данных.

В данном пошаговом руководстве приведены пошаговые указания по разработке периодически подключаемого приложения.

В данном пошаговом руководстве вы будете выполнять следующие задачи:

  • Создание нового приложения Windows Forms.

  • Добавление к проекту нового Кэша локальной базы данных.

  • Настройка параметров синхронизации, выполнение следующих задач:

    • Установка подключений к базе данных сервера.

    • Настройка синхронизации для создания новой локальной базы данных.

    • Выбор таблиц в базе данных, которые должны синхронизироваться с приложением.

  • Добавление элемента управления DataGridView на форму для отображения данных из локальной базы данных.

  • Добавление кода для инициализации синхронизации баз данных.

  • Добавление поля сообщения для отображения сведений о числе синхронизированных записей.

Обязательные компоненты

Для выполнения данного пошагового руководства необходимо следующее:

Создание приложения Windows Forms

Поскольку будет происходить отображение данных в формах Windows Forms (для проверки успешности синхронизации), первым шагом в этом пошаговом руководстве является создание нового приложения Windows Forms.

Bb384472.alert_note(ru-ru,VS.90).gifПримечание.

На вашем компьютере названия некоторых элементов интерфейса пользователя Visual Studio или их расположение могут отличаться от указанных в нижеследующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio.

Для создания приложения Windows Forms

  1. Из меню Файл создайте новый проект.

  2. Задайте имя проекта — OCSWalkthrough.

    Bb384472.alert_note(ru-ru,VS.90).gifПримечание.

    Диалоговое окно Настройка синхронизации данных поддерживается в проектах Visual Basic и C#, поэтому следует создать новый проект на одном из этих языков.

  3. Выберите шаблон Приложение Windows Forms и нажмите кнопку OK. Дополнительные сведения см. в разделе Создание приложения для Windows.

    Проект OCSWalkthrough создастся и добавляется в окне Обозреватель решений.

Добавление файла синхронизации в проект

Следующим шагом при создании периодически подключаемого приложения является добавление (или создание) локальной базы данных на стороне клиента. Чтобы добавить локальную базу данных, которая будет синхронизироваться с удаленной базой данных, добавьте шаблон Кэш локальной базы данных в проект. Вы добавляете файлы кэша локальной базы данных (.sync файлы) в проекты, воспользовавшись диалоговым окном Добавление нового элемента.

Чтобы добавить файл параметров синхронизации проекта

  1. В меню Проект выберите команду Добавить новый элемент.

  2. Щелкните шаблон Кэш локальной базы данных и введите NorthwindCache.sync в поле Имя.

  3. Нажмите кнопку Добавить.

    Файл NorthwindCache.sync добавлен в Обозреватель решений, появится диалоговое окно Настройка синхронизации данных.

Настройка синхронизации данных

Настройка синхронизации данных состоит из следующих задач:

  • Предоставление данных подключения к удаленной базе данных. Это соединение с сервером.

  • Предоставление данных подключения к локальной базе данных или создание новой базы данных на стороне клиента, как показано в данном пошаговом руководстве. Это подключение клиента.

  • Выберите таблицы из удаленного подключения, которые требуется использовать в приложении. Они называются кэшированные таблицы.

  • Для каждой таблицы, добавляемой в локальную базу данных, выделите столбцы, которые необходимы для согласования изменений, и таблицу для хранения удаленных элементов. Каждая таблица требует определенных столбцов для слежения за новыми и измененными записями, в дополнение к таблице, хранящей удаленные записи.

Настройка подключений

Теперь устанавливается соединение с сервером для подключения к удаленной базе данных (внешней базы данных по отношению к приложению). Клиентское подключение может соединиться с существующей базой данных SQL Server Compact 3.5, или можно разрешить через диалоговое окно Настройка синхронизации данных создание новой локальной базы данных. В данном пошаговом руководстве предстоит создать подключение к базе данных сервера и оставить подключение клиента по умолчанию, чтобы автоматически создать новую клиентскую базу (Northwind.sdf) в проекте.

Чтобы установить подключение для базы данных сервера и клиента

  1. Выберите Подключение к серверу к SQL Server-версии базы данных "Northwind", или нажмите кнопку Создать для создания нового подключения к SQL Server-версии базы данных "Northwind". Дополнительные сведения см. в разделе Практическое руководство. Создание подключения к базе данных Northwind.

  2. Оставьте значение по умолчанию из Northwind.sdf (новое) для Подключения клиента. Это создает новую базу данных SQL Server Compact 3.5 и добавляет ее к проекту.

    После выбора соединения с сервером диалоговое окно Настройка синхронизации данных запрашивает удаленную базу данных на сервере для получения списка доступных таблиц, после получения которого кнопка Добавить становится доступной.

    Bb384472.alert_note(ru-ru,VS.90).gifПримечание.

    Обратите внимание, что кнопка OK недоступна. Это происходит потому, что таблицы не были выбраны для синхронизации. В следующем разделе поясняются способы добавления таблиц, при которых кнопка OK становится доступной.

Выбор и настройка таблиц, используемых автономно

Сейчас будут выбраны таблицы, которые будут добавлены в клиентскую базу данных и синхронизированы в приложении. Для каждой таблицы, добавляемой в клиентскую базу данных, выберите отслеживаемые столбцы, необходимые для выверки изменений, и таблицу для хранения удаленных элементов. Если оставить параметры по умолчанию, диалоговое окно Настройка синхронизации данных создаст отслеживаемые столбцы и таблицу удаленных элементов. В данном пошаговом руководстве будут использоваться параметры по умолчанию.

Для настройки таблиц для локального кэширования

  1. Нажмите кнопку Добавить, чтобы открыть диалоговое окно Настройка таблиц для автономной работы.

  2. Выберите и проверьте таблицу Customers.

  3. Оставьте все значения по умолчанию. Нажмите кнопку OK.

    Таблица Customers будет добавлена к списку Кэшированные таблицы.

  4. В диалоговом окне Настройка синхронизации данных нажмите OK.

    На сервере создаются отслеживаемые столбцы и таблица для удаленных элементов. База данных Northwind.sdf создается в проекте и синхронизируется впервые.

  5. Выберите и проверьте таблицу Customers в окне Мастер настройки источника данных и нажмите кнопку Готово.

    NorthwindDataSet.xsd добавлена к проекту, и все диалоговые окна закрываются.

Включение синхронизации в приложении

После выполнения предыдущих шагов синхронизация данных настроена. На этом этапе приложение состоит из следующих компонентов:

  • Локальная база данных "Northwind" (Northwind.sdf).

  • Параметры cинхронизации данных (NorthwindCache.sync).

  • Типизированный набор данных NorthwindDataSet.xsd, созданный в окне Мастер настройки источника данных. Он содержит таблицу Customers, заполняемую из локальной базы данных.

  • Папка SQLScripts, содержащая сценарии, которые используются для создания отслеживаемых столбцов, таблицы удаленных элементов и необходимых триггеров для отслеживания изменений на сервере.

  • Папка SQLUndoScripts, содержащая сценарии для удаления отслеживаемых столбцов, таблицы удаленных элементов и необходимых триггеров, добавленных к серверу.

    Bb384472.alert_note(ru-ru,VS.90).gifПримечание.

    Сценарии SQL создаются, только если изменения должны быть выполнены на сервере. Если на сервере уже есть таблица удаляемых элементов и отслеживаемые столбцы, сценарии не создаются.

  • Ссылки на следующие библиотеки DLL Microsoft Synchronization Services для ADO.NET:

    • Microsoft.Synchronization.Data

    • Microsoft.Synchronization.Data.Server

    • Microsoft.Synchronization.Data.SqlServerCe

После настройки синхронизации данных по-прежнему необходимо добавить функциональные возможности синхронизации в приложении. Точнее, необходимо добавить код, который инициирует процесс синхронизации.

Во-первых, будет добавлен элемент управления DataGridView путем перетаскивания узла Customers на форму из окна Источники данных. DataGridView будет отображать таблицу Customers кэша локальной базы данных (база данных Northwind.sdf в проекте), поэтому можно проверить, что данные синхронизируются между локальной и удаленной базами данных. Добавьте на форму кнопку для начала процесса синхронизации.

Для создания формы с привязкой к данным для инициирования и проверки синхронизации данных

  1. Перетащите узел Customers из окна Источники данных на форму Form1.

  2. Перетащите элемент управления Кнопка из Панели элементов на Form1. Установите его свойство Имя в SynchronizeButton и его свойство Текст в Синхронизация.

  3. Дважды щелкните кнопку Синхронизация, чтобы создать обработчик событий нажатия кнопки и откройте форму в редакторе кода.

  4. Добавьте код для начала процесса синхронизации и затем заново заполните таблицу Customers в наборе данных. В обработчике событий добавьте следующий код:

    Bb384472.alert_note(ru-ru,VS.90).gifПримечание.

    Строка кода, объявляющего переменную syncStats объясняется в следующем разделе.

    ' Call the Synchronize method to synchronize
    ' data between local and remote databases.
    Dim syncAgent As NorthwindCacheSyncAgent = New NorthwindCacheSyncAgent()
    Dim syncStats As Microsoft.Synchronization.Data.SyncStatistics = _
        syncAgent.Synchronize()
    
    ' After synchronizing the data, refill the
    ' table in the dataset.
    Me.CustomersTableAdapter.Fill(NorthwindDataSet.Customers)
    
    // Call the Synchronize method to synchronize
    // data between local and remote databases.
    NorthwindCacheSyncAgent syncAgent = new NorthwindCacheSyncAgent();
    Microsoft.Synchronization.Data.SyncStatistics syncStats;
    syncStats = syncAgent.Synchronize();
    // After synchronizing the data, refill the
    // table in the dataset.
    this.customersTableAdapter.Fill(this.northwindDataSet.Customers);
    

Проверка работы приложения

Тестирование приложения

  1. Нажмите клавишу F5.

  2. Во время работы приложения используйте Обозреватель серверов/Обозреватель баз данных (или другое средство управления базами данных), чтобы подключиться к удаленному серверу баз данных и изменить некоторые записи.

    1. В окне Обозреватель серверов/Обозреватель баз данных найдите таблицу Customers на удаленном сервере баз данных (не подключенном к Northwind.sdf).

    2. Щелкните правой кнопкой мыши таблицу Customers и выберите команду Показать таблицу данных.

    3. Измените одну или несколько записей и зафиксируйте изменения. (Переместите курсор с измененной строки.)

  3. Вернитесь в форму и нажмите кнопку Синхронизация.

  4. Убедитесь, что изменения в удаленной базе данных синхронизированы с локальной базой данных и отображаются в сетке.

  5. Закройте форму. (Остановите отладку.)

Получение сведений синхронизации

При вызове метода Synchronize, он не просто начинает процесс синхронизации. Метод Synchronize также возвращает объект Synchronize, из которого можно получить доступ к сведениям о синхронизации.

Для доступа к статистике синхронизации

  • Откройте Form1 в редакторе кода и добавьте следующий код в нижнюю часть обработчика событий SynchronizeButton_Click, после кода, добавленного в предыдущих шагах:

        MessageBox.Show("Changes downloaded: " & _
    syncStats.TotalChangesDownloaded.ToString)
    
    MessageBox.Show("Changes downloaded: " +
        syncStats.TotalChangesDownloaded.ToString());
    

Тестирование приложения

Чтобы протестировать приложение

  1. Нажмите клавишу F5.

  2. Во время работы приложения используйте Обозреватель серверов/Обозреватель баз данных (или другое средство управления базами данных), чтобы подключиться к удаленному серверу баз данных и изменить некоторые записи.

    1. В окне Обозреватель серверов/Обозреватель баз данных найдите таблицу Customers на удаленном сервере баз данных (не подключенном к Northwind.sdf).

    2. Щелкните правой кнопкой мыши таблицу Customers и выберите команду Показать таблицу данных.

    3. Измените одну или несколько записей и зафиксируйте изменения. (Переместите курсор с измененной строки.)

  3. Вернитесь в форму и нажмите кнопку Синхронизация.

  4. Появится окно сообщения, содержащее сведения о синхронизированных записях.

  5. Убедитесь, что изменения в удаленной базе данных синхронизированы с локальной базой данных и отображаются в сетке.

Следующие действия

В зависимости от требований приложения существуют несколько шагов, выполнение которых может потребоваться после добавления кэша локальной базы данных в приложение. Например, можно внести в приложение следующие усовершенствования:

См. также

Задачи

Пошаговое руководство. Развертывание произвольно подключаемых клиентских приложений с локальной базой данных

Основные понятия

Общие сведения о произвольно подключаемых приложениях

SQL Server Compact 3.5 и Visual Studio

Журнал изменений

Дата

Журнал

Причина

Июль 2008

Добавлен раздел о настройке синхронизации данных с помощью Мастера настройки источника данных.

Изменение функции SP1.