Was ist NHibernate und warum sollte ich es verwenden? [Duplikat]

8

Ich habe den Namen NHibernate oft gehört, aber ich verstehe nicht wirklich, was es ist . Ich habe den Wikipedia-Artikel gelesen, aber ich verstehe nicht, wie NHibernate in meinen C # -Anwendungen (Desktop mit WPF) verwendet wird , Web mit ASP.NET MVC) wird:

  • Ändern Sie den Code
  • Sei einfacher / schneller

Soll ich in meinen Projekten NHibernate verwenden?

UPDATE: Danke, dass du dies als Täter erkannt hast! Ich wusste nicht, dass das schon gefragt wurde.

Ich denke, meine eigentliche Frage ist NHibernate gegenüber Linq to SQL (die ich in allen meinen Anwendungen verwendet habe), aber das wurde bereits gefragt hier und hier .

Danke, alle! :)

    
Maxim Zaslavsky 11.10.2010, 21:52
quelle

3 Antworten

13

NHibernate ist ein ORM (Object Relational Mapper). Sein Zweck besteht darin, Objekte in Ihrer OO-Anwendung den Tabellen in einer Datenbank auf Persistenz zuzuordnen.

Warum würden Sie es brauchen? Weil es Sie davor bewahren kann, viel mühsamen ADO.NET-Code zu schreiben. Im Wesentlichen verbessert es die Entwicklerproduktivität bei der Entwicklung von CRUD-Anwendungen, dh Anwendungen, deren Hauptzweck das Erstellen, Lesen, Aktualisieren und Löschen von Daten in einer Datenbank ist.

NHibernate ist Open Source, und Sie müssen erkennen, dass Sie Ihre Anwendung von Bibliotheken Dritter abhängig machen, deren langfristige Ziele von Ihren abweichen können.

Wenn Sie die Produktivität eines ORM erreichen möchten, ohne diese Abhängigkeit einzuführen, sollten Sie Entity Framework oder Linq2SQL in Betracht ziehen (beachten Sie, dass Linq2SQL Sie in SQL Server einsperrt).

Und schließlich, wenn Sie die Produktivitätsverbesserung eines ORM nicht benötigen, und Sie die absolute Kontrolle wollen, bleiben Sie bei einfachem altem ADO.NET.

    
saille 11.10.2010, 23:16
quelle
3

Der Hauptzweck von NHibernate wird auch im Wikipedia-Artikel beschrieben:

  

NHibernate's Hauptfunktion ist die Zuordnung von .NET-Klassen zu Datenbanktabellen (und von CLR-Datentypen zu SQL-Datentypen). NHibernate bietet auch Funktionen zum Abfragen und Abrufen von Daten.

     

NHibernate generiert die SQL-Befehle und entlastet den Entwickler von der manuellen Verarbeitung von Daten und der Konvertierung von Objekten. Dadurch bleibt die Anwendung für die meisten SQL-Datenbanken portabel und die Datenbankportabilität wird mit sehr geringem Leistungsaufwand bereitgestellt.

    
Dirk Vollmar 11.10.2010 22:02
quelle
1

NHibernate erspart Ihnen das Rad neu zu erfinden. 90% Zeit, die Sie wählen Datei neues Projekt es wird ein CRUD (Erstellen, Lesen, Aktualisieren und Löschen) Projekt mit Datenbank-Back-End. NHibernate macht eine Menge Arbeit für Sie, die Ihnen hoffentlich die Mühe nimmt, für jedes Projekt eine neue Datenzugriffsschicht schreiben zu müssen. Wenn Sie in eine Datenbank schreiben, würde ich sagen, ja, Sie sollten in NHibernate schauen, aber es gibt viele ORMS da draußen. Ich sage, versuch sie alle.

    
Aaron 11.10.2010 23:02
quelle

Tags und Links