Question

.NET (code géré) peut-il lire et écrire dans CouchDB?

J'aimerais construire une partie de mon projet qui gère le document à l'aide de CouchDB

Était-ce utile?

La solution

Consultez le SharpCouch . classe utilitaire.

C’est une simple classe wrapper pour l’API HTTP CouchDB.

Autres conseils

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

  • True 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 simple à utiliser qui génère à la fois des vues AND, et prise en charge de la création de vues personnalisées mappées / réduites.
  • Prise en charge des pièces jointes.
  • Une classe générique Repository<> qui aide à rassembler vos requêtes / vues (_design doc) avec votre code d'application c #. Les référentiels sont responsables de la maintenance de la documentation _design. Cela permet d'éviter que les vues de CouchDB ne se sentent comme des procédures stockées .
  • Une suite complète de tests unitaires. Ce n’est pas un logiciel prototype.

Oui.

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

Voici un lien vers l'article démarrer avec C # . Il existe un lien vers un wrapper .Net dans cet article. Ce serait aussi très facile de rouler le vôtre.

Étant donné que vous communiquez généralement avec CouchDB via REST et JSON, j'imagine qu'il ne serait pas trop difficile d'utiliser JSON.NET et les classes normales WebClient / HttpWebRequest pour le faire. Je n'ai pas essayé moi-même, remarquez bien ...

Peu de retard dans 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, le fichier JSON.Net de Newtonsoft pour la sérialisation (commutable). MyCouch - Client CouchDb asynchrone simple pour .Net.

Un article de mise en route existe ici: http://danielwertheim.se/get-up-and-running-with-couchdb-and-c-using-mycouch-on-windows/

Surveillez Ottoman un projet open-source écrit en C #. Il est encore en plein développement, mais je voulais le signaler comme une option pour les projets en phase de planification. Je mettrai à jour ce post à mesure qu'il se termine. Vous pouvez afficher la source sur github . Lisez le fichier README pour voir des exemples et voir ce qu’il est possible de faire avec la version actuelle.

  • Contrairement à SharpCouch, qui utilise des chaînes fortement, Ottoman utilise des génériques pour la sérialisation automatique et desrialization pour mapper un objet à partir d'une chaîne JSON et vice versa. Tout cela sans avoir besoin de vos objets hériter d'une interface ou d'une base classe.
  • Il utilise Json.Net en dessous pour gérer la sérialisation JSON et désérialisation.
  • Mappe les codes d'erreur RESTFul que CouchDB retourne à Exceptions.
  • Fonctionnalité prévue: ID générateurs pour générer des ID pour les objets étant persistés
  • Fonctionnalité prévue: implicite hors connexion Verrouillage optimiste via Document Révisions, Ottoman utilisera un Carte d'identité pour garder une trace de vous et allez jeter une exception lorsque un conflit se produit.
  • Fonctionnalité prévue: il sera compatible Mono.
  • Fonctionnalité prévue: c'est en cours de route, mais je planifie d'avoir des expressions LINQ pour Fonctions de mappage / réduction que vous exprimer à CouchDB en utilisant JavaScript.

C’est un projet relativement nouveau, mais très actif. Bien sûr, je suis aussi un peu partial. ; -)

jetez également un coup d'oeil à divan , un wrapper léger pour les api cdb

J'ai utilisé JSON.NET en conjonction avec la classe de clients http du kit de démarrage MS REST à intégrer à CouchDB et ça marche vraiment bien.

Le wiki de CouchDB contient une liste d'API pour C # (avec leurs fonctionnalités) si vous souhaitez obtenir le dernier statut: http://wiki.apache.org/couchdb/Getting_started_with_C%23

Très facile à utiliser .NET API for CouchDB inclus dans WDK10 que vous pouvez récupérer à partir de http: // code.google.com/p/skitsanoswdk/ , il est très flexible et vous permet de gérer vos données sur des objets et au niveau JSON pur.

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

Découvrez Relax http://www.sharplearningcurve.com/wiki/Symbiote- Relax.ashx . Relax est une & Quot; API .Net abstraite de la (excellente) API de CouchDB (excellente) RESTful. Il comprend une interface basée sur un référentiel pour l’interaction de documents et un contrôleur de serveur pour les tâches de type administratif. & Quot;

Encore un - CouchDBClient: https://github.com/ttutisani/CouchDBClient

Avertissement: je suis l'auteur.

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

Quand j'ai commencé à écrire ce framework, tous les autres que j'ai trouvés et essayés faisaient une impression de signatures de méthodes non standardisées (nommées en utilisant diverses conventions et plus difficiles à deviner ce qu'elles ont fait), pas d'interfaces unifiées (quelques opérations autour de chaîne docs, tandis que d'autres autour de json docs), pas très flexible (certains travaillent uniquement avec des chaînes, d'autres uniquement avec des objets), ou pas très abstrait (il fallait d'abord connaître l'API CouchDB REST pour pouvoir les utiliser correctement). Je suppose et espère qu’ils ont mûri depuis, 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 se soucier trop 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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top