Frage

Diese Antwort sagt dass Linq bei einer etwas anderen Gruppe von Entwicklern als NHibernate, Schloss ausgerichtet ist, etc.

Als ziemlich neu in C #, vergiss alle DB Material umgibt:

  • Gibt es andere wichtige, in Ermangelung eines besseren Ausdrucks SQL-Wrapper als NHibernate, Schloss, Linq?
  • Was sind die Unterschiede zwischen ihnen?
  • Welche Art von Entwickler oder Entwicklungs sind sie gedacht?

-Adam

War es hilfreich?

Lösung

Wenn Sie Castle sagen, ich nehme an, Sie Castle Active Record bedeuten?

Der Unterschied ist, NHibernate eine OR / M und richtet sich an Entwickler, die auf der Domäne konzentrieren möchten, anstatt die Datenbank. Mit LINQ to SQL, Ihre Datenbank ist bereits bestehenden und Sie sind Beziehungen und einige der Programmierung wird durch angetrieben werden, wie Sie Ihre Datenbank definiert ist.

Nun zwischen NHibernate und Castle Activerecord - sie sind ähnlich, dass Sie fahren Ihr Anwendungsdesign aus der Domäne, aber mit NHibernate Sie Mapping-XML-Dateien (oder Mapping-Klassen mit fließend NHibernate), wo in Active Record bieten Ihnen die verwenden Konvention über Konfiguration (unter Verwendung von Attributen keine Spalten und Einstellungen zu definieren, die von Natur aus nicht passen). Castle Active Record ist noch NHibernate im Hintergrund mit.

Ein OR / M ist nicht unbedingt der ‚einzig wahre Weg‘ zu gehen. Es hängt von Ihrer Umgebung, die Anwendung Ihre Entwicklung und Ihr Team.

Sie können auch zu prüfen, SubSonic . Es ist toll für aktiven Datensatz, aber es ist nicht für Projekt, bei dem Sie vor allem auf Ihre Domain konzentrieren möchten. Je nach Projekt, verwende ich in der Regel entweder NHibernate (mit Schloss Active Record) oder Subsonic

Andere Tipps

LINQ ist nur eine Reihe von neuen C # -Funktionen: Erweiterungsmethoden, Lambda-Ausdrücke, Objektinitialisierer, anonyme Typen, etc

.

"LINQ to SQL" auf der anderen Seite ist etwas, das Sie anderen SQL-Wrapper vergleichen können.

Eigentlich verwenden wir beide Linq und NHibernate zusammen (mit fliessend). Wenn Sie ein wenig Geduld mit der Lernkurve haben, dann werden Sie schnell verlieben.

NHibernate und LINQ to SQL sind Object / Relational Mapper entwickelt, mit der Impedanzfehlanpassung zwischen Objekten und RDBMS gefunden zu erleichtern den Umgang. Wenn Sie, wo eine überprüfbare, persistant unwissend Anwendung erreichen wollen, ist NHibernate der Weg zu gehen. Ich würde immer NHibernate über LINQ to SQL empfehlen. Beide Werkzeuge richten sich auf die Beseitigung von mit den Datenzugriff zu tun. Wie oft haben Sie wirklich brauchen Datenzugriffscode zu schreiben?

Schloss ist ein Anwendungs-Framework und Inversion of Control Container und bietet keinen Datenzugriff. Es liefert Anlagen für die Verwendung von NHibernate, für weniger Reibung zu machen, und es liefert auch eine Implemenation der Actuve Record Pattern mit NHibernate.

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