我正在尝试为符合多个标准的商业产品开发数据管理解决方案.标准和我的推理如下:
解决方案应该是C#或支持C#
以JSON格式管理数据
没有外部架构维护
能够将部分或全部数据缓存到内存中并持久保存到磁盘
不需要额外安装
如果解决方案涉及第三方软件,则许可证必须支持免费的商业用途
要求#1:我的应用程序是用C#编写的,我希望任何解决方案都不涉及与其他语言的应用程序,库或代码集成.
要求2:我想要使用几个基于JSON的工具和库,所以我需要一个解决方案,其中数据可以容易地转换为JSON或从JSON转换.
要求3:我想避免使用关系数据库解决方案带来的架构维护.我更喜欢在代码中管理不匹配的数据到对象映射,并让代码更新旧数据,而不是单独管理模式更新.
要求#4:我要求始终将部分或全部数据加载到内存中,并将所有数据保存到磁盘.数据是否在内存中持续存在应该是每种数据类型可选的.
要求#5:安装我的产品时,我不希望进行任何二次安装或运行除我的应用程序之外的任何外部服务.一个完全独立的解决方案是最好的.
要求#6:预期用途是用于分布式商业产品.我宁愿避免许多第三方解决方案带来的任何额外费用或许可问题.
到目前为止,我尝试了几种解决方案 最初我没有那么多限制,并且使用了SQLite.NET并且它的使用并不令人不愉快,但架构维护和数据格式的开销超出了我的预期.我调查了很多NoSQL解决方案(例如RavenDB),其他第三方解决方案(Karvonite)和简单的JSON文件存储实现,但我对它们中的任何一个都不满意.
是否存在我缺少的自定义方法或解决方案,其他人已成功使用?我希望我只是忽略了我所追求的选项,并且那些NoSQL和.NET专家在这方面有足够的经验指出我正确的方向.
编辑:如果任何原始评论员感到困惑,我更新了问题和标题,以更好地遵守SO的政策.