12

对于旨在在一台计算机上使用不同用户登录并使用它们在本地获取/保存信息的 WPF 应用程序,目前最好的解决方案是什么?以下是我如何看待这些选项:

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

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

  • 如果安全性无关紧要,XML可能是合适的,例如一个小型的单用户应用程序,用于在本地保存他无论如何都不会保护的数据,并且该文件将很容易被计算机上的其他应用程序/网站访问。

  • SQLite可能是一个选择,但据我所知,该数据库的 .NET API 还不是那么健壮,是吗?

  • 如果您需要用户同时编辑/查看数据或使用 Access 生成报告, .mdb Access 可能是一个选择。

  • 还有IsolatedStorage,但我相信这有严重的限制,不是吗,例如不能从其他应用程序访问它?

  • 也许现在使用云服务可能是可行且非常简单的,但必须进行调查

将不胜感激任何反馈或想法。

4

5 回答 5

13

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

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

于 2009-06-12T15:30:33.307 回答
4

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

System.Data.SQLite

于 2009-06-12T15:23:29.377 回答
2

我会说 SQLite。它非常轻巧且易于使用,而且 API 也很好。你总是可以使用DbLinq作为 ORM。

于 2009-06-12T15:22:41.453 回答
1

SQL Server Compact 版本是我的选择,因为它具有以下优点:

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

作为 .NET 应用程序的轻量级解决方案,这是一个不错的多面手。

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

于 2009-06-12T16:39:23.123 回答
0

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

您打算如何执行 CRUD 流程?如果你想使用 Linq to SQL,你会受到官方限制,它只支持 SQL 2005、Sql 2008 和 Sql Compact。

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

IMO,我将从 SQL Server Compact 版本开始,如果这太限制移动到 sql server express。(.MDF)

于 2009-06-12T16:48:39.733 回答