自定义持久存储?
Posted
技术标签:
【中文标题】自定义持久存储?【英文标题】:Custom persistent-storage? 【发布时间】:2009-12-25 04:08:01 【问题描述】:我需要制作一个存储数据的桌面应用程序,我希望保护这些数据,此外,用户不必安装任何数据服务器(即 SQL-Server、office 等)。
我认为 XML 是最好的主意,问题是如何在享受数据的其他酷特性的同时保护数据,即 XML literals and XLinq (VB.NET 是我一生的挚爱)。
更新:
用户不应该知道我在使用外部工具对我来说很重要。
任何关于此方法或其他方法的想法都将不胜感激。
【问题讨论】:
【参考方案1】:你考虑过SQLite吗?它可以作为 DLL 和数据文件与您的应用程序捆绑在一起 - 无需其他任何东西。
编辑:已经有一段时间了,但我相信还有一个嵌入式版本的 Firebird。不过没用过。
【讨论】:
我喜欢 SQLite 的想法,会去看看;它与实体框架兼容吗?我重新更新了关于 XML 的问题。 我不知道 SQLite 是否与 Entity-Framework 兼容(我没有使用过那个包/产品)。我有一个用于 SQLite 的 .NET 插件:sqlite.phxsoftware.com 查看他们的网站了解详细信息。 “用户不应该知道我正在使用外部工具” - 正如我所说,SQLite 将是与您的应用程序捆绑在一起的 DLL 和数据文件。我认为除非用户知道要查找什么(以及在哪里),否则他们不会知道。 DLL id 足够好,根据您提供的链接,SQLite 也与 EF 兼容!【参考方案2】:SQLite、SQL Server Compact Edition 或 SQL Server Express,如果您需要更多魅力。
它们都是可再分发的 - 您的最终用户无需安装任何东西。
至于加密,您的应用可以在检索数据库值后对其进行解密。或者如果使用 xml 文件,可以将文件加载到缓冲区中,解密并解析为 xml 文档。
【讨论】:
SQL Server Compact Edition 的可分发二进制文件有多大?我知道 Express Edition 不是微不足道的 - 您必须构建一个安装脚本来安装和配置它(如果用户不这样做)。 CE 在几个 MB 之下,最初是为像袖珍电脑这样的嵌入式应用程序设计的。 EE 可以通过 msi 静默安装以上是关于自定义持久存储?的主要内容,如果未能解决你的问题,请参考以下文章