什么是适用于一台计算机的WPF应用程序的最佳解决方案,其中各种用户登录并使用它们在本地获取/保存信息?以下是我看到选项的方法:
MDF 似乎是最好的选择,因为我认为你可以很好地锁定它,以便即使用户可以访问.mdf文件,他们仍然无法访问其中的数据除了通过应用程序本身。我假设.MDF文件必须与应用程序分开存在,因此将部署.exe和.mdf文件。哦,如果您使用.MDF文件,用户是否需要安装SQL Server才能使用,而不是indicated in this stackoverflow question?
我认为 SDF 不会被推荐,因为它有很多限制,主要用于移动存储。
XML 可能是合适的,例如一个小的单用户应用程序,用于保存本地无法保护的数据,并且该文件可以被计算机上的其他应用程序/网站轻松访问。
SQLite 可能是一个选择,但据我所知,这个数据库的.NET API不是那么强大,是吗?
.mdb 如果您需要用户也可以编辑/查看数据或使用Access生成报告,则可以选择访问。
还有 IsolatedStorage 但我认为这有严重的局限性,不是吗,例如无法从其他应用程序访问它?
或许使用云服务可能是可行的,而且现在很直接,需要调查
非常感谢任何反馈或想法。
答案 0 :(得分:12)
SQL Server Compact版也是一个选项 - http://www.microsoft.com/Sqlserver/2005/en/us/compact.aspx
使用ClickOnce或将引擎dll复制到应用程序目录非常容易。
答案 1 :(得分:4)
我会选择SQLite。您可以在此处获取ADO.NET Compatible驱动程序:
答案 2 :(得分:2)
我会说SQLite。它非常轻巧,易于使用,API也很好。您始终可以使用DbLinq作为ORM。
答案 3 :(得分:1)
SQL Server Compact版本是我的选择,因为它有以下好处:
作为.NET应用程序的轻量级解决方案,它是一个很好的全能者。
答案 4 :(得分:0)
MDF似乎确实是最灵活的解决方案,但是用户需要安装SQL server express才能使用它。
您如何计划执行CRUD流程?如果你想使用Linq to SQL,你有点受限,它只支持SQL 2005,Sql 2008和Sql Compact。
此外,应用程序是否需要断开连接,部分完全连接到互联网?这可能会对你的决定产生一些影响。
IMO,我会从SQL Server Compact版本开始,如果这太限制了,请转到sql server express。 (.MDF)