Pregunta

¿Puede .NET (código administrado) leer y escribir en CouchDB?

Me gustaría construir una parte de mi proyecto que gestione documentos usando CouchDB

¿Fue útil?

Solución

Eche un vistazo a SharpCouch clase de utilidad.

Es una clase de contenedor simple para la API HTTP CouchDB.

Otros consejos

Es una respuesta tardía, pero consulte Hamaca . Está activo y pronto entrará en producción en varios proyectos y recibirá actualizaciones y correcciones periódicas. Además de la persistencia básica de los objetos, Hammock te ofrece:

  • Verdadero POCO. Ni siquiera necesita una propiedad 'id'; Hamaca rastrea eso internamente.
  • Soporte robusto para vistas, incluyendo una API fluida fácil de usar que genera Y ejecuta vistas, y soporte para crear mapas personalizados / reducir vistas.
  • Soporte de archivos adjuntos.
  • Una clase genérica Repository<> que ayuda a reunir sus consultas / vistas (es decir, _Design doc) junto con su código de aplicación C #. Los repositorios son responsables de mantener _design docs, y esto ayuda a evitar que las vistas CouchDB se sientan como procs almacenados .
  • Un conjunto completo de pruebas unitarias. Este no es un prototipo de software.

Sí.

Consulte aquí para obtener instrucciones sobre cómo instalar CouchDB en Windows.

Aquí hay un enlace al comenzando con el artículo wiki de C # . Hay un enlace a un contenedor .Net en ese artículo. Sería bastante fácil rodar el tuyo también.

Dado que generalmente se comunica con CouchDB a través de REST y JSON, me imagino que no sería demasiado difícil de usar JSON.NET y las clases normales WebClient / HttpWebRequest para hacerlo. No lo he intentado yo mismo, claro ...

Un poco tarde para el juego, pero hay un proyecto de código abierto para un nuevo controlador escrito en C # sobre el Cliente HTTP asíncrono y, por defecto, JSON.Net de Newtonsoft para serialización (conmutable). MyCouch - Cliente asíncrono simple CouchDb para .Net.

Existe una publicación de introducción aquí: http://danielwertheim.se/get-up-and-running-with-couchdb-and-c-using-mycouch-on-windows/

Mantenga un ojo en Ottoman , un proyecto de código abierto escrito en C #. Todavía está en desarrollo, pero quería señalarlo como una opción para proyectos en las etapas de planificación. Actualizaré esta publicación a medida que se acerque su finalización. Puede ver la fuente en github . Lea el archivo README para ver ejemplos y lo que es posible con la versión actual.

  • A diferencia de SharpCouch, que utiliza cadenas en gran medida, otomano utiliza genéricos para serialización automática y desrialización para mapear un objeto de una cadena JSON y viceversa. Todo esto sin que tus objetos necesiten heredar de una interfaz o base clase.
  • Utiliza Json.Net debajo para manejar la serialización JSON y deserialización.
  • Mapea los códigos de error RESTFul que CouchDB vuelve a Excepciones.
  • Característica planificada: Id generadores para generar Id's para los objetos que persisten
  • Característica planificada: implícito Sin conexión Bloqueo optimista mediante documento Revisiones, Otomano usará un Mapa de identidad para realizar un seguimiento usted y lanzará una excepción cuando se produce un conflicto.
  • Característica planificada: será compatible con Mono.
  • Característica planificada: Esto está en el futuro, pero sí planeo en tener expresiones LINQ para Funciones de mapa / reducción que usted expresar a CouchDB usando JavaScript.

Es un proyecto bastante nuevo, pero muy activo. Por supuesto, también estoy un poco parcial. ;-)

también eche un vistazo a divan , un envoltorio ligero para la api de cdb

He usado JSON.NET junto con la clase de cliente http del kit de inicio MS REST para integrarse a CouchDB Y funciona muy bien.

El wiki de CouchDB tiene una lista de API para C # (con sus funciones) si desea el estado más reciente: http://wiki.apache.org/couchdb/Getting_started_with_C%23

API .NET muy fácil de usar para CouchDB incluida en WDK10 que puede obtener de http: // code.google.com/p/skitsanoswdk/ es muy flexible y le permite manejar sus datos en objetos y nivel json puro.

Las opciones ( ordenadas por última actualización ):

Echa un vistazo a Relax http://www.sharplearningcurve.com/wiki/Symbiote- Relax.ashx . Relax es una & Quot; Abstracción de API .Net de la API RESTful (excelente) de CouchDB. Incluye una interfaz basada en repositorio para la interacción de documentos y un controlador de servidor para tareas de tipo administrativo. & Quot;

Uno más - CouchDBClient: https://github.com/ttutisani/CouchDBClient

Descargo de responsabilidad: soy el autor.

Traté de hacer que CouchDBClient sea más amigable para trabajar con objetos personalizados, eso es lo que generalmente almacenan las aplicaciones en la base de datos.

Cuando comencé a escribir este marco, todos los demás que encontré e intenté daban la impresión de firmas de métodos no estandarizados (nombrados usando varias convenciones y más difíciles de adivinar lo que hicieron), no interfaces unificadas (algunas operaciones alrededor de la cadena docs, mientras que otros en torno a json docs), no muy flexible (algunos trabajaron solo con cadenas, otros solo con objetos), o no muy abstractos (primero tenía que conocer la API REST de CouchDB para usarlos correctamente). Supongo y espero que hayan madurado desde entonces, pero al menos este está diseñado a mi gusto.

Espero que CouchDBClient pueda crear una sensación de abstracción cómoda sin preocuparse demasiado por la API subyacente, y solo centrarse en su aplicación y en cómo almacena y recupera los objetos que necesita.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top