web-dev-qa-db-ja.com

.NETでCouchDBを使用する

.NET(マネージコード)はCouchDBを読み書きできますか?

CouchDBを使用してドキュメント管理を行うプロジェクトの一部を構築したい

52
Developer

SharpCouch ユーティリティクラスを見てください。

これは、CouchDB HTTP APIの単純なラッパークラスです。

19
BengtBe

遅い回答ですが、チェックアウトしてください Hammock 。すぐにアクティブになり、すぐにいくつかのプロジェクトで実稼働で使用され、定期的な更新と修正が行われています。基本的なオブジェクトの永続性に加えて、Hammockは以下を提供します。

  • 真のPOCO。 「id」プロパティさえ必要ありません。ハンモックはそれを内部的に追跡します。
  • ビューの生成と実行の両方を行う使いやすい流APIなAPIや、カスタムマップ/縮小ビューの作成のサポートなど、ビューの強力なサポート。
  • 添付ファイルのサポート。
  • 汎用Repository<>クエリ/ビュー(つまり、_Designドキュメント)をC#アプリケーションコードと一緒に使用するのに役立つクラス。リポジトリは_design docsを維持する責任があり、これはCouchDBビューがstored procsのように感じないようにするのに役立ちます。
  • 完全な単体テストスイート。これはプロトタイプソフトウェアではありません。
21
nicknystrom

はい。

WindowsにCouchDBをインストールする手順については、 here を参照してください。

C#入門 wiki記事へのリンクがあります。その記事には、.Netラッパーへのリンクがあります。独自のロールも簡単にできます。

10
ScottS

ゲームには少し遅れましたが、非同期HTTPクライアントとデフォルトでシリアル化用のNewtonsoftのJSON.Net(切り替え可能)を介してC#で記述された新しいドライバーのオープンソースプロジェクトがあります。 MyCouch-.Net用のシンプルな非同期CouchDbクライアント

開始の投稿はここにあります: http://danielwertheim.se/get-up-and-running-with-couchdb-and-c-using-mycouch-on-windows/

9
Daniel

一般的にRESTおよびJSONを介してCouchDBと通信することを考えると、 JSON.NET と通常のWebClient/HttpWebRequestを使用するのはそれほど難しくないと思います。私はそれを自分で試したことはありません。

9
Jon Skeet

オットマン C#で書かれたオープンソースプロジェクトに注目してください。まだ開発中ですが、計画段階のプロジェクトのオプションとして指摘したかったのです。完成に近づいたら、この投稿を更新します。ソースは github で表示できます。 READMEを読んで、現在のバージョンで可能な例と内容を確認してください。

  • 文字列を頻繁に使用するSharpCouchとは異なり、Ottomanは、JSON文字列からオブジェクトをマッピングするための自動シリアル化とシリアル化のジェネリックを使用します。これはすべて、オブジェクトがインターフェイスまたは基本クラスから継承する必要がない場合です。
  • 下のJson.Netを使用して、JSONのシリアル化と逆シリアル化を処理します。
  • CouchDBが例外に返すRESTFulエラーコードをマップします。
  • 計画機能:永続化されるオブジェクトのIDを生成するためのIDジェネレーター
  • 計画中の機能:暗黙的 オフラインオプティミスティックロック ドキュメントリビジョンを介して、Ottomanは IDマップ を使用して追跡し、競合が発生した場合に例外をスローします。
  • 計画中の機能:Mono互換になります。
  • 計画中の機能:これは順調ですが、JavaScriptを使用してCouchDBに表現する Map/Reduce functions のLINQ式を使用する予定です。

これはかなり新しいプロジェクトですが、非常に活発です。もちろん、私も少し偏っています。 ;-)

6
Dale Ragan

divan -cdb apiの軽量ラッパーも見てください

5
kolosy

私はJSON.NETをMS RESTスターターキットのhttpクライアントクラスと組み合わせて使用​​してCouchDBに統合しました。

3
Dokie

CouchDBのwikiには、最新のステータスが必要な場合にC#のAPIのリスト(機能を含む)があります。 http://wiki.Apache.org/couchdb/Getting_started_with_C%2

3
Peter

http://code.google.com/p/skitsanoswdk/ から取得できるWDK10に含まれている非常に使いやすいCouchDB用の.NET APIオブジェクトと純粋なjsonレベル。

2
Skitsanos

オプション(最新の更新順):

2
JP Hellemons

もう1つ-CouchDBClient: https://github.com/ttutisani/CouchDBClient

免責事項:私は著者です。

CouchDBClientをカスタムオブジェクトで操作しやすくすることを試みました。これは通常、アプリケーションがデータベースに格納するものです。

このフレームワークを書き始めたとき、私が見つけて試した他のすべては、統一されたインターフェース(文字列ドキュメントに関するいくつかの操作、他のjson docs)、非常に柔軟ではない(文字列のみで動作するもの、オブジェクトのみで動作するもの)、または非常に抽象的ではありません(CouchDB REST APIを最初に正しく使用する必要があります)。彼らがそれ以来成熟していると仮定し、望んでいますが、少なくともこれは私の好みに合わせて設計されています。

CouchDBClientが、基になるAPIについてあまり心配することなく、快適な抽象化の感覚を作成し、アプリケーションと、必要なオブジェクトの格納および取得方法に集中することを望んでいます。

0
Tengiz

Relax http://www.sharplearningcurve.com/wiki/Symbiote-Relax.ashx をご覧ください。 Relaxは、「CouchDBの(優れた)RESTful APIの.Net API抽象化です。ドキュメント相互作用用のリポジトリベースのインターフェイスと、管理タイプのタスク用のサーバーコントローラーが含まれています。」

0
Daniel Mohl