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
Jetez un œil à la classe utilitaire SharpCouch .
Il s'agit d'une classe wrapper simple pour l'API HTTP CouchDB.
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:
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 .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.
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/
É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 ...
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.
C'est un projet assez nouveau, mais très actif. Bien sûr, je suis aussi un peu biaisé. ;-)
jetez également un œil à divan - un wrapper léger pour l'api cdb
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.
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
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.
Les options ( commandées par la dernière mise à jour):
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.
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."