【问题标题】:What is the best local-database solution for WPF applications?WPF 应用程序的最佳本地数据库解决方案是什么?
【发布时间】:2010-11-02 12:02:27
【问题描述】:

目前对于打算在一台计算机上使用的 WPF 应用程序的最佳解决方案是各种用户登录并使用它们在本地获取/保存信息?以下是我对选项的看法:

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

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

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

  • SQLite 可能是一个选择,但据我所知,用于该数据库的 .NET API 还不够强大,是吗?

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

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

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

如果有任何反馈或想法,我们将不胜感激。

【问题讨论】:

    标签: wpf xml cloud database mdf


    【解决方案1】:

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

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

    【讨论】:

    • 这和你可以用 Visual Studio 通过“添加项目,本地数据库”创建的“.ldf”文件不一样吗?
    【解决方案2】:

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

    System.Data.SQLite

    【讨论】:

    • 五个月前,LINQ-to-SQLite 似乎还没有成为现实,从那以后情况发生了变化吗?
    • 您将如何保护数据,以便使用 Firefox 的 SQLite 管理器插件 (addons.mozilla.org/en-US/firefox/addon/5817) 的用户不能只是打开它并读/写它,有没有办法做到这一点?
    • 您可以为每个用户使用一个 sqlite dbfile。
    【解决方案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 Server Express 才能使用它。

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

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

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

        【讨论】:

          猜你喜欢
          • 2010-12-08
          • 2010-09-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-11
          • 2016-08-01
          • 1970-01-01
          相关资源
          最近更新 更多