Alcuni di essi sono di preferenza, alcuni dei quali sono il codice esistente. C'è stato un tempo in cui NHibernate non aveva opzioni di mapping non XML integrate. C'erano alcune soluzioni là fuori per risolvere questo problema, ad es. conform, fluente NHibernate e altri probabilmente non ne sono a conoscenza.
A partire da 3,2 credo (forse 3.0) NHibernate ora ha "Mapping by Code". Il vantaggio di questo Fluent NHibernate è che non richiede una libreria aggiuntiva ed è supportato dalla stessa squadra di NHibernate. D'altra parte, Fluent NHibernate è un po 'più maturo (da quello che ho sentito) e può supportare un set più ampio di funzioni di mappatura.
Ho anche menzionato "codice esistente". Ovviamente, se hai un progetto già mappato con Fluent NHibernate, sarebbe meglio continuare con esso. Se stai per iniziare, forse vale la pena provare a usare il "Mapping By Code" incorporato
Questo non è troppo costruttivo, credo. Perché non impari l'NH e vedi tu stesso quali sono le differenze? ** A proposito, sto imparando java e ho uno sfondo in C#, quali sono le differenze? ... ** – gdoron
Credo che si riferisca specificamente alla mappatura. +1 per compensare il downvote e modificato la domanda per essere più chiara. – Origin
Riesco a vedere come questo potrebbe confondere un nuovo arrivato, ma come @Origin ha affermato nella sua risposta di seguito e ciò che dotjoe ha accennato nella sua risposta, la funzione "Mapping by Code" è relativamente nuova rispetto all'età del progetto. Per un principiante, consiglierei di andare con il nuovo "Mapping by Code" integrato in NHibernate.Io stesso continuerò a stare con Fluent NHibenate perché ho un sacco di codice che attualmente lo usa e la sua sintassi ha più senso per me personalmente. –