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

StackOverflow https://stackoverflow.com/questions/768888

Вопрос

Я использую 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, созданные вручную операторы обновления и т. д.), или я пропустил что-то очевидное?

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

Это было полезно?

Решение

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

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

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top