Vediamo di stuzzicare la curiosità di quelli interessati a intraprendere le vie dell'ORM (e non).
Titolo esteso del post: Perchè NHibernate è meglio
Non sto qui a dirvi cosa è un'ORM ma ritengo sia importante almeno dare una classificazione.
Ottima quella di Fussell che nel 1997 vedeva già questa separazione
- Light Object Mapping
Entità sono rappresentate da classi e mappate manualmente sulle tabelle relazionali
l'accesso ai dati è incapsulato in oggetti DAO e nascosto alle business logic class
Uso di stored procedure
Ottimo per applicazioni con basso numero di entità
- Medium Object Mapping
L'applicazione è progettata attorno ad un object model
le istruzioni SQL sono generate in build time da un framework apposito
L'associazione tra oggetti è supportata dal meccanismo di persistenza
Gli oggetti possono essere cachati (non so come scriverlo in italiano!) sul layer di persistenza
Nessun uso di stored procedure
- Full Object Mapping
Supporto di un sofisticato Object Model (Composizione, Ereditarietà, Polimorfismo)
Il layer di persistenza implementa la cosiddetta persistenza trasparente cioè le classi non devono ereditare da nessuna classe base o implementare qualche tipo di interfaccia
Strategia efficente di Fetching (caricamento Lazy e Eager Fetching)
Linguaggio di interrogazione totalmente a oggetti
Secondo questa classificazione Nhibernate si colloca OVVIAMENTE sul terzo livello.
(Considerazione semiseria: per me il terzo livello glielo hanno fatto apposta)
Non ho ancora pronta la tabella comparativa dei vari ORM sul mercato (ovviamente sarà pronta per il seminario),
ma vi assicuro che sono pochi quelli che riescono ad arrivano a quel livello.
Ulteriori approfondimenti ovviamente....
Sempre qui
Scrivere meno codice usando blocchi già pronti? Si può: NHibernate e Enterprise Library!