2009-06-26 9 views
51

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

私はあなたが一般的にRESTとJSON上のCouchDBと通信していることを考えるとCouchDBの

答えて

19

SharpCouchユーティリティクラスをご覧ください。

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

+0

'LitJsonを使用して終了しました。 //? ' –

+0

SharpCouchがホイールを書き換えずにJsonタスクにLitJsonを使用しているようです... – ChrisFletcher

+1

その答えは古くなっているようです。 SharpCouch:_last change 2008年8月5日 - コードが古くなっている可能性があります。 Hammock:_last commit 2011年3月の下の答えに。プロジェクトステータス:archived_。両方のプロジェクトが死んでいるように見えます。 @Daniel https://github.com/danielwertheim/mycouchには、Aspnet.Identity CoachDBを実装している人もいます。 – Kuncevic

9

を使用して管理を文書化し、私のプロジェクトの一部を構築したいと思い、私はJSON.NETを使うにはあまりにも難しいことではないでしょう想像しますそれを行うための通常のWebClient/HttpWebRequestクラスがあります。私は自分でそれを試していない、あなたを気に...

+0

ここで少し話題になっていますが、JSON.NETでの経験はどうですか? .net 3.5 sp1にJSONにデータをシリアル化するメソッドがありますか? – Developer

+0

組み込みシリアライザは使用していません。JSON.NETを少ししか使用しませんでしたが、後者はStackOverflow JSONでうまく機能しています。 –

+1

JSON.NETのLINQサポートは、JSONを固定C#クラスにデシリアライズせずに解析する場合に非常に便利です。これはLINQ-to-XMLを使用する場合とほぼ同じです。 –

10

はい。

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

ここにはgetting started with C# wiki記事へのリンクがあります。その記事の.Netラッパーへのリンクがあります。あなた自身もロールするのはかなり簡単でしょう。

+1

私はここで少し更新したい:私はwindwosノートパソコンにcouchDbをインストールし、それは非常に簡単だった。ちょうどcouchbaseサイトに行くには、ダウンロードしてインストールしてください。あなたはお知らせの布団で遊んでいます – NicoGranelli

+0

@NicoGranelli、更新していただきありがとうございます。 Windows上のCouchdbは過去2年間で大きな進歩を遂げました。 – ScottS

+0

この質問が検索で見つかりました.Wiki記事のリンクを使用して、私は[LoveSeat](https://github.com/soitgoes/LoveSeat) – Chris

3

と一緒にJSON.NETを使用しました。MS RESTスターターキットのhttpクライアントクラスをCouchDB と統合すると、本当にうまく動作します。

6

OttomanをC#で書かれたオープンソースプロジェクトに注目してください。それはまだ重い開発ですが、私は計画段階でプロジェクトのオプションとしてそれを指摘したいと思います。私は完了に近づくにつれてこの投稿を更新します。あなたはgithubにソースを見ることができます。 READMEを読んで、例と現在のバージョンで可能なことを確認してください。重く、オットマンが 自動シリアライズとJSON文字列とその逆からオブジェクト をマッピングする desrializationためのジェネリックを使用 文字列を使用SharpCouch、異なり

  • 。 クラスを継承するためにオブジェクトを持たないすべてのものは、 クラスを継承します。
  • これは、JSONのシリアル化と の逆シリアル化を処理するために、 の下のJson.Netを使用します。
  • CouchDB が返すRESTFulエラーコードを例外にマップします。
  • 計画特集:同上 オブジェクトがあるためにIDを生成するための ジェネレータが
  • 計画特集持続:ドキュメント の改訂を経て暗黙Offline Optimistic Lockを、オスマン帝国が のためにあなたを追跡するために Identity Mapを使用し、とき 例外がスローされます競合が発生します。
  • 予定されている機能:Monoと互換性があります。
  • 予定されている機能:これは道のりですが、 Map/Reduce functionsのLINQの表現については、 をJavaScriptでCouchDBに表現する予定です。

これはかなり新しいプロジェクトですが、非常にアクティブです。もちろん、私は少し偏っています。CDBのAPI

4

divanを見てみましょう。間もなくいくつかのプロジェクトで積極的に運用に入り、定期的なアップデートや修正を受けています。ハンモックは、基本的なオブジェクトの永続性の他に、次のものを提供します。

  • True POCO。あなたは 'id'プロパティも必要ありません。ハンモックはそれを内部的に追跡します。
  • ビューの生成と実行の両方を行う使いやすいAPIを含む強力なビューのサポート、およびカスタムマップ/リジェクトビューの作成のサポート。
  • 添付ファイルがサポートされています。
  • 一般的なリポジトリ<>クエリー/ビュー(例:_Design doc)をC#アプリケーションコードとともに使用できるようにするクラス。リポジトリは_designドキュメントを管理する責任があり、これはCouchDBのビューを 'stored procs'のように感じさせないようにします。
  • フルユニットテストスイート。これはプロトタイプソフトウェアではありません。
+0

couchDBにPOCOを格納する必要があります。私はDivan、DreamSeat、LoveSeat、Relaxをテストしました。私はディヴァン以外の人に問題がありました。私はVS 2010 + .NET 4です。 –

21

その後半の答えのための軽量ラッパーを、しかしHammockをチェックアウトしない - ;-)

+1

ありがとう、リラックスネットは有望そうです。 – Developer

+0

これは素晴らしいo.Oに見えます – SvenFinke

0

リラックスhttp://www.sharplearningcurve.com/wiki/Symbiote-Relax.ashxをチェックしてください。 Relaxは、CouchDB(優れた)RESTful APIの.Net API抽象化であり、ドキュメントインタラクションのためのリポジトリベースのインターフェイスと、管理タイプのタスク用のサーバーコントローラを含みます。

2

非常に使いやすいCouchDB用.NET APIは、http://code.google.com/p/skitsanoswdk/から取得できるWDK10に含まれています。これは非常に柔軟性があり、オブジェクトや純粋なjsonレベルのデータを処理できます。

2

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

0

つ以上を - CouchDBClient:https://github.com/ttutisani/CouchDBClient

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

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

私がこのフレームワークを書き始めたとき、私が見つけて試した他のものは、統一されたインターフェイスではなく、標準化されていないメソッドシグネチャ(さまざまな慣習を使って、 (文字列のみで動作するもの、オブジェクトでのみ動作するもの)、あまり抽象的でないもの(CouchDB REST APIを最初に知っていなければなりませんでした。私はそれ以来成熟したと思っていますが、少なくともこれは私の好みに合わせて設計されています。

CouchDBClientは、基礎となるAPIをあまり気にせず快適な抽象化を作成し、アプリケーションに焦点を当て、必要なオブジェクトをどのように格納および取得するのかを考えていきたいと考えています。

関連する問題