Entity Framework BETA 3

El mes pasado, el ADO.NET Team, tal como nos comentaba elbruno, publlicó una nueva release beta del ADO.NET Entity Framework (EF en adelante) y una nueva CPT de las herramientas visuales para la generación del modelo de datos de entidades (EDM).


Como sabeis el EF es el primer ORM de Microsoft para la tecnología ADO.NET y conociendo previamente NHIbernate, la verdad es que ofrece una característica que hara las delicias de los programadores: LINQ to Entities. Es posible aprovechar toda la potencia de LINQ para consultar las entidades de nuestro modelo de forma efectiva, rápida y homogenea, siguiendo el ideal de Microsoft de aprender un único lenguaje de consulta de datos (LINQ) para múltiples tipos de datos (colecciones en memoria, XML, registro de windows, etc.) que se compila (y por tanto se comprueban los tipos) y no se resuelve en tiempo de ejecución como los largos strings con consultas SQL o HQL en NHibernate que eran culpables de bastantes errores en tiempo de ejecución y que requerían un depurado exhaustivo y algo tedioso.


Si quereis probarlo necesitareis por un lado VisualStudio 2008, podeis descargaros un Trial desde aquí o también el VisualStudio 2008 Express que es gratuito y luego instalar el Entity Framework Beta 3. Después es necesario instalar el XML Editor QFE para finalmente proceder a la instalación del Entity Designer CTP2


También os va a hacer falta tener instalado SQL Server 2005 (vale la edición express) para poder ejecutar los ejemplos disponibles en codeplex.


Como comentaba Bruno mucha gente se pregunta cuándo utilizar EF y cuando LINQ to SQL. La principal diferencia, a mi modo de ver, es que LINQ to SQL solo trabaja contra SQL Server, algo a tener en cuenta pues EF ofrece más proveedores de datos. Actualmente y según un post reciente del ADO.NET Team Blog ya existen proveedores para Oracle, MySQL, PostgreSQL, SQLite, Informix, Ingres, Sybase, DB2, Progress, VistaDB, SQL Anywhere así como un bridge para drivers ODBC y JDBC. También se ha anunciado que pronto estará disponible un proveedor para Firebird. Ya en épocas tempranas al desarrollo de EF se ofreció un ADO.NET Sample Provider que ayudaba de desarrolladores de proveedores de acceso a datos implementar sus propios proveedores de EF. Tanto que en el TechED celebrado en Junio de 2007 en Orlando, Brent Goss del equipo de DB2 de IBM mostró un ejemplo con 101 consultas de LINQ to Entities sobre un SGBD DB2. 


A todos aquellos que esteis interesados en ORMs o trabajeis con ellos os animo a que echeis un ojo al EF y saqueis vuestras propias conclusiones… para mi es uno de los productos de desarrollo en acceso a datos más interesantes actualmente.

5 comentarios sobre “Entity Framework BETA 3”

  1. Desde luego tiene muy buena pinta, ha resuelto algunos temas de forma interesante como la recepción de datos a traves de objetos utilizando generics, el acceso a los datos asi como las operaciones de grabación y actualización, tienen muy buena pinta, creo que va a resolver gran parte de la problematica que existe al trabajar con base de datos grandes y el modelado de entidades es muy sencillo, parece una herramienta de futuro.

  2. Personalmente espero verlo on-the road.
    Por ahora sigo con NHibernate ya que está disponible.
    En el trunk de NH hay varias novedades tipo la compilación de las NamedQuery en fase de creación del SessionFactory así como otras cosas muy interesante.
    Por otra parte ya hay un proyecto para usar LINQ+NH que será integrado a NH.
    http://rhino-tools.svn.sourceforge.net/viewvc/rhino-tools/experiments/NHibernate.Linq/

    En el curso del 2008 NH tendrá casi la totalidad de las features de Hibernate 3.2.5.

    Seguramente EF de MS nos ayuda a desarrollar mejores funcionalidades en NH.

    Para NH ya son es disponible interoperabilidad con Validation Application Block a parte que ahora existe tambien NHibernate.Validator.

    Veremos lo que pasa… tener una opción es siempre bueno.
    Bye.

  3. Mmhhh el handicap más grande que le veo a EF es poder competir con la experencia y el background que tiene NHibernate.
    A mi EF me pareció muy sencillo de asimilar, claro que ya conocía como va un ORM pues hice algún proyectillo con NH 1.2. En una charla que di recientemente comentaba que una de las cosas más cómodas que le veo al EF es que te genera un contexto totalmente tipado además de clases parciales para los objetos del modelo, en contrapartida del ISession y hacerte tu las clases conceptuales (claro que para NH también hay generadores) también el diseñador y herramientas visuales son muy cómodas, pero también hay alternativas en NH buscando un poco.
    Coincido contigo en a ver que pasa… yo seguiré a los dos muy de cerca y estoy convencido que ambos tendrán sus escenarios.

  4. Olvidé mencionar algo para entender el camino de los dos productos.

    NH es bastante joven pero representa un porting de Hibernate de Java lo cual significa que ya tiene mas o menos 10 años de analisis, desarrollo y sobre todo de uso. Esto ultimo no representa ninguna ventaja sobre EF ya que los programadores de EF tambien tienen acceso a fuentes y documentación Hibernate.

    NH representa solo un «professional-hobby» es decir que, quien trabajamos en el, no percibimos absolutamente nada por hacerlo y por lo tanto no hay nadie que puede dedicar 8hs al dia a su desarrollo. Creo que para los desarrolladores de EF la cosa sea un poco distinta.

    P.S. Si hay errores de ortografia es porque soy Italiano.

  5. Gracias Maulo, en geeks, aunque mayoritariamente nos centramos en tecnologías de Microsoft estamos más que abiertos a toda la tecnología existente en un ámbito dado.
    Pues yo si veo una ventaja, como te comentaba, que un producto tenga 10 años a su espalda, sobre todo por la comunidad q se forma y es fácil encontrar herramientas y apoyo de la comunidad para prácticamente cualquier problema. EF está empezando y esperemos que también tenga una buena acogida.
    Esta claro que la filosofía de desarrollo de los dos productos son muy diferntes pero al final los objetivos son parecidos, que el desarrollador y el usuario final estén contentos y se produzca software de calidad!!

    Y por cierto, escribes muy bien en Español!! 😉

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *