【发布时间】:2010-05-09 21:16:12
【问题描述】:
为 .NET 桌面应用程序存储数据的最佳或首选方式是什么?我知道这可能取决于我将如何使用该应用程序,但我只是在寻找一种简单易用的方法来为 .NET 应用程序存储数据。
【问题讨论】:
为 .NET 桌面应用程序存储数据的最佳或首选方式是什么?我知道这可能取决于我将如何使用该应用程序,但我只是在寻找一种简单易用的方法来为 .NET 应用程序存储数据。
【问题讨论】:
【讨论】:
这在某种程度上取决于数据的性质和您的“目标受众”。
如果这是大量数据,也许文件存储不是你想要的,你想看看类似数据库的存储。
如果是一些最小的用户选择集,经常被读取,并且被限制写入,那么注册表是一个不错的选择。
如果您在企业环境中,您还需要了解阻止您在用户配置文件中存储大量数据的限制(策略)。
如果您希望用户能够选择文件,请允许用户将数据存储在My Documents 中,但要从用户那里获取确切位置。技术数据最好存储在“本地应用程序数据”或“隔离存储”中。
【讨论】:
您可能会发现NHibernate 适合您的需求。 NHibernate 是一种 ORM,它基本上将您的对象保存在数据库中(几乎可以是任何风格,但 SQL Server Compact Edition 将是独立桌面应用程序的合适选择)并为您重构它们。
我个人不喜欢或不使用 ORM,但它们是一种成熟且流行的技术,并且由于它们不透明地封装了底层数据库/存储机制,因此它们使这个决定对应用程序开发人员来说不太重要。您可以从 SQL Server CE 之上的 NHibernate 开始,如果 SqlCe 由于某种原因无法正常工作,您可以切换数据库而无需更改程序的其余部分。
当然,您不必使用 NHibernate,ADO.NET 类提供基本相同的数据库独立性。
【讨论】: