2010-10-11 39 views
8

Duplicar posible:
What is NHibernate?¿Qué es NHibernate y por qué debería usarlo?

He oído el nombre NHibernate utiliza mucho, pero yo no entiendo muy bien lo que es. Tengo read the Wikipedia article, pero no entiendo cómo el uso de NHibernate en mis aplicaciones C# (escritorio w/WPF, banda W/ASP.NET MVC) hará lo siguiente:

  • Cambiar el código
  • ser más fácil/más rápido

¿Debo buscar usar NHibernate en mis proyectos?


ACTUALIZACIÓN: Gracias para identificar esto como una víctima! No me di cuenta de que esto ya se había preguntado.

Supongo que mi verdadera pregunta es sobre NHibernate versus Linq a SQL (que he estado usando en todas mis aplicaciones), pero eso ya se ha pedido here y here.

¡Gracias a todos! :)

+0

Primero puede buscar en LINQ2SQL, para hacerse una idea de qué tan fácil puede hacer un ORM, y luego buscar en nHibernate más adelante, que proporciona un ORM más empresarial que linq2sql. –

+0

o http://en.wikipedia.org/wiki/ADO.NET_Entity_Framework – pm100

+0

Vaya, no me di cuenta de que esto es una tontería. ¡Lo siento! –

Respuesta

13

NHibernate es un ORM (Object Relational Mapper). Su propósito es asignar objetos en su aplicación OO a tablas en una base de datos para persistencia.

¿Por qué lo necesita? Porque puede evitar escribir un tedioso código ADO.NET. Esencialmente se mejora la productividad del desarrollador al desarrollar aplicaciones CRUD, es decir, las aplicaciones cuya finalidad principal es la de crear, leer, actualizar y eliminar datos en una base de datos.

NHibernate es de código abierto, y hay que darse cuenta de que usted está haciendo dependiente de la aplicación en las bibliotecas de terceros, cuyos objetivos a largo plazo pueden diferir de los suyos.

Si desea la productividad de un ORM sin introducir esta dependencia, considere Entity Framework o Linq2SQL (teniendo en cuenta que Linq2SQL lo bloquea en SQL Server).

Y, por último, si no necesita la mejora de la productividad de un ORM, y desea un control absoluto, adhiérase a la antigua ADO.NET.

+0

Sería interesante saber cómo funciona el OP actualmente con la base de datos. Puede haber un cambio que no ha hecho mucho incluso con ADO.NET, lo que explicaría por qué no está llorando para salir de él. = P – rebelliard

3

El propósito principal de NHibernate se describe en la Wikipedia article así:

característica principal de NHibernate es el mapeo de clases .NET a las tablas de base de datos (y de tipos de datos CLR para SQL tipos de datos). NHibernate también proporciona servicios de búsqueda y recuperación de datos. 0iberio NHibernate genera los comandos SQL y libera al desarrollador del manejo manual de conjuntos de datos y conversión de objetos, manteniendo la aplicación portátil para la mayoría de bases de datos SQL, con portabilidad de base de datos entregada con muy poca sobrecarga de rendimiento.

1

NHibernate le evita reinventar la rueda. El 90% de tiempo que elija para presentar un nuevo proyecto será un proyecto CRUD (Crear, Leer, Actualizar y Eliminar) con la base de datos. NHibernate hace mucho de que el trabajo para usted es de esperar teniendo un poco de la tedio de tener que escribir una nueva capa de acceso de datos para cada proyecto. Si escribe en una base de datos, diría que sí, debería buscar en NHibernate, pero hay muchos ORMS por ahí. Yo digo que los pruebe todos.

Cuestiones relacionadas