nhibernate in action (parte 1)

Post on 30-Apr-2015

131 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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

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

marcodesanctis2@gmail.com

NHibernate in Action

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?

top related