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.