mejor - orm ventajas y desventajas
Las ventajas y desventajas de usar ORM (2)
"ORM no puede competir contra las consultas SQL para consultas complejas".
- Bueno, tanto LINQ-SQL como Entity Framework permiten consultas complejas e incluso la traducción de resultados de consultas SQL en objetos.
"Los desarrolladores no entienden lo que realmente está haciendo el código; el desarrollador tiene más control sobre el uso de SQL".
- En realidad no, si sabes lo que estás haciendo. El analizador de SQL es suficiente para ver cuáles son las consultas SQL traducidas.
"ORM tiene una tendencia a ser lento".
- Sí, pero el retraso en la carga y algunas opciones inteligentes pueden hacerlo casi tan rápido.
"Pérdida en la productividad del desarrollador mientras aprenden a programar con ORM".
- Hibernate y Entity Framework pueden tardar un tiempo en aprender, pero a la larga ahorrarán tiempo en el desarrollo. LINQ-SQL, por otro lado, tiene poca o ninguna curva de aprendizaje.
Yo digo, use ORM pero tenga esto en cuenta.
Diseñe sus consultas y escriba un código que resulte en el menor número de viajes de ida y vuelta con el servidor. Es la sobrecarga tomada para el viaje de ida y vuelta que toma tiempo.
Lea acerca de las experiencias que otras personas han tenido con el ORM seleccionado antes de profundizar demasiado.
Siempre compare sus consultas con las reales que se ejecutan en el perfilador del servidor SQL.
Edición: No usaría un ORM para una situación crítica de rendimiento de la misma manera que no usaría .Net o Java para escribir un sistema operativo. Tenga en cuenta sus necesidades antes de elegir. Incluso si no usa un ORM, terminará haciendo algunos mapas usted mismo, ya sea repitiendo una gran cantidad de código o utilizando un diccionario de datos. ¿Por qué no usar un ORM y saber cómo usar sus opciones para que sea CASI tan rápido? Sopese las ventajas y desventajas y haga su elección.
http://mikehadlow.blogspot.ca/2012/06/when-should-i-use-orm.html
Me gustaría discutir las ventajas y desventajas de usar ORM (como ADO.NET).
Ventajas:
- Desarrollo de velocidades: elimina la necesidad de código SQL repetitivo.
- Reduce el tiempo de desarrollo.
- Reduce los costos de desarrollo.
- Supera las diferencias de SQL específicas del proveedor: el ORM sabe cómo escribir SQL específico del proveedor para que no tenga que hacerlo.
Desventajas:
- Pérdida en la productividad del desarrollador mientras aprenden a programar con ORM.
- Los desarrolladores pierden la comprensión de lo que realmente está haciendo el código: el desarrollador tiene más control sobre el uso de SQL.
- ORM tiene una tendencia a ser lento.
- ORM no puede competir contra las consultas SQL para consultas complejas.
En resumen, creo que las ventajas de usar un ORM (principalmente el reducido tiempo que se tarda en realizar tareas repetitivas) están muy por encima de las desventajas de ORM, por ejemplo, es difícil enfrentarlos.
¿Puede la gente señalar dónde me equivoco y sugerir otras ventajas / desventajas?
Dependiendo del requisito, es posible que desee elegir utilizar o no ORM. Por ejemplo: el soporte del motor de persistencia múltiple (debe ejecutarse en Oracle, DB2, MySQL, SQL Server, etc.), puede beneficiarse de la abstracción que obtiene de ORM al costo de la pérdida potencial de rendimiento de la aplicación.
Si sabe que solo va a admitir un motor de persistencia en particular y desea poder aprovechar una característica en particular en el motor de persistencia que podría no ser compatible con el ORM, bueno ... tenga en cuenta la opción que debe elegir escoger.
Otro factor podría ser el conocimiento del desarrollador, como usted mencionó, y el tiempo para aprender las cosas nuevas y el tiempo real del proyecto (fecha límite dura, etc.). Esto se aplica tanto al personal que ya conoce un ORM particular como al personal que no conoce el ORM pero sobresale en ADO.NET / cualquier otra tecnología de acceso a datos de nivel inferior.