6 Schritte um ein Visual Studio-Projekt fit für NHibernate zu machen

Themen

Objektrelationales Mapping, NHibernate, Anwendungsentwicklung. .NET Framework

Technologische Rahmen

NHibernate 2.1.2, .NET Framework 4.0.30128 RC1Rel, MS SQL Server 2008, Windows 7 Home Premium Version 6.1.7600 Build 7600, Visual Studio 2010 Version 10.0.30128.1 RC1Rel

Einführung

Mit .NET-Framework Version 4 hat Microsoft die Lösungen für objektrelationales Mapping vorgestellt. Darunter LINQ-to-SQL und ADO.NET Entity Framework. Wie bei allen neuen Technologien muss erst Mal eine gewisse Zeit vergehen bis diese Lösungen in echten Projekten eingesetzt werden. Erst dann Werden Stärken und Schwächen dieser Lösungen sichtbar.

Was hat man dann zuvor gemacht um die Barriere zwischen der objektorientierten und relationalen Welt zu überwindeln? Man hat sich entweder einer Drittanbieterprodukte bedient, auf Open-Source-Lösungen zugegriffen oder ORM-Frameworks selber implementiert. In Laufe meiner Karriere hatte ich die Erfahrung mit 2 selbstgeschriebenen ORM-Lösungen gemacht und eine schlanke Version davon Mal selber kreiert. Eins der bekanntesten Open-Source ORM-Frameworks ist Hibernate. Entstanden ist es in Java-Welt. Seit einiger Zeit gibt es auch .NET-Pendant: NHibernate. Die meiste Online-Dokumentation darüber ist leider nur auf Englisch vorhanden. Mit diesem Artikel möchte ich eine kurze prägnante deutsche Anleitung schaffen wie man NHibernete in ein Visual Studio Projekt einbindet.

Schritt 1 - Basis-Klassenbibliotheken vorbereiten

Die einzubindende Klassenbibliotheken kann man in 2 Gruppen aufteilen: Basis-Bibliotheken und Bibliotheken für Lazy Loading (Verzögertes Laden von Objektgraphen). Bei den letzteren hat man die Wahl zwischen zwei Varianten: Castle, LinFu, Spring. In dieser Anleitung wird die Spring-Variante verwendet.

  • NHibernate.dll
  • log4net.dll
  • lIesi.Collections.dll
  • Antlr3.Runtime.dll

Schritt 2 - Klassenbibliotheken für Lazy Loading vorbereiten

Zur Auswahl stehen: Castle, LinFu, Spring. Unten werden zu dem Spring gehörende DLLs aufgelistet:

  • Spring.Core.dll
  • Spring.Aop.dll
  • NHibernate.ByteCode.Spring.dll
  • Common.Logging.dll
  • antlr.runtime.dll

Schritt 3 - Referenz auf NHibernate Assembly hinzufügen

Dies geschieht auf standardweise über Projektmappenexplorer Add Referenz-Dialog.

Schritt 4 - NHibernateHelper-Klasse

NHibernateHelper-Klasse ermöglicht es die Instanzen von NHibernate-Session als Singleton zu erzeugen. Man kann sicherlich an dieser Stelle eigene Lösung auch verwendet wird. Wichtig ist, dass es sichergestellt wird, dass in Anwendung nur eine Instanz von ISessionFactory existiert.



Schritt 5 - Konfigurationsdatei anpassen

Neue Section deklarieren



Section hibernate-configuration



Schritt 6 - Instanz von Session erzeugen

ISession session = NHibernateHelper.GetCurrentSession();

Hat man die Session instanziiert, ist NHibernate-Framework erfolgreich eingebunden.