[c#] ¿Qué soluciones NoSQL existen para .NET?


Answers

No indica cuáles son sus requisitos (es decir, tiene que ejecutarse en Windows), por lo que descartaré los 2 que he utilizado con éxito.

MongoDB es una base de datos de documentos que tiene binarios precompilados para Windows de 32 bits y 64 bits. Eso siempre es bueno de ver.

El acceso del cliente se puede hacer con este controlador . No es un cliente oficial del equipo de MongoDB en sí, pero lo he usado. Y en mi uso, ha soportado lo que necesito. Hay algunas cosas LINQ en el repositorio , pero no lo he intentado.

// from the wiki
using MongoDB.Driver; 
Mongo db = new Mongo(); 
db.Connect(); //Connect to localhost on the default port. 
Document query = new Document(); 
query["field1"] = 10; 
Document result = db["tests"]["reads"].FindOne(query); 
db.Disconnect();

Pude ejecutar tanto el cliente como el servidor en Windows sin problemas.

CouchDB es una opción también. Hay algunos clientes .NET nativos, pero todo CouchDB está hecho con REST. Entonces HttpWebRequest / Response te servirá bien aquí. Una publicación de blog de Rinat Abdullin muestra cómo encajan algunas de las piezas. También hay CouchBrowse . Nunca he usado un cliente nativo. GET / PUT / POST me han funcionado muy bien.

Conseguí que CouchDB funcionara en Windows (está escrito en Erlang), pero mis pruebas de rendimiento mostraron que Linux era más rápido. ¿Supongo que tal vez sea la forma en que se implementa Erlang? No se. Pero funciona tanto en Windows como en Linux. Y pude llamar la instancia de Linux desde Windows fácilmente (es solo REST).

El siguiente que nunca he intentado, pero tengo un amigo que se compromete con el proyecto HBase . Y piensa que la interfaz de Thrift para HBase debería poder usarse desde .NET (ya que Thrift generará C #). Lo más importante aquí es el hecho de que Hadoop / HBase se enfoca más en los entornos * nix. Pero no hay ninguna razón por la que no pueda ejecutar HBase en un clúster de Linux y conectarse desde .NET en Windows para la producción. Para el desarrollo, puede ejecutar HBase en Windows usando Cygwin. Un buen conjunto de instrucciones sobre cómo hacer esto está here .

Hay otros (Valdemort, Cassandra, etc.) pero no tengo ninguna experiencia real con ellos, así que no voy a pretender decir cómo se integran con C # /. NET. Lo más importante a mirar es cómo se ve su API: si tiene una interfaz Thrift, REST, etc., debería poder conectarse sin problemas. Es posible que no pueda ejecutar el servicio NoSQL en el sistema operativo Windows de manera tan eficiente como Linux, pero tal vez eso no sea un gran problema.

EDIT cambió el hecho de que hay algunos clientes nativos de CouchDB. No estoy familiarizado con ellos ya que siempre uso HTTP sin formato y mis propias clases de contenedor.

Question

¿Qué soluciones NoSQL existen para .NET?




Eche un vistazo a db4o . Es basado en objetos, fácil, autónomo (como sqlite3) funciona con LINQ y es de código abierto.




Amazon proporciona un .NET SDK para interactuar con su SimpleDB (así como con el resto de la familia de servicios de AWS ).

http://aws.amazon.com/simpledb/

http://aws.amazon.com/sdkfornet/

La mejor parte: un nivel gratuito en la nube (a partir de ahora: "Los clientes nuevos y existentes reciben 25 horas de máquina SimpleDB y 1 GB de almacenamiento gratis cada mes").




db4o es genial, pero tenga en cuenta que tiene una versión de código abierto, pero no es gratuito para uso comercial.




http://ravendb.net/ de Ayende es un backend basado en .NET y un cliente NoSQL (específicamente base de datos de documentos). La fuente está disponible gratuitamente. El rendimiento está a la par con MongoDB (las últimas pruebas fueron alrededor de las 6000 inserciones por segundo). La indexación se hace de una manera muy inteligente utilizando LINQ . Interfaz REST , interfaz de usuario web. Muy, muy inteligente, de hecho.

RavenDB puede ejecutarse como un servicio, en IIS o mediante una consola (exe). Requiere .NET 4 para el lado del servidor.

El cliente puede ser .NET 3.5. De hecho, el cliente correrá en Mono , creo.

http://groups.google.com/group/ravendb/web : toda la documentación que hay

Fui al evento de lanzamiento, añadí características increíbles y mucho más por venir. Todos quedaron impresionados por Raven, así que definitivamente es uno de los que echa un vistazo.




Microsoft lanzará soon (final del trimestre 2011) una solución "NoSQL" en SQL Azure.

Se basa en la nueva función Federaciones y utiliza XML para el almacenamiento semiestructurado .

[Editar] ¡Antes de votar a la baja, lea los artículos que explican cómo utilizar las características "NoSQL" en SQL Azure, que obviamente tiene una integración perfecta con .NET / C # / LINQ!




http://ravendb.net/ tiene la mejor http://ravendb.net/ con .NET / LINQ . Es muy fácil obtener el cliente .NET usando NuGet ; un administrador de extensiones en línea de Visual Studio (similar a la App Store de Apple).

Si las herramientas de desarrollo son más importantes para usted que el rendimiento extremo, debería considerar RavenDB.




Related



Tags

c# c#   .net .net   nosql