una - master page asp.net plantillas
¿Qué es NHibernate? (5)
Como seguimiento de mi pregunta anterior . Soy un programador de ASP.NET, y me pregunto cómo NHibernate me ayudaría a hacer mi trabajo más fácil y más rápido de lo que lo haría de otra manera. Pretender que no sé nada sobre NHibernate. ¿Qué es y qué puede hacer por mí?
Manning tiene un libro bastante bueno: NHibernate en acción
El libro está en la versión 1.2 de NHibernate, pero la mayor parte se aplica a la última versión.
NHibernate es un ORM, o Object-Relational Mapper. En la misma línea que LINQ to SQL, Entity Framework, LLBLGen y otros, las herramientas ORM eliminan la mayor parte de la necesidad de escribir procedimientos almacenados para manejar el acceso a los datos comunes (CRUD) para sus objetos comerciales. Las herramientas ORM requieren que cree (ya sea manualmente o con un diseñador visual ... depende de la que elija) una especificación de mapeo que rastrea qué propiedades de los objetos asignan a qué columnas de sus tablas y / o vistas en su base de datos. Cuando necesite recuperar objetos, la herramienta ORM genera el SQL apropiado para usted y lo envía a la base de datos. Cuando llegue el momento de actualizar sus objetos, el ORM no solo creará el SQL para insertarlo, actualizarlo y eliminarlo ... también combinará esos comandos para que una sola conexión y un lote de comandos se envíen a la base de datos y realiza todo en una transacción. Las herramientas ORM también pueden mejorar la eficiencia de sus consultas al permitirle seleccionar gráficos completos de objetos de una sola vez, generando el SQL más eficiente para la tarea.
Con las herramientas ORM, aún necesita consultar, sin embargo, ya sea con métodos básicos en el contexto de ORM o en el objeto de sesión, o con un lenguaje de consulta personalizado para ese ORM. En estos días, la mayoría de los ORM, incluido NHibernate, también brindan soporte LINQ, lo que le permite utilizar la sintaxis LINQ estándar para consultar su modelo de objetos, que a su vez se traduce en consultas SQL en su base de datos.
El beneficio de los correctores O es que usted centraliza casi TODO su código en su dominio, en lugar de dividirlo entre el dominio y los procesos almacenados. Aligera la carga de procedimientos almacenados en su base de datos, proporcionando una barrera menor para la refacturación de su base de datos en caso de necesidad, proporcionando una mayor agilidad comercial no solo en su dominio, sino también con su esquema de base de datos. Como no tiene que escribir SQL, y especialmente si usa LINQ, a menudo puede crear una aplicación más eficiente con menos esfuerzo y con menores costos de mantenimiento a largo plazo.
Además de la guerra inevitable con sus DBA (si los tiene), O los mapeadores pueden traer considerables beneficios a la mesa que pueden reducir el esfuerzo de implementación, mejorar el mantenimiento y proporcionar una mayor agilidad comercial.
Espero que responda la pregunta. ;)
NHibernate es una herramienta ORM (Object Relational Mapper). Crea un modelo orientado a objetos basado en su esquema de base de datos.
De https://www.hibernate.org/343.html
Funciones principales de NHibernate:
Modelo de programación natural : NHibernate es compatible con expresiones idiomáticas OO naturales; herencia, polimorfismo, composición y el marco de colecciones .NET, incluidas las colecciones genéricas.
Native .NET - NHibernate API usa convenciones y expresiones idiomáticas .NET
Soporte para modelos de objetos de grano fino : una gran variedad de mapeos para colecciones y objetos dependientes
Sin mejora del código byte en el tiempo de compilación: no hay generación de código adicional o pasos de procesamiento de código de bytes en su procedimiento de compilación.
Las opciones de consulta - NHibernate aborda ambos lados del problema; no solo cómo introducir objetos en la base de datos, sino también cómo sacarlos de nuevo
SQL personalizado : especifique el SQL exacto que NHibernate debe usar para conservar sus objetos. Los procedimientos almacenados son compatibles con Microsoft SQL Server.
Soporte para "conversaciones" : NHibernate admite contextos de persistencia de larga duración, desconecta / vuelve a unir objetos y se encarga automáticamente del bloqueo optimista.
Fuente gratuita / abierta : NHibernate tiene licencia bajo LGPL (licencia pública GNU inferior)
Puede encontrar una buena introducción y un tutorial aquí Summer of NHibernate Screencasts .
En cada video, proporciona una introducción a un tema en nHibernate y luego se sumerge en algún código mientras explica cómo hacer cosas diferentes. Lo he encontrado muy útil.