En estos dias estoy arrancando un proyecto en .NET. Dado que estuve un poco alejado de este ecosistema por un tiempo, escribí un mail a un par de colegas de confianza consultándoles sobre cual de estos 2 ORMs utilizar.Las respuestas que recibí me hicieron reir bastante, cito textualmente:
«Nhibernate… EF es como los muñecos de una torta de casamiento, no se comen, son decorado.»
«Si la base es SQL server, andá por EF, no te compliques. Sino, anda por nhibernate pero con sharp-architecture.»
«NHibernate (EF sigue siendo una mentira)»
«ORM: Entity Framework, se que nhibernate ha mejorado mucho, pero EF con SQL anda muy bien.»
«ORM: EL DILEMA! Desde SW que no uso EF, y la verdad que me acostumbre a NHibernate, si te acordás de cuando lo usabamos en aquellas bellas épocas, es mejor aún. Con respectoa EF, esta última versión recién trae fluent mapping, no?»
También les consulté por inyectores de dependencias y las respuesta también fueron variadas, pero todas estuvieron de acuerdo en un punto: no a MEF.
Nosotros venimos usando NHibernate con ActiveRecord (de Castle) hace años. De hecho, creo que fue recomendación tuya! 🙂 El tema es que hoy en día está muy abandonado… no ha evolucionado…
NHibernate, aunque efectivamente hay cosas nuevas, sigue sintiéndose como que todo es más complicado… efectivamente fluent es más agradable.
EF, en su última versión (6.x que aún está en BETA pero mucha gente la usa) y la 5.x (que viene con VS2012) anda bastante bien con SQL Server (siendo la versión CE, no tenés que instalar la base de datos siquiera) e implementa Unity of Work y Repository fácilmente con sus DbContext. También me agrada que cuando arranco una app MVC, me encuentro con todo pre armadito y me toca codificar, en pocos minutos estoy laburando con un ORM, SimpleMembership, MVC4, etc…
De IoC hemos también estado probando: simple-injector, unity y ninject… ambos tienen sus ventajas y desventajas, aunque según lo que encontramos, la mayoría de gente opina que simple es el más rápido, ninject es el más usado y unity es lo que MS va a imponer cuando llegue al grado de madurez que ellos esperan.
pd: algún día voy a hacer un post con más detalle sobre nuestras últimas experiencias, lo tengo en mi TODO (como muchos otros posts :P)