[C#] Welche NoSQL-Lösungen gibt es für .NET?


Answers

Sie geben nicht an, was Ihre Anforderungen sind (dh muss unter Windows laufen), also werfe ich die 2 aus, die ich erfolgreich verwendet habe.

MongoDB ist eine Dokumentdatenbank mit vordefinierten Binärdateien für 32-Bit- und 64-Bit-Windows. Das ist immer eine nette Sache zu sehen.

Der Clientzugriff kann mit diesem Treiber erfolgen . Es ist kein offizieller Client vom MongoDB-Team selbst, aber ich habe es benutzt. Und in meinem Gebrauch hat es unterstützt, was ich brauche. Es gibt einige LINQ-Sachen im Repo , aber ich habe es nicht ausprobiert.

// 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();

Ich konnte sowohl Client als auch Server unter Windows problemlos ausführen.

CouchDB ist eine Option. Es gibt einige native .NET-Clients, aber die gesamte CouchDB wird mit REST erstellt. Also HttpWebRequest / Response wird Ihnen hier gut dienen. Ein Blogpost von Rinat Abdullin zeigt, wie einige der Stücke zusammenpassen. Es gibt auch CouchBrowse . Ich habe noch nie einen nativen Client verwendet. GET / PUT / POST haben sehr gut für mich gearbeitet.

Ich habe CouchDB, um an Windows zu arbeiten (es ist in Erlang geschrieben), aber meine Leistungstests zeigten, dass Linux schneller war. Ich vermute vielleicht, dass Erlang selbst implementiert ist? Ich weiß nicht. Aber es läuft sowohl unter Windows als auch unter Linux. Und ich konnte die Linux-Instanz einfach von Windows aus aufrufen (es ist nur REST).

Das nächste, das ich noch nie probiert habe, aber ich habe einen Freund, der ein Commater für das HBase-Projekt ist . Und er denkt, dass die Thrift-Schnittstelle zu HBase von .NET verwendbar sein sollte (da Thrift C # generieren wird). Das Wichtigste ist, dass sich Hadoop / HBase mehr auf * nix-Umgebungen konzentriert. Aber es gibt keinen Grund, warum Sie HBase nicht in einem Linux-Cluster ausführen und sich von .NET unter Windows zur Produktion mit ihm verbinden könnten. Zur Entwicklung können Sie HBase unter Windows mit Cygwin ausführen. Eine gute Anleitung dazu ist here .

Es gibt andere (Valdemort, Cassandra, etc.), aber ich habe keine wirkliche Erfahrung mit ihnen, also werde ich nicht vorgeben zu sagen, wie sie mit C # /. NET integrieren. Die große Sache zu betrachten ist, wie ihre API aussieht - wenn es eine Thrift-Schnittstelle, REST, etc. hat, sollten Sie in der Lage sein, sich mit ihnen ohne Probleme zu verbinden. Sie können den NoSQL-Dienst unter Windows möglicherweise nicht so effizient wie Linux ausführen, aber das ist vielleicht keine große Sache.

BEARBEITEN Ändert, dass es einige native CouchDB-Clients gibt. Ich bin nicht vertraut mit ihnen, da ich immer raw HTTP und meine eigenen kleinen Wrapper-Klassen verwenden.

Question

Welche NoSQL Lösungen gibt es für .NET?




db4o ist großartig, aber sei dir bewusst, dass es eine Open-Source-Version gibt, aber es ist nicht frei für kommerzielle Nutzung.




Microsoft veröffentlicht soon (Ende 2011 Quartal) eine "NoSQL" -Lösung auf SQL Azure.

Es basiert auf der neuen Föderationsfunktion und verwendet XML für semi-strukturierten Speicher .

[Edit] Lesen Sie vor dem Downvooten die Artikel, in denen erklärt wird, wie Sie "NoSQL" -Features in SQL Azure verwenden, die offensichtlich perfekte .NET / C # / LINQ-Integration haben!




Amazon stellt ein .NET SDK für die Anbindung an SimpleDB (sowie an den Rest der AWS Servicefamilie) bereit.

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

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

Der beste Teil: Eine kostenlose Stufe in der Cloud (ab sofort: "Neue und bestehende Kunden erhalten jeden Monat 25 SimpleDB-Maschinenstunden und 1 GB Speicherplatz kostenlos.")




http://ravendb.net/ von Ayende ist ein .NET-basiertes Backend und Client NoSQL (speziell Dokumentendatenbank). Die Quelle ist frei verfügbar. Die Leistung liegt auf Augenhöhe mit MongoDB (letzte Tests waren rund 6000 Einsätze pro Sekunde). Die Indexierung erfolgt sehr geschickt mit LINQ . REST Schnittstelle, Web-UI. Sehr sehr schlau in der Tat.

RavenDB kann als Dienst in IIS oder über eine Konsole (exe) ausgeführt werden. Es erfordert .NET 4 für Serverseite.

Client kann .NET 3.5 sein. In der Tat wird der Kunde in Mono laufen, glaube ich.

http://groups.google.com/group/ravendb/web - alle Dokumente, die es gibt

Ich ging zum Launch Event, tolle Features hinzugefügt und viel mehr zu kommen. Jeder war von Raven so begeistert, dass es definitiv eines ist, das man sich ansehen sollte.




db4o Sie einen Blick auf db4o . Es ist objektbasiert, einfach, in sich abgeschlossen (wie sqlite3) arbeitet mit LINQ und es ist Open Source.




http://ravendb.net/ hat die beste .NET / LINQ Unterstützung. Es ist sehr einfach, den .NET-Client mit NuGet ; ein Visual Studio Online-Erweiterungs-Manager (ähnlich App Store von Apple).

Wenn Entwicklungswerkzeuge für Sie wichtiger sind als extreme Leistung, sollten Sie RavenDB in Betracht ziehen.