Fluent NH 1.0 in RC.

NHibernateFluent è una valida alternativa al metodo classico (XML Based) di mappare le entity con con NHibernate.
Nello specifico, il mapping non avviene più tramite la costruzione di un XML da embeddare nel progetto, ma scrivendo semplice codice C#. Anche se tramite gli appositi XSD si può disporre dell’intellisense durante la stesura dell’XML, l’approccio Fluent offre ulteriori vantaggi.

La cosa più interessante è che, nel caso di renaming di alcune proprietà, si ha già il mapping aggiornato, cosa che precedentemente al fluent era fattibile solo tramite l’uso di appositi plugin come Resharper: nel caso non si avesse avuto a disposizione questo addon spesso ci si imbatteva in alcuni problemi (come l’errata scrittura di una proprietà) solo a runtime, mentre ora l’errore si avrebbe a compile time, con un vantaggio notevole per lo sviluppatore.
Oltre a ciò, grazie alle lambda, la scrittura del mapping è molto più fluente (non a caso si chiama Fluent), come dimostra lo snippet seguente:

public class CatMap : ClassMap<Cat>
{
  public CatMap()
  {
    Id(x => x.Id);
    Map(x => x.Name)
      .Length(16)
      .Not.Nullable();
    Map(x => x.Sex);
    References(x => x.Mate);
    HasMany(x => x.Kittens);
  }
}

Personalmente ho iniziato ad usare il Fluent già dalla versione 0.1 - praticamente la prima versione - con non pochi problemi relativamente alle composite unique key, ma ora che è alla versione 1.0 RC (dal 16 di agosto), confido che i problemi siano risolti e che sia già utilizzabile alla grande.

Inoltre credo (qualcuno me lo ha detto, ma non ricordo chi) che il Fluent sia già presente nella trunk di NHibernate 3, ma questa notizia prendetela con le pinze :)

Ciauz

Maggiori info sul Fluent le trovate qui e qui.


Comments