-2

我写了一个在启动时自动运行的提醒程序。我想知道除了 SQL-Server 之外是否有其他方法可以存储事件、日期和时间数据。我不想在这项工作中使用 SQL-Server,因为我认为 SQL-Server 对于这个简单的任务来说非常大。我认为我可以使用文件在其中存储数据。你怎么看待这件事?

4

4 回答 4

3

一些常用的信息存储方式:

  • 作为一个文件。您有很多选项可以存储文件例如,用户目录和程序目录。进一步解释herehere。我更喜欢使用序列化程序(xml 或 json)。
  • 作为注册表项。您将信息存储为键值对。
  • 在轻量级数据库中:
    • RavenDB:面向文档,以json格式存储数据
    • SQLite:关系;我推荐这个SQLite Admin用于管理目的

注册表项对用户操作更安全。另一方面,文件可以很容易地删除。

您始终可以选择加密您的信息。

附带说明一下,您还可以使用PostSharp声明要存储在注册表中的变量。代码变成了这样:

[RegistryBacking]
private bool _boolean;

如果您需要,我可以稍后提供代码......当我再次回家时。

于 2012-02-11T22:52:51.903 回答
1

XML。.NET 具有使处理 xml 文件变得容易的类。如果您要保存结构化数据,那么 XML 可能是您最好的选择。

于 2012-02-11T23:11:09.360 回答
1

对于坚持的部分

从此文档(管理用户数据部署指南,下载)

Windows 将LocalLocalLow文件夹用于不随用户漫游的应用程序数据。通常,这些数据要么是特定于机器的,要么是太大而无法漫游。

Windows 使用该Roaming文件夹存储特定于应用程序的数据,例如自定义词典,这些数据独立于机器并应随用户配置文件一起漫游。

因此,我建议使用AppData\Roaming并保存到文件,因为我认为“提醒应用程序”是用户特定的。例如,域用户会认为这很有价值(同步到服务器)。

Local并且LocalLow(后者用于低完整性模式,用于特权降低的应用程序)将更适合一些可以即时计算的机器/安装特定数据。

Registry对于一些少量的键来说似乎很棒,但似乎不是这种使用的最佳选择。

还有另一个选项 - IsolatedStorage,当提到的选项不适用时应该使用它,例如使用 ClickOnce 部署时。

对于如何将数据保存到文件的部分......好吧,选择你最喜欢的。如果您想要更多的控制和功能,您可以使用非常轻量级的 SQLite 数据库,或者如果您认为使用 SQLite 过大,则可以只使用 XML 序列化文件。或任何其他可行的选择。

于 2012-02-11T23:15:02.297 回答
1

出于非常相似的原因,我尝试了一些易于部署的数据库,但却使用了我所拥有的知识。

VistaDB 3.x 和 4是我的首选,因为它们与 SQL Server 非常兼容,并且允许我随时切换到 sql server。这也支持EF!!!

接下来是Versant 的 db4o, 它非常方便。我主要将它用于快速原型设计,但我已经部署到几个小型解决方案,非常适合您的应用程序。

我希望这会有所帮助!

于 2012-02-11T23:56:26.977 回答