XML, SQL Server Compact или что-то еще? - PullRequest
0 голосов
/ 04 июля 2010

Я разрабатываю настольное приложение, которое должно собирать данные (от пользователя) и хранить их локально безопасным способом. Необходимо будет синхронизировать эти данные с центральной базой данных, когда будет доступно интернет-соединение. Приложение - WPF, и я хотел бы воспользоваться новыми функциями привязки данных в WPF. Я действительно хочу, чтобы это приложение было легким, и поэтому не имело формальных бизнес-объектов, а просто привязывалось напрямую к XML-файлу. Моя проблема с этим, однако, является безопасностью. Я мог видеть шифрование файлов XML, это реалистичный вариант. Еще одна причина, по которой я хотел использовать XML, - это взаимодействие с другими приложениями (на рабочем столе), что часто случается для приложений такого типа.

С другой стороны, существует SQL Server Compact, но, чтобы его использовать, я бы, скорее всего, хотел, чтобы бизнес-объекты представляли таблицы, и для взаимодействия с другими приложениями мне все равно приходилось бы выкладывать данные в XML. Безопасность была бы простой, просто добавьте пароль к базе данных.

Что вы, ребята, думаете? Есть ли что-то, что я не принимаю во внимание, предоставил ли я достаточно информации о своей проблемной области?

Ответы [ 2 ]

3 голосов
/ 04 июля 2010

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

  • WPF
  • SQL Server CE
  • Entity Framework
  • Sync Framework (-> SQL Server 2008 с использованием отслеживания изменений в моем случае)

Я понимаю, что вы хотите что-то более легкое - но я должен сказать, что Entity Framework & Bindings берет на себя большую часть боли из привязки данных и построенияПользовательский интерфейс, так что вы можете сосредоточиться на проблеме, а не на технологии.

Я бы использовал WCF для привязки к внешним приложениям.

3 голосов
/ 04 июля 2010

Если вам нужно какое-то локальное хранилище без каких-либо суеты, вам обязательно стоит взглянуть на SQLite .

Имеет отличную поддержку .NET , включая поддержку Entity Framework, и в основном не требует трений и не требует установки сервера или чего-либо подобного (просто включите некоторые DLL в развертывание вашего приложения - xcopy или иное).

Он также позволяет шифровать весь файл базы данных (* .s3db) для защиты его содержимого.

...