Frage

Kann jemand mir irgendwelche Hinweise auf Ressourcen detailliert die Strukturen und Algorithmen verwendet „unter der Haube“ der . NET DataSet Klasse?

Im Moment arbeite ich in einer Sprache, die nicht eine Implementierung einer generischen In-Memory-Datenstruktur wie die DataSet-Klasse hat. Ich kann am Ende zu einem selbst zu bauen (aber nicht so umfangreich!), Aber ich mag eine bessere Vorstellung davon haben, wie die bestehenden Systeme zusammengesetzt, bevor ich zu hacken, zu starten. (Danke Douglas Hofstadter )

Ich lese über die Mono Implementierung , aber andere Links, Artikel oder Ideen geschätzt würde

War es hilfreich?

Lösung

Starten Sie Reflektor und gehen direkt an die Quelle ...

Andere Tipps

Sie können legal den ursprünglichen Quellcode herunterladen für DataSet von Microsoft , die Ihnen Zugriff auf alles, einschließlich der ursprünglichen Kommentare. Wenn Sie jedoch sind ein ähnliches System / Produkt implementieren, sollten Sie sorgfältig studieren die Lizenz , um sicherzustellen, Sie sind nicht geeignet, sie durch einen Blick auf den Quellcode zu durchbrechen.

Reflektor finden Sie unter http://www.red-gate.com /products/reflector/index.htm , und ermöglicht es Ihnen, genau zu sehen, wie DataSet implementiert ist.

Sie wollen auch bei Dataadapter suchen, vor allem DbDataAdapter.Fill, Datatable, insbesondere DataTable.Load und DataRow und DbDataReader. Sie könnten dann auf einige der specifici Implementierungen wie SqlDataAdapter, SqlCommand, etc suchen.

Beachten Sie, dass DataSet Beweis für das alte Sprichwort ist alles wie ein Nagel suchen. Es wurde über verwendet in .NET. Insbesondere verwenden Sie es nicht Daten zwischen einem Web-Service und ihren Kunden zu übertragen - es nicht gut zusammenarbeiten

.

Der Schlüssel Datenstruktur des ADO.Net DataSet ist die Rot-Schwarz-Baum

  

Es ist komplex, aber hat eine gute Worst-Case   Laufzeit für seine Operationen und   in der Praxis effizient: kann es suchen,   Einfügen und Löschen in O (log n) -Zeit,   wobei n Gesamtzahl der Elemente in   der Baum. Einfach ausgedrückt, ein rot-schwarz   Baum ist ein binärer Suchbaum,   intelligent Einsätze und entfernt, um   sicherzustellen, der Baum angemessen ist   ausgeglichen.

Das Buch Programming ADO.Net 2.0 Kernreferenz hat eine ausgezeichnete Beschreibung der Datensätze genannt, diskutiert viele Themen und internen Datenstrukturen einschließlich.

Die wichtigste Implementierung des Datensatz setzt auf Rot / Schwarz Selbstausgleich Bäume.

Der andere große Nachteil, dass das Buch erwähnt ist, dass die Lookup-Datencodes über Strings nicht effizient umgesetzt wurde, wie es String-Vergleich verwendet eine Nachschlagtabelle für die entsprechende Spalte zu suchen. Sie könnten recht gut Steigerungen Lookup Leistung auf beiden Tabellen erhalten und auf Spalten von der Zahl Ihrer Zeilen zu. Natürlich ist dies ein Albtraum, wenn Sie ein Werkzeug, um es für Sie tun.

schreiben
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top