• No se han encontrado resultados

Las interfaces de programación son lo primero que tienen que aprender sobre NHibernate con el fin de utilizarlo en la capa de persistencia de la aplicación, uno de los objetivos principales del diseño de la API es mantener las interfaces entre componentes de software lo más estrecha posible, en la práctica, sin embargo, las API ORM no son especialmente pequeños.

La figura III.8, muestra las funciones de las interfaces NHibernate más importantes en el negocio y la capa de persistencia, en donde se presenta la capa de negocio por encima de la capa de persistencia, ya que la capa de negocios actúa como un cliente de la capa de persistencia en una aplicación tradicional por capas

Figura Nº III. 8. Interfaces de NHibernate

Las interfaces llamadas por las aplicaciones para realizar operaciones CRUD básicas y las operaciones de consulta es decir; crear, seleccionar, actualizar y eliminar; éstas interfaces son el punto principal de la dependencia de aplicaciones empresariales y

lógica de control en NHibernate, éstas interfaces incluyen a ISession, ITransaction, IQuery y ICriteria.

Las interfaces llamada por el código de la aplicación para configurar la infraestructura de NHibernate, la más importante es la clase Configuration.

La devolución de llamada de interfaces que permiten la aplicación reaccionar a los acontecimientos ocurridos dentro de NHibernate, son las interfaces IInterceptor, ILifecycle y IValidatable.

Las interfaces que permiten la extensión de los servicios del mapeo de gran alcance NHibernate, como IUserType, ICompositeUserType y IIdentifierGenerator, estas interfaces son implementadas por código de la aplicación de la infraestructura si es necesario

NHibernate hace uso de las APIs. NET, incluyendo ADO.NET y su API ITransaction. ADO.NET proporciona un nivel rudimentario de la abstracción de la funcionalidad común a bases de datos relacionales, lo que permite casi cualquier base de datos con un controlador de ADO.NET con el apoyo de NHibernate.

Las cinco principales interfaces se enumeran a continuación y se utiliza en casi todas las aplicaciones de NHibernate, el uso de estas interfaces, puede almacenar y recuperar objetos persistentes y controlar debidamente las operaciones.

Interfaz ISession

La interfaz ISession es la interfaz primaria utilizada por las aplicaciones NHibernate, expone NHibernate métodos para encontrar, guardar, actualizar y eliminar objetos, una instancia de ISession es ligera y es barata de crear y destruir, esto es importante debido a que su aplicación tendrá que crear y destruir sesiones todo el tiempo.

La noción de una sesión de NHibernate es algo entre la conexión y la transacción, puede ser más fácil pensar en una sesión como un caché o colección de objetos cargados en relación con una sola unidad de trabajo, NHibernate puede detectar cambios en los objetos de esta unidad de trabajo a veces llame a la persistencia ISession porque también es la interfaz para las operaciones relacionadas con la persistencia, como el almacenamiento y recuperación de objetos

Interfaz ISessionFactory

La interfaz ISessionFactory no es ligera, está destinada a ser compartida entre los muchos hilos de aplicaciones, normalmente hay una sola instancia de ISessionFactory para el conjunto de aplicaciones creadas durante la inicialización de la aplicación, sin embargo, si su aplicación accede a bases de datos utilizando múltiples NHibernate, usted necesitará una SessionFactory para cada base de datos.

La interfaz SessionFactory también pueden almacenar los datos en caché que se ha leído en una unidad de trabajo, y que pueden ser reutilizados en una futura unidad de trabajo

o período de sesiones, esto es posible si se configura la clase y asignaciones de colección para utilizar el de segundo nivel de caché.

Interfaz de configuración

Las interfaz de configuración como su nombre lo indica se utiliza para configurar NHibernate, en donde la aplicación utiliza una instancia de configuración para especificar la ubicación del mapeo de los archivos y para establecer las propiedades específicas NHibernate antes de crear la interfaz ISessionFactory.

Interfaz ITransaction

La interfaz ITransaction es una opción de la API, las aplicaciones NHibernate pueden optar por no utilizar esta interfaz, en lugar gestionar las transacciones en su código de infraestructura propia que podría ser una transacción de ADO.NET o cualquier tipo de manual de operación que permite la aplicación para controlar límites de la transacción a través de una API consistente. Esto ayuda a mantener las aplicaciones portátiles NHibernate entre diferentes tipos de entornos de ejecución y contenedores.

Interfacces IQuery y ICriteria

La interfaz IQuery le ofrece potentes maneras de realizar consultas en la base de datos, al tiempo que controlar cómo se ejecuta la consulta, es la interfaz básica utilizada para

traer los datos utilizando NHibernate, las consultas están escritas en HQL o en el dialecto SQL nativo de tu base de datos

Una instancia IQuery es ligero y no se puede utilizar fuera de la ISession que lo creó, más bien se utiliza para obligar a los parámetros de consulta, limitar el número de resultados devueltos por la consulta y, finalmente, para ejecutar la consulta.

La interfaz es muy similar ICriteria, sino que le permite crear y ejecutar consultas criterios orientados a objetos.

Para ayudar a hacer menos detallado código de la aplicación, NHibernate proporciona algunos métodos útiles acceso directo en la interfaz ISession que le permiten activar una consulta en una sola línea de código.

Documento similar