Какое лучшее решение для локальных баз данных для приложений WPF?

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

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

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

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

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

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

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

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

Поблагодарили бы за отзывы или идеи.

Ответ 1

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

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

Ответ 2

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

System.Data.SQLite

Ответ 3

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

Ответ 4

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

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

Это приятный все, как облегченное решение для .NET-приложения.

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

Ответ 5

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

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

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

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