Domanda

.NET (codice gestito) può leggere e scrivere su CouchDB?

Vorrei creare una parte del mio progetto che gestisca i documenti utilizzando CouchDB

È stato utile?

Soluzione

Dai un'occhiata al SharpCouch classe di utilità.

È una semplice classe wrapper per l'API HTTP CouchDB.

Altri suggerimenti

È una risposta tardiva, ma controlla Hammock . È attivo e entrerà presto in uso in diversi progetti e sta ricevendo aggiornamenti e correzioni regolari. Oltre alla persistenza di base degli oggetti, Hammock ti offre:

  • Vero POCO. Non hai nemmeno bisogno di una proprietà 'id'; L'amaca lo segue internamente.
  • Supporto robusto per le visualizzazioni, inclusa un'API fluida di facile utilizzo che genera e esegue visualizzazioni, nonché supporto per la creazione di mappe personalizzate / riduzione delle visualizzazioni.
  • Supporto allegati.
  • Una classe Repository<> generica che ti aiuta a riunire le tue query / viste (ad es. _Design doc) con il tuo codice dell'applicazione c #. I repository sono responsabili del mantenimento di _design docs e questo aiuta a mantenere le visualizzazioni di CouchDB come processi archiviati .
  • Una suite di test di unità completa. Questo non è un prototipo di software.

Sì.

Vedi qui per istruzioni sull'installazione di CouchDB su Windows.

Ecco un link all'articolo per iniziare con l'articolo wiki C # . C'è un collegamento a un wrapper .Net in quell'articolo. Sarebbe abbastanza facile anche creare il tuo.

Dato che in genere comunichi con CouchDB su REST e JSON, immagino che non sarebbe troppo difficile usare JSON.NET e le normali classi WebClient / HttpWebRequest per farlo. Non l'ho provato da solo, intendiamoci ...

Poco in ritardo al gioco ma c'è un progetto open source per un nuovo driver scritto in C # sul client HTTP asincrono e per impostazione predefinita JSON.Net di Newtonsoft per la serializzazione (commutabile). MyCouch - Semplice client asincrono CouchDb per .Net.

Esiste un post introduttivo qui: http://danielwertheim.se/get-up-and-running-with-couchdb-and-c-using-mycouch-on-windows/

Tieni d'occhio Ottoman un progetto open source scritto in C #. È ancora in forte sviluppo, ma volevo segnalarlo come un'opzione per i progetti nelle fasi di pianificazione. Aggiornerò questo post man mano che si avvicina al completamento. Puoi visualizzare la fonte su github . Leggi il README per vedere esempi e cosa è possibile con la versione corrente.

  • A differenza di SharpCouch, che utilizza stringhe pesantemente, Ottomano usa generici per serializzazione automatica e desrializzazione per mappare un oggetto da una stringa JSON e viceversa. Tutto questo senza che i tuoi oggetti abbiano bisogno per ereditare un'interfaccia o una base Classe.
  • Utilizza Json.Net sotto a gestire la serializzazione JSON e deserializzazione.
  • Mappa i codici di errore RESTFul che CouchDB ritorna in Eccezioni.
  • Funzione pianificata: ID generatori per la generazione di ID per gli oggetti che persistono
  • Funzione pianificata: implicita Offline Blocco ottimistico tramite documento Revisioni, Ottomano utilizzerà un Mappa identità per tenere traccia di tu e genererai un'eccezione quando si verifica un conflitto.
  • Funzione pianificata: sarà compatibile con Mono.
  • Funzionalità pianificata: è lungo la strada, ma pianifico sull'avere espressioni LINQ per Funzioni mappa / riduzione esprimere a CouchDB utilizzando JavaScript.

È un progetto abbastanza nuovo, ma molto attivo. Certo, sono anche un po 'di parte. ; -)

dai un'occhiata anche a divan - un involucro leggero per il cdb api

Ho usato JSON.NET insieme a la classe client http dello starter kit MS REST da integrare in CouchDB e funziona davvero bene.

La wiki di CouchDB ha un elenco di API per C # (con le loro caratteristiche) se vuoi l'ultimo stato: http://wiki.apache.org/couchdb/Getting_started_with_C%23

API .NET molto facile da usare per CouchDB inclusa nel WDK10 che puoi prendere da http: // code.google.com/p/skitsanoswdk/ è molto flessibile e ti consente di gestire i tuoi dati su oggetti e puro livello json.

Le opzioni ( ordinate dall'ultimo aggiornamento ):

Dai un'occhiata a Relax http://www.sharplearningcurve.com/wiki/Symbiote- Relax.ashx. Relax è un & Quot; .Net API astrazione dell'API RESTful (eccellente) di CouchDB. Include un'interfaccia basata su repository per l'interazione tra documenti e un controller server per attività di tipo amministrativo. & Quot;

Ancora uno - CouchDBClient: https://github.com/ttutisani/CouchDBClient

Dichiarazione di non responsabilità: sono l'autore.

Ho cercato di rendere CouchDBClient più facile da usare con oggetti personalizzati: questo è ciò che di solito le applicazioni archiviano nel database.

Quando ho iniziato a scrivere questo framework, tutti gli altri che ho trovato e provato stavano facendo un'impressione di firme di metodi non standardizzate (denominate usando varie convenzioni e più difficili da indovinare cosa facessero), non interfacce unificate (alcune operazioni attorno alla stringa docs, mentre altri attorno a json docs), non molto flessibili (alcuni hanno funzionato solo con stringhe, altri solo con oggetti), o non molto astratti (prima hanno dovuto conoscere l'API REST di CouchDB per usarli correttamente). Sto assumendo e sperando che siano maturati da allora, ma almeno questo è progettato secondo i miei gusti.

Spero che CouchDBClient possa creare una sensazione di comoda astrazione senza preoccuparsi troppo delle API sottostanti e solo concentrarsi sulla propria applicazione e su come memorizza e recupera gli oggetti di cui ha bisogno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top