¿Entity Framework está listo para la producción? [cerrado]

10

Estoy estudiando Entity Framework para un nuevo proyecto que voy a emprender y, como parte de mi investigación, estoy preguntando a algunos profesionales de la industria si es estable y está listo para la implementación en el "mundo real".

En la carrera es:

  • EF
  • NHibernate
  • DevExpress XPO

Ya tengo mucha experiencia con XPO, pero no estoy particularmente contento con él.

Steven Evers
fuente

Respuestas:

8

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.

STW
fuente
+1: Gracias por la información. Afortunadamente, el proyecto es totalmente nuevo en la pila .NET (aún debatiendo entre el servidor mysql y el servidor sql), y primero voy a modelar el dominio (y espero generar la estructura de la tabla)
Steven Evers
@SnOrfus: FWIW Recientemente comencé a usar EF sobre MySQL, y realmente lo disfruto.
Eric King
5

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.

Jim Reineri
fuente
Trabajar con tanto es una gran manera de aprender cómo trabajar con ambos. Es un poco como aprender tanto VB.NET como C #: haces preguntas cuando ves diferencias, y hacer esas preguntas mejora tu comprensión al final.
STW
3

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:

  1. El comportamiento todavía cambia mucho (en comparación de CTP5 a 4.1)
  2. El generador LINQ to Entities solo puede manejar tipos básicos (Int, String, the lot)
  3. Algunas cosas no funcionaron de forma totalmente intuitiva cuando intentas fusionar los conjuntos de datos existentes
    1. No le permite crear solo definiciones de tabla para ciertos conjuntos de bases de datos
    2. La asignación de campos como fechas y horas requiere buscar en Google.
  4. Ver otros problemas conocidos
Alessandro Vermeulen
fuente
2

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.

matiash
fuente
0

Yo creo que si. Estoy usando EF4 code-first (CTP) para desarrollar una aplicación web multiinquilino.

Jakub Konecki
fuente
+1 - Sí, he realizado algunos entrenamientos en un equipo que lo usó intensamente en un proyecto empresarial muy grande, y funcionó bastante bien. Eso fue con la primera versión, no con la última. Así que estoy seguro de que es 100% seguro usar la última versión.
No sé cómo puede estar 100% seguro de cualquier software que no haya ejecutado en un entorno de producción.
Jeremy
-1

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 :)

sebagomez
fuente
-1

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).

casper
fuente