Могу ли я синхронизировать базы данных мобильных устройств, настольных компьютеров и веб-серверов с помощью Sync Framework?
-
12-09-2019 - |
Вопрос
Я использую Sync Framework v1 (который включает службы синхронизации для ADO.NET v2) и службы синхронизации для мобильных устройств v1.
Я могу синхронизировать базу данных SQL Compact Edition с мобильного устройства с SQL Express на настольном ПК.
Я также могу синхронизировать базу данных SQL CE с настольного ПК с базой данных SQL Server на веб-сервере с помощью WCF.
Я хочу синхронизировать мобильное устройство с настольным компьютером, когда оно будет подключено к док-станции, а затем синхронизировать настольный компьютер с веб-сервером (копия на настольном компьютере предназначена на случай, если веб-соединение ненадежно).
В идеале я бы в любом случае хотел избегать SQL Express, потому что хочу, чтобы настройки мобильных и настольных компьютеров были как можно более простыми.
К сожалению, похоже, что нет возможности соединить эти части вместе, чтобы создать нужные мне соединения, потому что:
- Мобильное устройство синхронизируется с SQL Express на ПК, и я не могу синхронизировать SQL Express с SQL-сервером.
- Синхронизация с сервером SQL должна осуществляться из SQL CE, и я не могу синхронизировать мобильное устройство с SQL CE на рабочем столе.
Это просто невозможно или возможно с большим объемом кода (пользовательские SyncProviders, созданные вручную операторы обновления и т. д.), или я пропустил что-то очевидное?
Спасибо за ваше время!Отметка.
Решение
Я использую ту же базовую настройку для живого приложения, и она работает довольно хорошо.У меня есть синхронизация мобильного устройства с сервером с помощью веб-служб (WCF тоже подойдет), и у меня есть синхронизация настольного приложения. так и все работает очень плавно.
Как правило, было бы плохой идеей синхронизировать клиент с сервером, который затем синхронизируется с сервером, потому что тогда вам придется управлять большим количеством состояний, а общие инструменты и руководства вам не сильно помогут.
Я бы также рекомендовал не использовать репликацию слиянием sql, если вы не считаете себя экспертом в управлении SQL, потому что, если вы им не являетесь сейчас, вы станете им к тому времени, когда вы чувствовать безопасно использовать его.
Обратите внимание: если вы готовы потратить время и усилия на создание собственных поставщиков Sync Framework, вы обнаружите, что мало что можете сделать.
Другие советы
Я полагаю, что «предполагаемым» шаблоном было бы использование SQl Express на рабочем столе и репликация слиянием на сервер.
Я не ожидаю, что вы сможете использовать SqlCe на рабочем столе в качестве «серверной» части платформы Sync.Помимо прочего, SqlCe является однопользовательским, и для SyncAgent это не подходит.Даже если это может показаться осуществимым в вашей ситуации.
Что может сработать, так это синхронизировать мобильное устройство с сервером и рабочий стол с сервером.Но я понимаю, что это не решит вашу проблему с подключением и может сделать копию на ПК ненужной.