Какое решение для локальной базы данных лучше всего подходит для приложений WPF? - PullRequest
11 голосов
/ 12 июня 2009

Какое в настоящее время лучшее решение для приложений WPF, которые предназначены для использования на одном компьютере , где различных пользователей входят в них и используют их для локального получения / сохранения информации? Вот как я вижу варианты:

  • MDF может показаться лучшим выбором, так как я предполагаю, что вы можете довольно хорошо его заблокировать, чтобы даже при том, что пользователи могут получить доступ к файлу .mdf, они все равно не могут получить доступ к данным. в нем кроме как через само приложение. Я предполагаю, что файл .MDF должен существовать отдельно от приложения, поэтому будет развертывать файлы .exe и .mdf. О, если вы используете файл .MDF, требуется ли пользователю установить SQL Server, чтобы использовать его , как указано , указанное в этом вопросе о стековом потоке ?

  • Я бы подумал, что SDF не рекомендуется, поскольку он имеет ряд ограничений и используется в основном для мобильных хранилищ.

  • XML может быть подходящим, если безопасность не имеет значения, например, небольшое однопользовательское приложение для локального сохранения данных, которые он не будет защищать, и этот файл будет легко доступен для других приложений / веб-сайтов на компьютере.

  • SQLite может быть выбором, но насколько я знаю, API для .NET для этой базы данных еще не настолько надежны, не так ли?

  • .mdb Доступ может быть выбором, если вам нужно, чтобы пользователи также редактировали / просматривали данные или генерировали отчеты с помощью Access.

  • есть также IsolatedStorage но я считаю, что это имеет серьезные ограничения, не так ли, например. не можете получить к нему доступ из других приложений?

  • возможно, использование облачной службы может быть целесообразным и довольно простым в наше время, придется исследовать

Буду признателен за любые отзывы или идеи.

Ответы [ 5 ]

12 голосов
/ 12 июня 2009

SQL Server Compact также является опцией - http://www.microsoft.com/Sqlserver/2005/en/us/compact.aspx

Развертывание довольно просто с помощью ClickOnce или путем копирования библиотек движка в каталог приложения.

4 голосов
/ 12 июня 2009

Я бы выбрал SQLite. Вы можете получить драйвер, совместимый с ADO.NET, здесь:

System.Data.SQLite

2 голосов
/ 12 июня 2009

Я бы сказал, SQLite. Он невероятно легкий и простой в использовании, а API в порядке. Вы всегда можете использовать DbLinq в качестве ORM.

1 голос
/ 12 июня 2009

SQL Server Compact edition - мой выбор из-за следующих преимуществ:

  • Небольшая библиотека времени выполнения, которую вы можете распространять вместе с вашим приложением
  • Совместимо с Linq to Sql (поиск "SqlMetal.exe")
  • Интегрированный опыт проектирования с Visual Studio 2008

Это удобное универсальное решение в виде легкого решения для приложения .NET.

http://www.microsoft.com/Sqlserver/2008/en/us/compact.aspx

0 голосов
/ 12 июня 2009

MDF кажется наиболее гибким решением, но для его использования необходимо установить SQL Server Express.

Как вы планируете выполнять процессы CRUD? Если вы хотите использовать Linq to SQL, вы немного ограничены: он поддерживает только SQL 2005, Sql 2008 и Sql Compact.

Кроме того, приложение должно быть отключено, частично, полностью подключено к Интернету? Это может придать вес вашему решению.

IMO, я бы начал с выпуска SQL Server Compact и, если это слишком ограничивало, перешел на SQL Server Express. (.MDF)

...