nhibernate in action (parte 1)
DESCRIPTION
La persistenza delle entity del domain model è, a dispetto dell'apparente semplicità, un task applicativo che nasconde molteplici problematiche. Perché allora non avvalersi di quello che, attualmente, è il più utilizzato framework di persistenza al mondo? NHibernate consente di sfruttare al meglio le tecnologie di accesso ai dati, di minimizzare la scrittura di codice e di evitare quindi errori inutili. In una frase, aumentare la nostra produttività. Introduzione al Domain Model Domain Model e modello E/R: Paradigm Mismatch Nasce l'esigenza di un ORM: Introduzione al progetto NH Architettura di NHibernate: le factory, la session, e le entity Demo: Configurazione, Il file di mapping, e un esempio con un Oggetto di dominio semplice Demo: Dirty Checking, Optimistic Lock, e Unit of Work (IndentityMap e Transparent Write Behind) Presentazione e demo di NHDomain Mapper Persistenza di un grafo complesso Strategie di retrieving dei dati Esempio di architettura di un'applicazione reale Q & ATRANSCRIPT
Domain Model PatternDomain Model Pattern
Perché usare un ORM?Perché usare un ORM?
Il progetto NHibernateIl progetto NHibernate
Perché NHibernate?Perché NHibernate?
Per iniziare… Mapping Per iniziare… Mapping delle Entity!delle Entity!
oppure
generato automaticamente
ConfigurazioneConfigurazione
...Configuration cfg = new Configuration();cfg.AddAssembly(“Sample");factory = cfg.BuildSessionFactory();...
<configSections> <section name="nhibernate" type=“..." /></configSections><nhibernate> <add key="hibernate.connection.provider" value=“..." /> <add key="hibernate.dialect" value="NHibernate.Dialect.MsSql2000Dialect" /> <add key="hibernate.connection.driver_class" value=“..." /> <add key="hibernate.connection.connection_string" value=“….connectionString..." /></nhibernate>
La SessionLa Session
Entity LifecycleEntity LifecycleSpazio della vostra applicazione
TRANSIENTTRANSIENTPERSISTENT
PERSISTENT
DETACHED
DETACHED
PERSISTENT
PERSISTENT
DETACHED
DETACHED
Transparent Write Transparent Write BehindBehind
sessio
n
Sch
edule
d a
ctio
ns
Dirty CheckingDirty Checking
...
Anagrafica.DataNascita = ...Anagrafica.Indirizzo.Cap = “...”
...
Gestione della Gestione della concorrenzaconcorrenza
Per aiutarvi con i file Per aiutarvi con i file di mapping…di mapping…
Codename Supertanga
NHibernate Domain Mapper is a tool that assists user creating NHibernate Mapping Files. User may add his own Domain Model assemblies and map them to database table using a rich UI, which will present him all the suitable options regarding at the element type he created. The peculiarity of this tool is that it allows doing the mapping task starting from a domain model instead of a Database schema.
Homepage su Codeplex:http://www.codeplex.com/NHDomainMapper
Se avete un po’ di tempo da dedicarci…
entrate a far parte del team di sviluppo, fama e gloria vi attendono!!
Domande?