Einige davon ist Präferenz, einige davon ist die vorhandene Codebasis. Es gab eine Zeit, in der NHibernate keine eingebauten Nicht-XML-Zuordnungsoptionen hatte. Es gab ein paar Lösungen, um das zu beheben - z. confORM, Fluent NHibernate und andere, denen ich wahrscheinlich nicht bewusst bin.
Ab 3.2 Ich glaube (vielleicht 3,0) NHibernate hat jetzt "Mapping by Code". Der Vorteil gegenüber Fluent NHibernate ist, dass es keine zusätzliche Bibliothek benötigt und vom selben Team wie NHibernate unterstützt wird. Auf der anderen Seite ist Fluent NHibernate ein bisschen reifer (von dem, was ich gehört habe) und kann eine breitere Reihe von Mapping-Funktionen unterstützen.
Ich erwähnte auch "bestehende Codebasis". Wenn Sie ein Projekt haben, das Fluent NHibernate bereits zugeordnet ist, ist es am besten, wenn Sie damit fortfahren. Wenn Sie frisch beginnen, ist es vielleicht einen Versuch wert, das eingebaute "Mapping By Code" zu verwenden.
Dies ist nicht zu konstruktiv glaube ich. Warum lernst du nicht NH und siehst selbst, was die Unterschiede sind? ** Übrigens, ich lerne Java und habe Hintergrund in C#, was sind die Unterschiede? ... ** – gdoron
Ich glaube, er bezieht sich speziell auf das Mapping. +1 um den Downvote auszugleichen und die Frage zu klären. – Origin
Ich kann sehen, wie dies für einen Neuankömmling verwirrend wäre, aber wie @Origin in seiner Antwort unten sagte und was dotjoe in seiner Antwort andeutete, ist die Funktion "Mapping by Code" relativ neu im Vergleich zum Projektalter. Für einen Neuling würde ich nur empfehlen, mit dem neuen "Mapping by Code" in NHibernate zu gehen.Ich selbst werde weiterhin bei Fluent NHibenate bleiben, weil ich viel Code habe, der es momentan benutzt und dessen Syntax mir persönlich mehr Sinn macht. –