NHibernate - Arquitectura

Hoy en día, muchos sistemas están diseñados con arquitectura en capas, NHibernate también la tiene y funciona perfectamente bien con ese diseño.

Arquitectura en capas

Una arquitectura en capas divide un sistema en varios grupos, donde cada grupo contiene un código que aborda un área problemática particular y estos grupos se denominan capas. La mayoría de las aplicaciones de nivel empresarial utilizanhigh-level application architecture que constan de tres capas -

  • La capa de presentación
  • La capa empresarial
  • La capa de persistencia

Por ejemplo, una capa de interfaz de usuario que también se conoce como capa de presentación puede contener todo el código de la aplicación para crear páginas web y procesar la entrada del usuario.

Un beneficio importante del enfoque de capas es que a menudo puede realizar cambios en una capa sin una interrupción significativa en las otras capas, lo que hace que los sistemas lesser fragile and more maintainable.

Capa de presentación

  • Es la capa superior, que contiene el código responsable de dibujar la interfaz de usuario, páginas, diálogos o pantallas, y recopilar la entrada del usuario y controlar la navegación.

Capa empresarial

  • La capa empresarial es responsable de implementar las reglas empresariales o los requisitos del sistema que los usuarios entenderían como parte del dominio del problema.

  • También reutiliza el modelo definido por la capa de persistencia.

Capa de persistencia

  • La capa de persistencia consta de clases y componentes que son responsables de guardar y recuperar datos de la aplicación.

  • Esta capa también define un mapeo entre la clase de modelo y la base de datos. NHibernate se utiliza principalmente en esta capa.

Base de datos

  • La base de datos existe fuera de la aplicación .NET.
  • Es la representación real y persistente del estado del sistema.
  • Si se utiliza una base de datos SQL, la base de datos incluye el esquema relacional y posiblemente procedimientos almacenados.

Clases de ayuda / utilidad

  • Cada aplicación tiene un conjunto de clases auxiliares o de utilidad que admiten las otras capas: por ejemplo, widgets de IU, clases de mensajería, clases de excepción y utilidades de registro.

  • Estos elementos no se consideran capas, porque no obedecen las reglas de dependencia entre capas en una arquitectura en capas.

Arquitectura NHibernate

  • Es una vista de alto nivel de la aplicación NHibernate y también puede ver la arquitectura simple de NHibernate.

  • El código de la aplicación utiliza NHibernate ISession y IQuery API para operaciones de persistencia y solo tiene que administrar las transacciones de la base de datos, idealmente utilizando NHibernate ITransaction API.