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

NHibernate in Action (Parte 1)

Apr 30, 2015

Download

Technology

DotNetMarche

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
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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?