什么是WPF应用程序的最佳本地数据库解决方案?

时间:2009-06-12 15:20:02

标签: wpf xml cloud database mdf

什么是适用于一台计算机的WPF应用程序的最佳解决方案,其中各种用户登录并使用它们在本地获取/保存信息?以下是我看到选项的方法:

  • MDF 似乎是最好的选择,因为我认为你可以很好地锁定它,以便即使用户可以访问.mdf文件,他们仍然无法访问其中的数据除了通过应用程序本身。我假设.MDF文件必须与应用程序分开存在,因此将部署.exe和.mdf文件。哦,如果您使用.MDF文件,用户是否需要安装SQL Server才能使用,而不是indicated in this stackoverflow question

  • 我认为 SDF 不会被推荐,因为它有很多限制,主要用于移动存储。

  • 如果安全无关紧要,
  • XML 可能是合适的,例如一个小的单用户应用程序,用于保存本地无法保护的数据,并且该文件可以被计算机上的其他应用程序/网站轻松访问。

  • SQLite 可能是一个选择,但据我所知,这个数据库的.NET API不是那么强大,是吗?

  • .mdb 如果您需要用户也可以编辑/查看数据或使用Access生成报告,则可以选择访问。

  • 还有 IsolatedStorage 但我认为这有严重的局限性,不是吗,例如无法从其他应用程序访问它?

  • 或许使用云服务可能是可行的,而且现在很直接,需要调查

非常感谢任何反馈或想法。

5 个答案:

答案 0 :(得分:12)

SQL Server Compact版也是一个选项 - http://www.microsoft.com/Sqlserver/2005/en/us/compact.aspx

使用ClickOnce或将引擎dll复制到应用程序目录非常容易。

答案 1 :(得分:4)

我会选择SQLite。您可以在此处获取ADO.NET Compatible驱动程序:

System.Data.SQLite

答案 2 :(得分:2)

我会说SQLite。它非常轻巧,易于使用,API也很好。您始终可以使用DbLinq作为ORM。

答案 3 :(得分:1)

SQL Server Compact版本是我的选择,因为它有以下好处:

  • 您可以随应用一起分发的小型运行时库
  • 与Linq to Sql兼容(搜索“SqlMetal.exe”)
  • Visual Studio 2008的集成设计经验

作为.NET应用程序的轻量级解决方案,它是一个很好的全能者。

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

答案 4 :(得分:0)

MDF似乎确实是最灵活的解决方案,但是用户需要安装SQL server express才能使用它。

您如何计划执行CRUD流程?如果你想使用Linq to SQL,你有点受限,它只支持SQL 2005,Sql 2008和Sql Compact。

此外,应用程序是否需要断开连接,部分完全连接到互联网?这可能会对你的决定产生一些影响。

IMO,我会从SQL Server Compact版本开始,如果这太限制了,请转到sql server express。 (.MDF)