none
Разработка WCF для поставщика справочников на базе Microsoft Sync Framework и SQL Server RRS feed

  • Общие обсуждения

  • Господа, приветствую!

    Мне требуется создать WCF-поставщика данных различных справочников для информационных систем.

    Для этой задачи, судя по всему, прекрасно подходит Microsoft Sync Framework. На странице загрузки SDK красиво написано: "Платформа Microsoft Sync Framework позволяет разработчикам создавать приложения для синхронизации данных из любого источника в любой сети и с использованием любого протокола". Кроме того, в комплекте идёт инструкция (в т.ч. и на русском), где подробнейшим образом расписаны всякие мелочи.

    Меня заинтересовал раздел "Как настроить многоуровневую синхронизацию" и, собственно, код для реализации провайдера для службы, который основывается на DbServerSyncProvider:

    public class SampleServerSyncProvider : DbServerSyncProvider
    {
    //...
    }

    В начале мануала есть небольшая заметка: "В этом разделе приведены общие сведения, процедуры и полные примеры кода для обычных задач синхронизации, которые можно выполнить с помощью платформы Sync Framework. Назначение этих разделов — продемонстрировать, как можно выполнить синхронизацию баз данных, отличных от SQL Server, с помощью платформы Sync Framework. В этой версии в примерах кода используется SQL Server, но сам код можно использовать для других, совместимых с ADO.NET, баз данных с некоторыми изменениями специфических объектов SQL Server (например, SqlConnection) и отображаемых SQL-запросов."

    Т.е. по сути получается, что приведены рабочие примеры для SQL сервера, но не предназначенные для него самого, потому что для SQL-сервера есть отдельный провайдер SqlSyncProvider, про который сказано: "SqlSyncProvider обладает всеми функциями DbSyncProvider, однако требует значительно меньшего объема кода и не требует столь полного представления о запросах, которые используются Sync Framework для синхронизации данных. DbSyncProvider по-прежнему удобно применять для баз данных, не являющихся базами SQL Server."

    Обрадовался, думаю, заменю DbServerSyncProvider и SqlSyncProvider и делов-то, но не тут то было.

    Начал искать по примерам, например Windows Azure Sync Service Sample, выяснилось, что код на базе SqlSyncProvider имеет отличную архитектуру, а объём кода в 10-ки раз отличается от примера на базе DbServerSyncProvider. В итоге, захожу в тупик как разбираться с этой штукой.

    Может кто разжевать, где опубликован список свойств и методов в интерфейсах, которые необходимо реализовать для WCF-службы? Они в примерах на базе DbServerSyncProvider и SqlSyncProvider коренным образом различаются.

    Правильно ли я понимаю, что в SqlSyncProvider нужно передать модель таблицы, а он сам создаст мета-таблицу, необходимые процедуры и триггеры к базовым таблицам?


    24 июня 2014 г. 5:47