Meine Projekte bauen immer noch auf den NHibernate.Mapping.Attributes auf. Allerdings kommt mir vor, dass dieses Projekt nicht mehr wirklich weiterentwickelt wird.
Ist NHibernate.Mapping.Attributes schon obsolet und statt dessen Fluent NHibernate vorzuziehen?
NHibernate 3.2 bietet ebenfalls die Möglichkeit das Mapping per Code zu definieren. Fabio Maulo nennt es "sexy Loquacious API". Dieses API ist jedoch, wie der Name schon besagt, sehr geschwätzig (will heißen, man muss relativ viel Code schreiben, um das gleiche wie mit Fluent NHibernate zu erreichen), verfolgt aber interessante Konzepte.
Meine Präferenz geht dennoch auch zu Fluent NHibernate, weil es nach meiner Ansicht elegant programmiert und sehr einfach anzuwenden ist. Allerdings ist auch dieses Projekt zur Zeit nicht sehr aktiv. Fluent NHibernate arbeitet offiziell noch nicht mit NH 3.2 zusammen. Es gibt zwar ein entsprechendes NuGet-Package, aber ich habe mir lieber die Sourcen heruntergeladen und selbst gegen NH 3.2 kompiliert.
Falls du Informationen zum "Loquacious"-API suchst bietet der folgende Link einen Einstieg:
PS: Schön langsam kommt mir vor, dass das Attribut "faul" für Programmierer auch obsolet ist (oder noch nie gestimmt hat?)...