¿EF vs NHibernate? ¿Esa es la pregunta?

El martes 16 estuve hablando de Entity Framework en el Webcast de SecondNug. La idea del Webcast era crear cultura de modelado de entidades sobre modelos relacionales y fomentar el uso de los ORM.

Una de las slides que presenté enseñaba una comparativa de uso entre Entity Framework y NHibernate.

efvsnh_1

Esta comparativa es del 2009 y ya han realizado una revisión de la misma, ya que los desarrolladores de NHibernate comentaron que no se realizó en igualdad de condiciones. Podemos consultar esta revisión en el siguiente post.

El objetivo de esta slide pasaba porque no le diéramos más importancia a un orm o a otro en función de su rendimiento, si analizamos los datos podemos extraer que EF es más potente en algunas cuestiones y que NHibernate lo es en otras. Aún así, siempre encontraremos algún método en el que utilizando algún tipo de artefacto que el otro no emplee se obtendrá un mejor rendimiento.

Creo que tanto NHibernate como Entity Framework son dos grandes ORM y que utilicemos uno u otro tendría que ser cuestión de evaluar las herramientas y diseñadores que tenemos para trabajar con ellos.

Igual que la gente de NHibernate comentó que el test no se realizó en igualdad de condiciones, los desarrolladores de Enfity Framework podrán decir que por qué no se realizaron los test con Entity Framework 4, que las consultas que utilizaron en el test no son las óptimas, etc.

Esta no es nuestra guerra, nuestra guerra pasa porque empecemos a utilizar un ORM en nuestras aplicaciones y que modelemos nuestros sistemas.

Me iba a poner a mejorar el código de test y actualizarlo a EF4, pero creo que no vale la pena seguir con estas comparativas. Mi elección va a ser Entity Framework 4 porque las herramientas que tenemos en Visual Studio 2010 son casi insuperables y porque la curva de aprendizaje es inferior a utilizar otro framework.

 

Saludos a todos…

Published 21/3/2010 14:06 por Alberto Diaz Martin
Archivado en:
Comparte este post:

Comentarios

# re: ¿EF vs NHibernate? ¿Esa es la pregunta?

Sunday, March 21, 2010 4:36 PM por Vicente

Hola Alberto,

me estoy iniciando en el mundillo de EF. Por ahora tengo hecho una aplicación muy chorra de gestión de los DVDs de mi padre, pero la verdad es que ha sido una gozada programarla con EF.

Resulta que me gustaria llevarlo a mi entorno laboral. En la aplicación en la que estoy trabajando, tenemos 7 servidores que atacan a una misma base de datos. Me gustaria saber si utilizando EF, si un servidor hace un cambio en un valor de una celda, otro servidor se daría cuenta.

Muchas gracias.

# re: ¿EF vs NHibernate? ¿Esa es la pregunta?

Monday, March 22, 2010 11:09 AM por Alberto Diaz Martin

Hola Vicente, para esto tendrías que trabajar con los modos de concurrencia o utilizar la plantilla de Self Tracking que viene con Visual Studio 2010.

Con el Change Tracking habilitado, cuando dos clientes actualizan la misma entidad, al segundo que realiza la actualización obtendrá una exception de concurrencia.

Si no me he explicado, me lo dices que te puedo mandar un código de ejemplo.

# re: ¿EF vs NHibernate? ¿Esa es la pregunta?

Monday, March 22, 2010 12:27 PM por preguntoncojonero

Pongan más post prácticos de EF para iniciarse rápidamente. Gracias !!!

# re: ¿EF vs NHibernate? ¿Esa es la pregunta?

Monday, March 22, 2010 1:56 PM por Alberto Diaz Martin

Estamos en ello...

# re: ¿EF vs NHibernate? ¿Esa es la pregunta?

Monday, March 22, 2010 11:11 PM por fravelgue

A parte, de no entrar en la pregunta. Lo más importante sería saber si EF será por fin la apuesta de microsoft como acceso a datos. O será otra tecnología a sustituir.

# re: ¿EF vs NHibernate? ¿Esa es la pregunta?

Monday, March 22, 2010 11:18 PM por Alberto Diaz Martin

sabemos que con Microsoft nunca se sabe, pero por lo que he podido ver, están utilizando EF en muchos de sus productos y necesitaban un ORM en condiciones (LINQ To SQL no tiene todas las funcionalidades que han desarrollado en EF)

# re: ¿EF vs NHibernate? ¿Esa es la pregunta?

Thursday, March 25, 2010 10:36 PM por Vicente

Muchas gracias Alberto.

Esto es también posible de hacer con Visual Studio 2008? Es decir con el framework 3.5 SP1?

# re: ¿EF vs NHibernate? ¿Esa es la pregunta?

Friday, March 26, 2010 12:35 AM por Alberto Diaz Martin

con el framework 3.5 se puede desarrollar con la v1 de entity framework.

si vas a empezar con EF, te recomiendo que empices con framework 4 en visual srmtudio 2010

# re: ¿EF vs NHibernate? ¿Esa es la pregunta?

Sunday, March 28, 2010 12:36 PM por Vicente

Hay mucha diferencia? El problema es que en el trabajo utilizamos el 3.5 SP1 aunque todavía no utilizamos nada de EF, así que no sé por donde empezar...

# re: ¿EF vs NHibernate? ¿Esa es la pregunta?

Sunday, March 28, 2010 2:58 PM por Alberto Diaz Martin

La primera versión de EF tiene sus limitaciones, puede servirte para empezar con EF y probar el framework. También para probar puedes utilizar la RC de vs2010 o vs2010 express.

# re: ¿EF vs NHibernate? ¿Esa es la pregunta?

Sunday, March 28, 2010 6:25 PM por Vicente

Gracias Alberto,

Como tengo el libro de Unai y Octavio empezaré con la v1 y probaré esto que comentas del ChangeTracking, a ver si lo puedo aplicar en el proyecto.

Gracias!

# re: ¿EF vs NHibernate? ¿Esa es la pregunta?

Sunday, March 28, 2010 6:56 PM por Alberto Diaz Martin

hola Vicente

esa es una buena opción para empezar. En estos días publicaré un artículo sobre Self Tracking y WCF

# re: ¿EF vs NHibernate? ¿Esa es la pregunta?

Monday, March 29, 2010 2:08 PM por Vicente

Genial. Gracias!