Можно ли синхронизировать базы данных для мобильных устройств, настольных компьютеров и веб-серверов с помощью Sync Framework? - PullRequest
3 голосов
/ 20 апреля 2009

Я использую Sync Framework v1 (которая включает в себя службы синхронизации для ADO.NET v2) и службы синхронизации для мобильных устройств v1.

Я могу синхронизировать базу данных SQL Compact Edition с мобильного устройства с SQL Express на настольном ПК.

Я также могу синхронизировать базу данных SQL CE с настольного ПК с базой данных SQL Server на веб-сервере, используя WCF.

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

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

К сожалению, похоже, что нет способа соединить эти части вместе, чтобы создать нужные мне соединения, потому что:

  1. Мобильное устройство синхронизируется с SQL Express на ПК, и я не могу выполнить синхронизацию с SQL Express на сервер SQL.
  2. Синхронизация с сервером SQL должна происходить из SQL CE, и я не могу синхронизировать мобильное устройство с SQL CE на рабочем столе

Это просто невозможно или возможно с большим количеством кода (пользовательские SyncProviders, созданные вручную операторы обновления и т. Д.) Или я пропустил что-то очевидное?

Спасибо за ваше время! Mark.

Ответы [ 2 ]

2 голосов
/ 20 апреля 2009

Я использую ту же базовую настройку для живого приложения, и она работает довольно хорошо. У меня есть мобильное устройство, синхронизирующееся с сервером с использованием веб-служб (WCF тоже подойдет), и у меня есть настольное приложение, синхронизирующее примерно , например, , и все работает очень гладко.

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

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

В качестве примечания: если вы готовы потратить время и силы на создание собственных провайдеров Sync Framework, то вы обнаружите, что мало что не можете сделать.

1 голос
/ 20 апреля 2009

Полагаю, «предполагаемый» шаблон - использовать SQl Express на рабочем столе и использовать репликацию слиянием на сервер.

Я не ожидаю, что вы можете использовать SqlCe на рабочем столе в качестве «серверного» конца для платформы Sync. Среди прочего, SqlCe является однопользовательским, и это не подойдет для SyncAgent. Даже если это может показаться работоспособным в вашей ситуации.

Что может сработать, так это синхронизировать Mobile с сервером и рабочий стол с сервером. Но я понимаю, что это не решит вашу проблему с подключением и может сделать копию на ПК излишней.

...