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

Я использую Sync Framework v1 (которая включает в себя Sync Services for ADO.NET v2) и Sync Services for mobile 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, созданные вручную операторы обновления и т. Д.), Или я пропустил что-то очевидное?

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

2 ответа

Решение

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

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

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

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

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

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

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

Другие вопросы по тегам