ss_blog_claim=f608201a5759a78f27cb629c1a6d9de0

Monday, December 24, 2007

NHibernate: Ventajas y Desventajas

NHibernate: Ventajas y Desventajas






ONHibernate


A continuación comparto con ustedes un artículo de información técnica sobre la tecnología NHibernate que es un framework para el trabajo con base de datos.


1. Nombre del Framework


NHibernate for .NET

Líder de Proyecto: Sergey Koshcheyev

Aportantes: Ayende Rahien y otros

Último desarrollo: 1.2.0.GA

Fecha de desarrollo : 03 de Mayo del.2007

Requisitos: .NET Framework 1.1 o 2.0


2. Pagina web del framework



3. Datos técnicos


- Criterios de selección

- NHibernate Query Language

- Manejo de caché

- Relaciones M_N y bidireccionales.

- Cargas polimórficas.


4. Ventajas


- Documentación de la comunidad de Hibernate, la más amplia alrededor del Object Mapping

- Muchos ejemplos en internet

- Última versión que incorpora lo presente en el mercado en el mes de Mayo de este año


- Existe excelente documentación en Español:






- En inglés las dos fuentes más citadas son:




- Del aportante más importante: Ayende Rahien




5. Apreciación Propia


- Creo que es una herramienta muy buena y actualizada


- Se considera muy fuerte dentro del desarrollo en .NET

6. Apreciación de Terceros


- Los criterios generales para evaluar un ORM lo encontré aquí.

- Y en el caso específico de .Net fue aquí.


Puntos Positivos


- Código abierto

- Soporta DataBinding

- Puede aceptar queries SQL directos (se los guarda en el xml)

- Se puede integrar con frameworks de MVC ( como Struts para Java ) o metaframeworks como Spring.

- Soporta las relaciones entre objetos (El usuario puede elegir el nombre y el tipo de datos de las llaves foráneas)

- Soporta agrupamiento (GROUP BY)

- Soporta agregación (COUNT, AVG, ETC.)

- Soporta llaves primarias compuestas

- Soporta asociaciones muchos a muchos y uno a muchos

- Soporta persistencia de propiedades a través de los campos de propiedades

- Soporta persistencia de propiedades a través de accessors (get/set methods or properties y pueden ser privados)

- Soporta trabajo offline y luego aplicar los cambios a la base de datos

- Soporta WebServices (la tecnología más moderna para la Integración de aplicaciones web, y el paradigma de programación moderno de programación orientada a servicios, publicación de servicios)

- Soporta tipos nulos

- No se require generar código pre compilado


Puntos Negativos


- No soporta carga no transaccional lazy de relaciones

- No soporta Aggregate Mappings - Single Un campo a muchos campos en la base de datos

- No sorpota querying transparente a múltiples recursos de data


Puntos en duda, no se sabe, no se conoce


- Soporte a móltiples servidores (clustering)

- Uso de reflección en tiempo de ejecución

- Filtrado de objetos en memoria sin consultar a la base de datos.

- Batch Update (actualizar muchos objetos sin crear objetos).

- Batch Delete (eliminar muchos objetos sin crear objetos, es útil en Delete en cascada para las relaciones “N A Muchos”


No comments: