NHibernate - Architettura
Oggigiorno, molti sistemi sono progettati con un'architettura a strati, anche NHibernate ce l'ha e funziona perfettamente con quel design.
Architettura stratificata
Un'architettura a strati divide un sistema in un numero di gruppi, in cui ogni gruppo contiene codice che indirizza una particolare area problematica e questi gruppi sono chiamati livelli. La maggior parte delle applicazioni di livello aziendale utilizzahigh-level application architecture che consiste di tre strati -
- Il livello di presentazione
- Il livello aziendale
- Lo strato di persistenza
Ad esempio, un livello dell'interfaccia utente noto anche come livello presentazione potrebbe contenere tutto il codice dell'applicazione per la creazione di pagine Web e l'elaborazione dell'input dell'utente.
Uno dei principali vantaggi dell'approccio di stratificazione è che spesso è possibile apportare modifiche a un livello senza alcuna interruzione significativa per gli altri livelli, rendendo così i sistemi lesser fragile and more maintainable.
Livello di presentazione
È il livello più in alto, che contiene il codice responsabile del disegno dell'interfaccia utente, delle pagine, delle finestre di dialogo o delle schermate, della raccolta dell'input dell'utente e del controllo della navigazione.
Livello aziendale
Il livello aziendale è responsabile dell'implementazione di qualsiasi regola aziendale o requisito di sistema che gli utenti potrebbero comprendere come parte del dominio del problema.
Riutilizza inoltre il modello definito dal livello di persistenza.
Livello di persistenza
Il livello di persistenza è costituito da classi e componenti responsabili del salvataggio e del recupero dei dati dell'applicazione.
Questo livello definisce anche una mappatura tra la classe del modello e il database. NHibernate viene utilizzato principalmente in questo strato.
Banca dati
- Il database esiste all'esterno dell'applicazione .NET.
- È la rappresentazione effettiva e persistente dello stato del sistema.
- Se viene utilizzato un database SQL, il database include lo schema relazionale e possibilmente le procedure memorizzate.
Classi di aiuto / utilità
Ogni applicazione dispone di una serie di classi di utilità o di supporto che supportano gli altri livelli: ad esempio, widget dell'interfaccia utente, classi di messaggistica, classi di eccezione e utilità di registrazione.
Questi elementi non sono considerati livelli, perché non obbediscono alle regole per la dipendenza tra strati in un'architettura a più livelli.
NHibernate Architecture
È una vista di alto livello dell'applicazione NHibernate e puoi anche vedere la semplice architettura NHibernate.
Il codice dell'applicazione utilizza NHibernate ISession e IQuery API per operazioni di persistenza e deve solo gestire le transazioni del database, idealmente utilizzando NHibernate ITransaction API.