2009-06-26 118 views

回答

9

既然你通常使用CouchDB通過REST和JSON溝通,我想這不會是太難用了JSON.NET和普通的WebClient/HttpWebRequest類來完成它。我沒有自己嘗試過,介意你...

+0

在這裏評論一個小題目 - 你的經驗與JSON.NET有什麼關係? .net 3.5 sp1是否有方法將數據序列化爲JSON? – Developer 2009-06-26 17:07:58

+0

我沒有使用內置的序列化程序,而且我只使用了JSON.NET - 但後者在StackOverflow JSON中運行良好。 – 2009-06-26 17:16:55

+1

如果您想解析JSON而不將其反序列化爲固定的C#類,那麼JSON.NET的LINQ支持非常方便 - 它與使用LINQ-to-XML非常相似。 – 2009-06-26 17:47:03

10

是的。

有關在Windows上安裝CouchDB的說明,請參閱here

這裏是getting started with C# wiki文章的鏈接。在那篇文章中有一個到.net包裝的鏈接。推出自己的產品也很容易。

+1

我想在這裏做一個小小的更新:我在我的windwos筆記本電腦上安裝了couchDb,這非常簡單。只要去couchbase網站,下載並安裝。您將在日記中與蒲團玩 – NicoGranelli 2011-07-11 02:55:51

+0

@NicoGranelli,感謝您的更新。窗戶上的Couchdb在過去的兩年裏已經走過了很長一段路。 – ScottS 2011-07-11 16:20:08

3

我已經使用JSON.NET與 MS REST入門套件的http客戶端類集成到CouchDB ,它工作得很好。

6

請關注Ottoman用C#編寫的開源項目。它仍處於嚴重的發展階段,但我想在計劃階段將其作爲項目的一個選項。隨着它接近完成,我會更新這篇文章。您可以在github上查看源代碼。閱讀自述文件以查看示例以及當前版本的可能性。

  • 不同於SharpCouch,它使用 重,奧斯曼用來 自動序列化和 desrialization用於從JSON字符串映射對象 反之亦然泛型字符串。 所有這些沒有您的對象需要 繼承關閉類或基地 類。
  • 它使用Json.Net下面的 來處理JSON序列化和 反序列化。
  • 將CouchDB 返回的RESTFul錯誤代碼映射到異常。
  • 計劃的特點:通過文件隱Offline Optimistic Lock 修訂,奧斯曼將使用 Identity Map保持爲 您的軌道,並會拋出異常時 :身份證 發電機生成ID,用於 對象被持久化
  • 計劃功能發生衝突。
  • 計劃功能:它將是單聲道兼容的。
  • 計劃中的功能:這是在路上,但我確實計劃 有LINQ表達式 Map/Reduce functions您 使用JavaScript表示到CouchDB。

這是一個相當新的項目,但非常活躍。當然,我也有點偏頗。;-)

21

它是一種遲到的回答重量輕的包裝,但檢查出Hammock。它很活躍,很快就會投入到幾個項目的生產使用中,並且會定期接受更新和修復。除了基本的對象持久性,Hammock給你:

  • 真正的POCO。你甚至不需要'id'屬性;吊牀跟蹤內部。
  • 強大的支持視圖,包括一個易於使用的流利的API,既生成AND執行視圖,並支持創建自定義地圖/減少視圖。
  • 附件支持。
  • 一個通用的存儲庫<>類,它有助於將查詢/視圖(即_Design doc)與您的c#應用程序代碼一起使用。倉庫負責維護_design文檔,這有助於保持CouchDB視圖不像「存儲過程」那樣。
  • 完整的單元測試套件。這不是原型軟件。
2

的選項(通過最新更新訂購):

0

另外一個問題 - CouchDBClient:https://github.com/ttutisani/CouchDBClient

聲明:我是作者。

我試圖讓CouchDBClient更加友好,可以使用自定義對象 - 這就是通常應用程序存儲在數據庫中的東西。

當我開始編寫這個框架時,我發現和嘗試的所有其他人都會對非標準化方法簽名(使用各種約定進行命名,難以猜測他們做了什麼)產生印象,而不是統一接口(某些操作字符串docs,而其他人則圍繞着json docs),不是很靈活(有些只使用字符串,有些只使用對象),或者不是很抽象(必須先了解CouchDB REST API才能正確使用它們)。我假設並希望從那時起他們已經成熟了,但至少這個是根據我的口味設計的。

我希望CouchDBClient可以創建一個舒適的抽象感,而不用擔心底層API太多,只關注你的應用程序,以及它如何存儲和檢索它需要的對象。