Sí, pero con algunas advertencias:
Es totalmente compatible con Microsoft y tiene una comunidad en crecimiento, pero al ser más nuevo que su competidor más cercano, nHibernate, todavía no tiene una comunidad tan madura.
Además de tener una comunidad menos madura, habrá momentos en los que una función está disponible con EF4 pero apenas documentada; o EF4 arrojará excepciones con las que Google no puede ayudarlo.
Tiene todas las funciones cuando se usa como Microsoft pretende, pero en mi experiencia puede ser bastante difícil adaptarlo a un sistema existente. Lo ideal sería usarlo en un escenario totalmente nuevo con una pila de Microsoft 100%. Sin duda, es lo suficientemente flexible como para mezclarse con otros sistemas, pero hacerlo aumenta sustancialmente la dificultad.
Sin embargo, para reiterar el punto principal, es completo y lo suficientemente estable para su uso en producción.
Una cosa clave para señalar, que parece obvio pero que a menudo se pasa por alto hasta que causa dolor, es que un ORM funciona para mapear desde el paradigma relacional al paradigma OO. Si alguno de estos niveles no sigue las reglas de su paradigma respectivo, se sentirá más herido.
Esto puede ir en ambos sentidos: si conoce bien el paradigma relacional / basado en conjuntos de SQL y OOP, entonces el ORM permitirá que los dos se mezclen como mantequilla. Si su base de datos parece que quiere ser OO, y su código OO parece que quiere estar basado en registros, entonces YMMV.
Hemos estado usando EF en varias aplicaciones de producción. También tenemos NHibernate en varias aplicaciones de producción. El comentario de STW de que EF funciona mejor "cuando se usa como Microsoft pretende" es ciertamente cierto. También es cierto para NHibernate que funciona mejor cuando se usa siguiendo los patrones que el equipo de NHibernate pretendía. No tengo conocimiento o experiencia con XPO.
No me arrepiento de poner NHibernate en producción.
No me arrepiento de poner Entity Framework en producción.
Uno de los factores impulsores para usar EF fue la integración con LINQ. Sé que NHibernate también ha trabajado mucho con LINQ, pero todavía no he tenido tiempo de investigarlo.
fuente
Estamos utilizando EF4.1 con el enfoque de Code First para nuestro proyecto web y, como se indicó anteriormente, mantener el uso como Microsoft pretendió que lo mantendrá alejado de muchos problemas.
Sin embargo, uno puede notar que el sistema aún no está maduro y lo digo porque:
fuente
En realidad no he usado la pila completa, pero la usamos poco a poco en nuestro producto y parece bastante madura, aunque tuvimos que adaptar algunas piezas a nuestras necesidades.
fuente
Yo creo que si. Estoy usando EF4 code-first (CTP) para desarrollar una aplicación web multiinquilino.
fuente
Creo / espero que sí ... Estoy comenzando un proyecto con EF 4 y el nuevo enfoque Modelo Primero ...
Por lo que he visto, EF 4 es mucho más robusto y tiene características completas que la primera versión ... Diría que anímate, sé que voy :)
fuente
Sí, lo es, sin embargo, debe asignar recursos para actualizar y volver a probar su aplicación cuando salgan actualizaciones (como con cualquier otro marco).
fuente