Синхронизация базы данных в веб и настольном приложении? - PullRequest
2 голосов
/ 06 июня 2010

Я пытаюсь разработать веб-приложение (с использованием ASP.NET и c #), которое использует конкретную базу данных, размещенную на веб-сервере. У меня будет другое настольное приложение, которое будет использовать локальную базу данных. Обе базы данных имеют одинаковую структуру и данные при запуске. Затем базы данных изменятся, когда пользователи добавят данные в веб-приложение, а сотрудник добавит данные в настольное приложение. Через некоторое время я должен синхронизировать обе базы данных.

Какой будет лучший способ сделать это? Есть ли какой-нибудь пример с открытым исходным кодом / стартовый набор для начала?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 06 июня 2010

Интересный вопрос:

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

Простой рабочий процесс, упрощающий работу:

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

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

1 голос
/ 03 января 2011

Зная только требования высокого уровня, которые вы задали, я бы посоветовал вам взглянуть на Microsoft Sync Framework http://msdn.microsoft.com/en-us/sync/bb821992. Я использовал его в небольших приложениях и добился большого успеха.

0 голосов
/ 16 июня 2010

Мне кажется, что вам нужно иметь разные презентации одного и того же приложения для разных пользователей.Некоторые подключены к сети, а некоторые к рабочему столу.Разве невозможно иметь единую базу данных (при условии, что вы находитесь в сети, где находится сервер баз данных и можете иметь доступ к одному и тому же) как для сети, так и для рабочего стола.

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

Вот несколько ссылок MSDN: http://msdn.microsoft.com/en-us/library/ms998473.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...