Шаблон проектирования для приложения базы данных, которое должно работать автономно - PullRequest
7 голосов
/ 22 января 2010

Мне нужно разработать приложение, в основном это интерфейс с базой данных для ввода данных. Приложение должно иметь возможность работать, когда оно отключено от базы данных с кэшированными данными, и вставлять эти данные при повторном подключении. Будет два разных режима, подключенных или отключенных, нет необходимости обнаруживать отключение в середине подключенного сеанса, чтобы переключиться на отключенное.

Поскольку это кажется мне общим требованием, мне было интересно, существует ли «стандартный» подход для решения этой проблемы. Кэширование таблиц в локальный файл, сериализация данных, запрашиваемых в базе данных или что-то еще. Может быть, для этого существует библиотека?

Заранее спасибо.

PD: приложение будет сделано в .Net

РЕДАКТИРОВАТЬ: это приложение WinForms, а не веб-приложение.

РЕДАКТИРОВАТЬ 2: Чтобы ввести более подробную информацию о приложении, необходимо ввести данные в одну базу данных, но иногда пользователи будут отсутствовать на работе несколько недель и им потребуется вводить данные, как если бы они были связаны с кэшированными данными из базы данных, и это введенные данные будут перенесены в базу данных при повторном подключении.

Ответы [ 5 ]

3 голосов
/ 24 января 2010

Сценарий, который вы описываете, может быть решен путем репликации базы данных. Например, если вы используете сервер MS SQL в качестве основной базы данных C / S, он может быть реплицирован на локальную установку MSSQL Express на рабочей станции или ноутбуке автономных пользователей. Пока ваши пользователи находятся вне офиса, приложение должно подключаться к локальной БД, а при возврате изменения реплицируются обратно в центральную БД. Я думаю, что это «стандартный» подход, который вы ищете, когда вам не нужно писать специальный код для вашей автономной ситуации (за исключением кода, который изменяет соединение, и некоторого кода для запуска репликации).

Для вас может быть интересно, что система CRM, используемая нашей компанией, работает так же, как и локальная БД, «MSSQL desktop engine», предшественник Express Edition, но ИМХО это должно работать с Express Edition. , тоже. Насколько я знаю, вам не нужно платить лицензионные сборы за экземпляры MSSQL Express.

1 голос
/ 22 января 2010

ADO.NET в отключенном режиме [PDF link] может быть вашей отправной точкой.

0 голосов
/ 22 января 2010

вы можете посмотреть, как устроен Google Gears

0 голосов
/ 22 января 2010

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

0 голосов
/ 22 января 2010

Как уже было сказано, ado.net - логичный выбор.

http://msdn.microsoft.com/en-us/library/aa719836%28VS.71%29.aspx

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

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