.NET(托管代码)可以读写CouchDB吗?
我想构建一个使用CouchDB进行文档管理的项目的一部分
这是一个迟到的答案,但请看看Hammock.它很活跃,很快就会在几个项目中投入生产使用,并且会定期收到更新和修复.除了基本的对象持久性,Hammock还为您提供:
真正的POCO.你甚至不需要'id'属性; 吊床跟踪内部.
对视图的强大支持,包括易于使用的流畅API,既可生成和执行视图,也支持创建自定义地图/缩小视图.
附件支持.
一个通用Repository<>
类,可帮助您将查询/视图(即_Design doc)与c#应用程序代码一起使用.存储库负责维护_design文档,这有助于保持CouchDB视图不像存储过程那样.
完整的单元测试套件.这不是原型软件.
看一下SharpCouch实用程序类.
它是CouchDB HTTP API的简单包装类.
是.
有关在Windows上安装CouchDB的说明,请参见此处.
以下是C# wiki文章入门的链接.该文章中有一个指向.Net包装器的链接.滚动你自己也很容易.
鉴于您通常通过REST和JSON与CouchDB进行通信,我认为使用JSON.NET和普通的WebClient/HttpWebRequest类来实现它并不会太难.我自己没有尝试过,请注意......
游戏的后期不多,但有一个开源项目,用于通过异步HTTP客户端用C#编写的新驱动程序,默认情况下是Newtonsoft的JSON.Net用于序列化(可切换).MyCouch - .Net的简单异步CouchDb客户端.
这里有一个入门帖子:http://danielwertheim.se/get-up-and-running-with-couchdb-and-c-using-mycouch-on-windows/
密切关注奥斯曼一个用C#编写的开源项目.它仍处于重大发展阶段,但我想指出它是规划阶段项目的一个选择.我将更新这篇文章,因为它接近完成.您可以在github上查看源代码.阅读自述文件以查看示例以及当前版本的可能性.
与使用字符串很大的SharpCouch不同,Ottoman使用泛型进行自动序列化和反序列化,以便从JSON字符串映射对象,反之亦然.所有这些都没有您的对象需要继承接口或基类.
它使用下面的Json.Net来处理JSON序列化和反序列化.
将CouchDB返回的RESTFul错误代码映射到例外.
计划特征:Id生成器,用于为要保留的对象生成Id
计划特征:通过文档修订进行隐式离线乐观锁定,奥特曼将使用 身份地图跟踪您,并在发生冲突时抛出异常.
计划功能:它将与Mono兼容.
计划特征:这已经开始了,但我确实计划为Map/Reduce函数提供 LINQ表达式 ,您可以使用JavaScript向CouchDB表达.
这是一个相当新的项目,但非常活跃.当然,我也有点偏颇.;-)
另请看一下divan - 一款适用于cdb api的轻量级包装机