将 CouchDB 与 .NET 结合使用
题
.NET(托管代码)可以读写 CouchDB 吗?
我想构建我的项目的一部分,使用 CouchDB 进行文档管理
解决方案
看一看的 SharpCouch 工具类。
它为HTTP的CouchDB API一个简单的包装类。
其他提示
它是一个迟到的答案,但是做检查了 吊床.它的活动和投入生产上使用的一些项目很快和定期接受更新和修正。除了基本的对象持久化,吊床给你:
- 真POCO。你甚至不需要一个'id'财产;吊床的轨道在内部。
- 强大的支持意见,包括一个易于使用的流利API,这两个产生和执行意见,并支持创建的定制地图/减少景。
- 附件支持。
- 一般
Repository<>
类,有助于把你的查询意见(即_Design doc)一起你c#应用程序的代码。仓库负责维护_design文件,这有助于保持CouchDB景的感觉 储存过程. - 一个完整的单元。这不是原型软件。
是
请参阅此处指令上的窗户安装CouchDB的。
下面是href="http://wiki.apache.org/couchdb/Getting_started_with_C%23" rel="noreferrer">开始使用C# wiki文章的
,我想这不会是太难用的 JSON.NET 和正常Web客户端/ HttpWebRequest的类来做到这一点。我还没有尝试过自己,你要知道...
虽然有点晚了,但有一个开源项目,用于通过异步 HTTP 客户端和默认情况下使用 Newtonsoft 的 JSON.Net 进行序列化(可切换)的 C# 编写的新驱动程序。 MyCouch - 适用于 .Net 的简单异步 CouchDb 客户端.
这里有一篇入门文章: http://danielwertheim.se/get-up-and-running-with-couchdb-and-c-using-mycouch-on-windows/
保持眼睛 奥斯曼 一个开放源码项目编写的。它仍然是在重大发展,但我想指出它作为一个选项的项目在规划阶段。我会更新这一员额,因为它得到接近完成。你可以查看的来源 想.阅读自述,请参见例子及什么是可能与目前的版本。
- 不像SharpCouch,它使用的字符串 重,奥斯曼帝国采用泛型为 自动化和 desrialization进行映射的对象 从JSON串反之亦然。所有这一切都没有你需要的对象 继承了一个接口或基 类。
- 它使用Json.Net 下来 处理id化和 反.
- 地图的宁静的错误代码CouchDB 返回到例外情况。
- 计划的特点:Id 发电机产生的Id 的对象,正在坚持
- 计划的特点:隐 离线 乐观的锁 通过的文件 修订版,奥斯曼帝国将使用一个 身份地图 来跟踪 你会把一个异常的时候 冲突发生。
- 计划的特点:它将单兼容。
- 计划的特点:这是下降的道路,但是我做计划 在具有皇宫表达式 地图/降低职 这你 快到CouchDB使用JavaScript。
这是一个相当新的项目,但非常活跃。当然,我有点偏见。;-)
也看看沙发椅 - 重量轻的包装为CDB API
我已经使用JSON.NET结合 在MS REST入门工具包的HTTP客户端类集成到CouchDB的 和它的作品真的很好。
CouchDB的wiki有API为C#中的列表(及其功能),如果你想要最新的状态:的 http://wiki.apache.org/couchdb/Getting_started_with_C%23
很容易的CouchDB纳入WDK10,你可以从 HTTP抢使用.NET API:// code.google.com/p/skitsanoswdk/ 的是非常灵活的,允许你来处理对象和纯JSON级别的数据。
选项(订购的最新更新):
- Skitsanos Webware开发工具包 http://code.google.com/p/skitsanoswdk/source/browse/trunk/WDK10/WDK.API.CouchDb/ 最近的更新。2012年
- 放松-net/吊床 http://code.google.com/p/relax-net/ 最近的更新。2011
- CouchDB.Net http://couchdbnet.codeplex.com/ 最近的更新。2010年
- 奥斯曼 https://github.com/sinesignal/ottoman 最近的更新。2010年
- 沙发 https://github.com/foretagsplatsen/Divan 最新更新2010年七月
- SharpCouch http://code.google.com/p/couchbrowse/source/browse/trunk/SharpCouch/SharpCouch.cs 最近的更新。2008年
签出放松 http://www.sharplearningcurve.com/wiki/Symbiote- Relax.ashx 。放松是“CouchDB的(优)的RESTful API的.NET API的抽象。它包括文件交互和行政类型任务的服务器控制器基于储存库的接口。”
一个更 - CouchDBClient: https://github.com/ttutisani/CouchDBClient
免责声明:我是作者
。我试图让CouchDBClient更友好的自定义对象的工作 - 这就是通常应用商店数据库中的
当我开始写这个框架返回,我发现并试图分别做了非标准化的方法签名的印象(使用不同的约定,更难猜测他们做了什么命名)所有其他人,没有统一的接口(左右字符串的一些操作文档,而周围的JSON文档等),不是很灵活(有的只用绳子,其他人只能使用对象),或者不是很抽象的工作(必须知道CouchDB的REST API首先要正确地使用它们)。我假设,并希望此后他们已经成熟,但至少这一个被设计到了我的口味。
我希望CouchDBClient可以创造出舒适的抽象的感觉,而不必担心底层的API太多,只是专注于你的应用程序,它如何存储和检索对象的需要。