nhibernate in action (parte 1)

14
Marco De Sanctis http://blogs.ugidotnet.org/ Crad [email protected] NHibernate in Action

Upload: dotnetmarche

Post on 30-Apr-2015

131 views

Category:

Technology


1 download

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 & A

TRANSCRIPT

Page 1: NHibernate in Action (Parte 1)

Marco De Sanctishttp://blogs.ugidotnet.org/Crad

[email protected]

NHibernate in Action

Page 2: NHibernate in Action (Parte 1)

Domain Model PatternDomain Model Pattern

Page 3: NHibernate in Action (Parte 1)

Perché usare un ORM?Perché usare un ORM?

Page 4: NHibernate in Action (Parte 1)

Il progetto NHibernateIl progetto NHibernate

Page 5: NHibernate in Action (Parte 1)

Perché NHibernate?Perché NHibernate?

Page 6: NHibernate in Action (Parte 1)

Per iniziare… Mapping Per iniziare… Mapping delle Entity!delle Entity!

oppure

generato automaticamente

Page 7: NHibernate in Action (Parte 1)

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>

Page 8: NHibernate in Action (Parte 1)

La SessionLa Session

Page 9: NHibernate in Action (Parte 1)

Entity LifecycleEntity LifecycleSpazio della vostra applicazione

TRANSIENTTRANSIENTPERSISTENT

PERSISTENT

DETACHED

DETACHED

PERSISTENT

PERSISTENT

DETACHED

DETACHED

Page 10: NHibernate in Action (Parte 1)

Transparent Write Transparent Write BehindBehind

sessio

n

Sch

edule

d a

ctio

ns

Page 11: NHibernate in Action (Parte 1)

Dirty CheckingDirty Checking

...

Anagrafica.DataNascita = ...Anagrafica.Indirizzo.Cap = “...”

...

Page 12: NHibernate in Action (Parte 1)

Gestione della Gestione della concorrenzaconcorrenza

Page 13: NHibernate in Action (Parte 1)

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!!

Page 14: NHibernate in Action (Parte 1)

Domande?