web-dev-qa-db-fra.com

Utilisez CouchDB avec .NET

Le .NET (code managé) peut-il lire et écrire sur CouchDB?

Je voudrais construire une partie de mon projet qui fait de la gestion documentaire en utilisant CouchDB

52
Developer

Jetez un œil à la classe utilitaire SharpCouch .

Il s'agit d'une classe wrapper simple pour l'API HTTP CouchDB.

19
BengtBe

C'est une réponse tardive, mais vérifiez Hamac . Il est actif et entre bientôt en production sur plusieurs projets et reçoit régulièrement des mises à jour et des correctifs. Outre la persistance des objets de base, Hammock vous offre:

  • Vrai POCO. Vous n'avez même pas besoin d'une propriété 'id'; Hamac suit cela en interne.
  • Prise en charge robuste des vues, y compris une API fluide facile à utiliser qui génère et exécute des vues, et prise en charge de la création de vues de carte/réduction personnalisées.
  • Prise en charge des pièces jointes.
  • Un générique Repository<> classe qui aide à rassembler vos requêtes/vues (c'est-à-dire _Design doc) avec votre code d'application c #. Les référentiels sont responsables de la maintenance des documents _design, ce qui empêche les vues CouchDB de se sentir comme procs stockés .
  • Une suite complète de tests unitaires. Ce n'est pas un logiciel prototype.
21
nicknystrom

Oui.

Voir ici pour des instructions sur l'installation de CouchDB sur Windows.

Voici un lien vers l'article wiki pour commencer avec C # . Il y a un lien vers un wrapper .Net dans cet article. Il serait également assez facile de rouler le vôtre.

10
ScottS

Un peu tard pour le jeu, mais il existe un projet open source pour un nouveau pilote écrit en C # sur le client HTTP asynchrone et par défaut JSON.Net de Newtonsoft pour la sérialisation (commutable). MyCouch - Client asynchrone CouchDb simple pour .Net.

Un article de démarrage existe ici: http://danielwertheim.se/get-up-and-running-with-couchdb-and-c-using-mycouch-on-windows/

9
Daniel

Étant donné que vous communiquez généralement avec CouchDB sur REST et JSON, j'imagine que ce ne serait pas trop difficile à utiliser JSON.NET et le WebClient/HttpWebRequest normal des cours pour le faire. Je ne l'ai pas essayé moi-même, attention ...

9
Jon Skeet

Gardez un œil sur Ottoman un projet open-source écrit en C #. Il est encore en développement, mais je voulais le signaler comme une option pour les projets en phase de planification. Je mettrai à jour ce message à mesure qu'il se rapproche de l'achèvement. Vous pouvez voir la source sur github . Lisez le README pour voir des exemples et ce qui est possible avec la version actuelle.

  • Contrairement à SharpCouch, qui utilise beaucoup de chaînes, Ottoman utilise des génériques pour la sérialisation automatique et la désrialisation pour mapper un objet à partir d'une chaîne JSON et vice versa. Tout cela sans que vos objets aient besoin d'hériter d'une interface ou d'une classe de base.
  • Il utilise Json.Net en dessous pour gérer la sérialisation et la désérialisation JSON.
  • Mappe les codes d'erreur RESTFul que CouchDB renvoie dans les exceptions.
  • Fonctionnalité prévue: générateurs d'ID pour générer des ID pour les objets persistants
  • Fonctionnalité prévue: implicite verrouillage optimiste hors ligne via les révisions du document, Ottoman utilisera un carte d'identité pour garder une trace pour vous et lèvera une exception lorsqu'un conflit se produit.
  • Fonction prévue: il sera compatible mono.
  • Fonctionnalité prévue: Ceci est en cours de route, mais je prévois d'avoir des expressions LINQ pour fonctions Map/Reduce que vous exprimez à CouchDB en utilisant JavaScript.

C'est un projet assez nouveau, mais très actif. Bien sûr, je suis aussi un peu biaisé. ;-)

6
Dale Ragan

jetez également un œil à divan - un wrapper léger pour l'api cdb

5
kolosy

J'ai utilisé JSON.NET en conjonction avec la classe client http du kit de démarrage MS REST pour s'intégrer à CouchDB et cela fonctionne très bien.

3
Dokie

Le wiki de CouchDB a une liste d'API pour C # (avec leurs fonctionnalités) si vous voulez le dernier état: http://wiki.Apache.org/couchdb/Getting_started_with_C%2

3
Peter

API .NET très facile à utiliser pour CouchDB incluse dans WDK10 que vous pouvez récupérer http://code.google.com/p/skitsanoswdk/ elle est très flexible et vous permet de traiter vos données sur les objets et le niveau json pur.

2
Skitsanos

Les options ( commandées par la dernière mise à jour):

2
JP Hellemons

Un de plus - CouchDBClient: https://github.com/ttutisani/CouchDBClient

Avertissement: je suis l'auteur.

J'ai essayé de rendre CouchDBClient plus convivial pour travailler avec des objets personnalisés - c'est ce que les applications stockent généralement dans la base de données.

À l'époque où j'ai commencé à écrire ce cadre, toutes les autres que j'ai trouvées et essayées faisaient une impression de signatures de méthodes non standardisées (nommées à l'aide de diverses conventions et plus difficiles à deviner ce qu'elles faisaient), pas d'interfaces unifiées (certaines opérations autour de documents de chaîne, tandis que d'autres autour de json docs), pas très flexibles (certains ne fonctionnaient qu'avec des chaînes, d'autres uniquement avec des objets), ou pas très abstraits (devaient d'abord connaître CouchDB REST API pour les utiliser correctement). I Je suppose et j'espère qu'ils ont mûri depuis lors, mais au moins celui-ci est conçu à mon goût.

J'espère que CouchDBClient peut créer un sentiment d'abstraction confortable sans trop se soucier de l'API sous-jacente, et se concentrer uniquement sur votre application, et sur la façon dont elle stocke et récupère les objets dont elle a besoin.

0
Tengiz

Découvrez Relax http://www.sharplearningcurve.com/wiki/Symbiote-Relax.ashx . Relax est une "abstraction .NET de l'API RESTful (excellente) de CouchDB. Elle comprend une interface basée sur le référentiel pour l'interaction des documents et un contrôleur de serveur pour les tâches de type administratif."

0
Daniel Mohl