tutorial - mongodb server c#




Welche NoSQL-Lösungen gibt es für.NET? (10)

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


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.")



Eine andere Option ist MemcacheDB .

Es basiert auf Memcache, fügt jedoch persistenten Speicher hinzu. Hier ist ihr Klappentext:

MemcacheDB ist ein verteiltes Schlüsselwertspeichersystem, das für persistente Systeme entwickelt wurde. Es ist KEINE Cache-Lösung, sondern eine permanente Speicher-Engine für schnelles und zuverlässiges, auf Schlüsselwerten basierendes Objekt-Storage und Retrieval. Es entspricht dem Memcache-Protokoll (nicht abgeschlossen, siehe unten), sodass jeder Memcached-Client eine Verbindung mit ihm haben kann. MemcacheDB verwendet Berkeley DB als Speicher-Backend, daher werden viele Funktionen einschließlich Transaktion und Replikation unterstützt.


Ich verwende BrightstarDB für das neueste Projekt, an dem ich gearbeitet habe. Es ist natives .NET NoSQL mit einem vollständigen Entity Framework (das es nur wenige Minuten dauerte, eine Anwendung vom ersten Download an zu starten).

Ich http://ravendb.net/ zuerst http://ravendb.net/ ausprobiert, aber obwohl es ziemlich einfach war, alle MapReduce und Indizierungs-Setup-Sachen zu installieren, dauerte es zu lange, bis ich den Kopf drehte und langsam und klobig war, wenn ich zwischen den Dingen in beiden Richtungen navigieren wollte.

BrightstarDB war großartig zu entwickeln, und es ist wirklich ähnlich wie das erste Entity Framework , aber ohne den Aufwand einer Datenbank-Einrichtung, und ich kann viele Änderungen an meinem Datamodel vornehmen, ohne den Schmerz, den ich mit SQL überwinden musste.

Es lohnt sich auf jeden Fall einen Blick darauf zu werfen!


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.


Sie können die berühmte Cassandra Datenbank verwenden. Es verwendet auch die Sparsamkeitsschnittstelle.


Wenn Sie Light-Datenbank-Engines möchten, die gut mit .NET und mit LINQ-Unterstützung funktionieren, können Sie Eloquera, STSdb ​​und Siaqodb ausprobieren.
Sehen Sie diesen Beitrag in meinem Blog, um ein Gefühl für das zu bekommen, was sie anbieten.


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


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.





nosql