Отдельная синхронизация Smart Client - PullRequest
4 голосов
/ 28 февраля 2010

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

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

Кто-нибудь делал что-нибудь подобное, я хочу знать:

  1. Каков наилучший способ синхронизации, есть ли шаблоны вокруг него?
  2. Существуют ли какие-либо структуры для синхронизации?
  3. Есть ли какие-то ошибки, о которых я должен знать с самого начала (возможно, параллелизм безопасности)?
  4. Как лучше всего это спроектировать?

Заранее спасибо ...

1 Ответ

1 голос
/ 22 апреля 2010

Итак, Microsoft Sync Framework поможет с этим. Введение

Пара вопросов стоит в самом начале.

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

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

Тщательно продумайте, что нужно синхронизировать. Если это база данных contactcvts, достаточно ли иметь синхронизацию только имени клиента и номера телефона, или вам также нужна вся история контактов?

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

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

...