J’utilise NHibernate depuis quelques années déjà. La grande majorité des projets en .net que je développe tirent profit de ce fantastique ORM. NHibernate est probablement le plus complexe des ORM, mais aussi le plus complet. Et avec l’abandon de LINQ 2 SQL par Microsoft, NHibernate est à mon avis le meilleur choix. D’autant plus que la version 2.1 devrait offrir un support complet pour LINQ (via un wrapper LINQ 2 NHibernate).
Si je vous parle NHibernate aujourd’hui, c’est surtout parce que je suis conscient que pour les non-initiés, NHibernate peut paraître complexe. Quoiqu’il existe beaucoup de tutoriels sur le Web, la plupart d’entre eux sont assez simples et ne font que survoler l’architecture requise pour bien tirer avantage de NHibernate. Notamment vis à vis la gestion des sessions et des transactions.
Ainsi, il existe une référence qui porte sur ces aspects et je ne saurais suffisamment vous en recommander la lecture. Il s’agit de l’article NHibernate Best Practices with ASP.Net**de Billy McCafferty. L’article présente d’abord les avantages à utiliser un ORM et les bases de l’intégration de NHibernate. Ensuite, il offre plusieurs notions avancées, qui pourront peut-être sembler un peu lourdes pour certains, mais qui sont très intéressantes et surtout essentielles à une bonne utilisation de NHibernate.
Par ailleurs, chacun des thèmes abordés propose des liens et références pour vous permettre de mieux comprendre les différentes notions. Donc, même si vous n’êtes pas à l’aise avec les patterns de *Repository *et le *DDD *(Domain-Driven Design), vous serez sûrement en mesure de comprendre l’essentiel.
Je compte éventuellement proposer un petit guide pour l’implantation de NHibernate qui met à profit le pattern Open-Session- In-View pour permettre l’utilisation du lazy-loading de NHibernate. À suivre…