Как реализовать синхронизацию локальной БД с сервером в десктопном приложении?

Добрый день.
Суть вопроса:
Представим, что есть .Net десктопное приложение с локальной БД, установленное у ряда клиентов, у каждого клиента своя база.
Нужно синхронизировать клиентские базы с сервером, чтобы "администратор сервера" мог смотреть статистику/отчеты по базам и т.д.
Планируется использовать в качестве сервера Azure. Как лучше организовать синхронизацию?
- SQL база данных на Azure + SQLite локально;
- Виртуальная машина с сервером MS SQL на Azure и допустим MSSQL Express локально?

Клиентам работать напрямую с сервером неудобно, ибо у них 90% рабочего времени нет доступа в интернет.
  • Вопрос задан
  • 2842 просмотра
Пригласить эксперта
Ответы на вопрос 2
Nipheris
@Nipheris Куратор тега C#
Попробуйте SymmetricDS, этот проект как раз посвящен синхронизации (репликации) в master-master архитектуре с учётом непостоянного соединения между узлами. Ажура вроде как поддерживается. Что ставить на кл иенте - зависит от размера и требований к базе. Скорее всего хватит SQLite.
Ответ написан
Комментировать
mahoho
@mahoho
Full stack certified PHP developer.
Вы ищете MERGE replication, которая создана как раз для этого - офлайн клиенты периодически забирают данные с publisher'а, что-то делают в офлайне, потом синхноринизуются обратно с publisher'ом. В Azure у вас будет Publisher, офлайн клиенты - SQL Server Express в режиме Subscriber.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы