EDM y EF NO son el ORM de Microsoft
Seguramente mucha gente leyendo este post, está pensando, que es lo que está diciendo. De hecho uno mismo al principio de conocer los propósitos de Microsoft con EDM y EF también tenía la misma impresión. Llevo cada vez viendo más artículos y post que se centran precisamente en estos temas, y para agregar más confusión también alguno que otro que tiene que ver con Microsoft, y creo que es justo poner encima de la mesa ciertas cuestiones muy interesantes.
En primer lugar, decir que EDM y EF cubren un espacio similar al que cubren los ORM pero también cubren muchos otros escenarios, de hecho esta es una razón principal por la que comparar EDM y EF con un ORM como NHibernate puede dar lugar a confusiones en el sentido de ver ciertas carencias a EDM y EF. En realidad, puesto que no está centrado solamente en ORM hay ciertos grados de estos espacios que no están cubiertos por una herramienta tan madura como NHibernate, por poner un ejemplo de ORM. La filosofía de EDM y EF en el tiempo será mucho más amplia, es aquí donde estas herramientas nos ofrecerán un valor más grande. Una diferencia importante se puede observar con EDM, EDM no es solamente un diseñador de entidades para modelos relaciones unido a EF, EDM es un modelador conceptual común dentro de Microsoft, es fácil suponer que dentro de no mucho tiempo podremos ver ciertos productos, de Microsoft o no, haciendo uso de EDM sin necesidad de trabajar junto a Entity Framework. Por supuesto EDM nos ofrece muchas características que no son necesarias en un ORM como tal y también algunas restricciones que los espacios de ORM podrían llegar a necesitar pero EDM en esta versión no nos proporcionarán.
Las ventajas de ser algo más
Realmente, hasta ahora hemos dicho que EDM y EF son algo más, pero también hemos dicho que 'por culpa' de esto podríamos tener ciertas carencias. ¿ Que ganamos siendo algo más ? Puesto que tenemos un modelador como EDM capaz de cubrir más espacios que el de un ORM, podríamos imaginarnos que nuestra integración con otros productos se podría llegar a hacer a través de este modelador conceptual sin necesidad de conocer el store subyacente. ¿Reporting Services, Cubos, Sync Services...? No sé, suposiciones mías solamente.
A partir de esto mismo podríamos pensar que el nivel de integración con otros elementos del Framework como WCF, WF y ASP.NET lo que podría suponer una avance muy grande en productividad en nuestros desarrollos, algo que un ORM nunca tiene ya que siempre tiene que recurrir a herramientas externas para nada integradas. Con respecto a los nuevos productos podríamos fijarnos en DATA SERVICES ( ASTORIA ), que tendrá a EDM como sistema de metadatos y que se apoyara, probablemente en EF, para hacer que este framework no solamente sea de consulta.
Espero aclarar algo el panorama y que todos esperemos una visión más amplia de estos dos productos desde que sean realidad.
Saludos
Unai