Actualmente tenemos la siguiente pila:
- VS 2005
- Formularios web
- SQL Server 2005
- IIS 6
Estamos planeando hacer la transición a esto:
- VS 2010
- MVC y formularios web
- SQL Server 2008
- IIS 7
Mi pregunta es, cuando pasamos a MVC con VS 2010, ¿deberíamos usar Entity Framework (u otro ORM), un micro ORM (como Massive ) o simplemente SQL?
Todos los tutoriales que he leído sobre VS 2010 están orientados al uso de Entity Framework para las transacciones de datos, pero ¿eso estará disponible en el futuro previsible (más de 5 años)?
Si es importante, las aplicaciones de nuestros clientes pueden tener entre 10 y 1,000 usuarios activos.
asp.net
asp.net-mvc
entity-framework
webforms
guanome
fuente
fuente
Respuestas:
Recientemente cambié de usar consultas SQL en línea a usar EF y esto es lo que he encontrado:
Pros
Contras
1:0-1
relación donde EF quiere usar un1:0-*
Sin embargo, no soy un experto en EF, por lo que probablemente me perdí algunas cosas. Estos son solo los elementos que sé que he encontrado en el pasado al cambiar de SQL en línea a Entity Framework. Me alegro de haber hecho el cambio, pero ha habido momentos en los que realmente odio a EF debido a sus peculiaridades.
fuente
Entity Framework es una herramienta de productividad. A menos que tenga una buena razón para no hacerlo (por ejemplo, está en SQL 2000 o no tiene tiempo para aumentar la tecnología), utilice las mejores herramientas a su disposición.
Dicho esto, creo que el concepto de Entidades se traduce muy bien al Modelo del patrón MVC. Si bien tener una relación 1: 1 con Modelos y tablas es una mala práctica, pensar en términos de Entidades tiende a producir diseños limpios, código fácil de leer (especialmente con LINQ).
Entity Framework es activamente compatible con Microsoft. Nadie tiene una bola de cristal mágica para decir "el apoyo durará X años". No veo ninguna razón para creer que Entity morirá en los próximos 5 años.
fuente
Otra posible solución es utilizar una biblioteca alternativa de Entity Framework que no sea la que se proporciona con VS. Existen algunas en la web.
El concepto de marco Entity / 3 layer, ha estado disponible por un tiempo, y ha trabajado con varias bibliotecas personalizadas, como muchos otros desarrolladores, antes de que Microsoft lanzara su propio marco "oficial".
Pros
Tenga los beneficios del marco de Entity (DAL), sin estar atascado con las bibliotecas constantes de Microsoft / cambios en el marco.
Agregar características a una biblioteca que tal vez no estén disponibles para la biblioteca oficial existente, como usar varias marcas de dtabase.
Contras
Tiene que soportar la biblioteca o las herramientas. Es muy común tener una herramienta de código de generador de entidades para generar las unidades.
fuente
Debe tomar una decisión arquitectónica basada en el problema y la solución existente. Como con cualquier tecnología, hay ventajas y desventajas.
Personalmente, normalmente usaría el marco de la entidad para un nuevo desarrollo, pero no reescribiría el código existente que funciona. Luego obtienes la velocidad para el futuro despliegue, pero no tienes que invertir mucho tiempo convirtiendo el código. La desventaja de ese enfoque es que reduce la consistencia.
fuente
En su situación, definitivamente usaría Entity Framework, he encontrado que funciona bien con MVC.
Aquí hay algunas razones reales y sugerencias.
Sin embargo, hay varias cosas que necesitará aprender sobre el uso de un ORM.
Cosas para considerar
También recomendaría encarecidamente el primer enfoque de código, incluso si tiene una base de datos existente.
fuente