Synchronization Services для ADO.NET (перевод с англ.)   

Оригинал статьи на английком языке   (там же можно скачать демо-версии)


Synchronization Services для ADO.NET

 Серия демонстрационных оффлайн-приложений

 
Я создал простенькую демонстрационную программу, которая показывала работу новой системы синхронизации ADO.NET, над которой я работал. Затем я решил создать еще одну демо-программу, которая была несколько более продвинутой в сравнении с первой. По просьбам общественности я выпустил третью демонстрационную программу, показывающую технологию установки многоярусных систем. Так как за этим последовало одобрение публики, сопровождаемое новыми пожеланиями, я решил создать серию демонстрационных программ на основе этих простых программ.

 Вот краткое описание серии демонстрационных программ:

 Демо I. Автоматическая генерация SyncAdapterBuilder

 Эта программа демонстрирует самый быстрый путь создания оффлайн-приложения для двусторонней синхронизации. Здесь я фокусирую внимание на использовании SyncAdapterBuilder для создания всех команд, необходимых для осуществления двусторонней синхронизации. Важной частью этой демо-программы является необходимость подготовки серверной части базы данных для синхронизации. В этой программе я показываю несколько шагов по установке слежения изменений для каждой таблицы, которую необходимо синхронизировать с клиентом. В ней также демонстрируется, как можно отслеживать удаления, увеличивая специальный список, используя при этом триггеры удаления.

 
Демо II. Авторизация SyncAdapterObjects с использованием TSQL и SProcs

 Эта программа продолжает начатое программой «Демо I». В ней показывается, что если программировать SyncAdapter вручную, то может возникнуть много кода, который можно упростить, используя дополнительные удобства, для лучшей производительности. Данная программа демонстрирует также «параметры сеанса», которые представляют собой новое понятие в Сервисах Синхронизации. Параметры сеанса – это встроенные переменные, которые вы можете и будете использовать в качестве параметров для ваших команд. Задача синхронизатора – означить для вас эти параметры. Когда вы пишите SyncAdapter, вы должны понимать, какие параметры вам нужны и как их использовать в запросах и процедурах. Чтобы показать это, я написал команды Insert, Update и Delete как хранимые процедуры и команды перебора как TSQL.

 
Демо III. Установка N-Tier с использованием Веб-сервисов

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

 
Демо IV. Определение и устранение конфликтов

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

 
Демо V. Сервер Oracle

 С Sync Services можно выбирать из множества типов сервера. Конечно, вы можете использовать базу данных SQL Server, однако это не значит, что вы будете испытывать неудобства с Oracle или другой маркой сервера. Цель донной программы показать, как можно использовать Sync Services для синхронизации таблицы, хранящейся в базе данных Oracle. Программа также демонстрирует возможность авторизации объекта SyncSchema для того чтобы контролировать внешний вид схемы таблицы на клиенте.