【问题标题】:Where to save application data in .NET application在 .NET 应用程序中保存应用程序数据的位置
【发布时间】:2011-01-10 18:42:42
【问题描述】:

我的应用程序类似于联系人管理器。假设用户可以输入带有地址的联系人。我有将我的联系人保存到文件的代码和技术。但是我应该把那个文件保存在哪里呢?

考虑到这是一个在 Windows 上运行的 .NET 应用程序。我的文件应该在用户文件夹的 AppData 中结束吗?我应该使用隔离存储(如here 所述)吗?还有什么?推荐的做法是什么?

【问题讨论】:

  • 如果您希望您的用户或其他应用程序轻松找到此联系人文件,您可能需要使用 AppData。对于这个特定问题,隔离存储似乎“太强大”了。
  • 我可能会将信息存储在数据库中。这画不出来了?否则,您将从使用其中一种获得什么好处?据我所知,它基本上只是两个不同的文件夹?
  • @Chris O:在 .NET 中,如何访问 AppData 文件夹?我的意思是,是否有一些 .NET 类给了我文件夹(而不是去 C:\Users\etc 硬编码)?
  • 您使用Environment.GetFolderPath 获取AppData 文件夹的路径。在SpecialFolder 的枚举中可以找到一个示例。

标签: .net persistence isolatedstorage application-data


【解决方案1】:

我最终使用了帕特里克建议的解决方案:

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)

【讨论】:

    【解决方案2】:

    您有多种选择;正如您所说,隔离存储就是其中之一。您还可以使用用户设置框架功能并将数据保存为数据块或 XML。

    您还可以查看 SqlCompact 以获得非常轻量级的进程内数据库。然后,您可以将所有用户联系人保存在单个数据库中,该数据库可以存在,例如在与应用程序相同的目录中;您可以轻松地将 EF4 之类的东西用于您的 DAL。

    不过,这可能需要更多的努力,因为听起来你目前的架构已经完成了 99% 的工作。

    【讨论】:

    • 嗯,我正在放弃基于 SQL 的解决方案,因为它需要太多时间和精力(为 ORM 构建域模型,使用 ORM 的怪癖)。我正在使用 Karvonite,它让我可以专注于应用程序本身。
    • 同时,我再次切换 :) 现在使用 SterlingDB 和 Silverlight,使用独立存储非常有效。该项目一开始有点不稳定。
    猜你喜欢
    • 2011-05-07
    • 1970-01-01
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    • 2011-03-03
    • 1970-01-01
    相关资源
    最近更新 更多