Acceso a bases de datos SQL de la vieja escuela versus ORM (NHibernate, EF, et al).¿Quién gana?

StackOverflow https://stackoverflow.com/questions/59972

  •  09-06-2019
  •  | 
  •  

Pregunta

He tenido éxito al escribir mi propio código de acceso SQL con una combinación de procedimientos almacenados y consultas parametrizadas y una pequeña biblioteca contenedora que escribí para minimizar el grunge de ADO.NET.Todo esto me ha funcionado muy bien en el pasado y he sido bastante productivo con ello.

Me estoy dirigiendo a un nuevo proyecto. ¿Debería dejar atrás mis cosas de la vieja escuela y profundizar en una solución basada en ORM?(Sé que existen grandes diferencias en conceptos elevados entre NHibernate y EF; no quiero entrar en eso aquí.En aras del argumento, incluso agrupemos LINQ con las alternativas de la vieja escuela). Estoy buscando consejos sobre la aplicación en el mundo real de cosas tipo ORM en comparación con lo que sé (y sé bastante bien).

¿Código ADO.NET u ORM de la vieja escuela?Estoy seguro de que hay una curva: ¿tiene la curva un retorno de la inversión que hace que las cosas valgan la pena?Estoy ansioso y dispuesto a aprender, pero tengo una fecha límite.

¿Fue útil?

Solución

Una buena pregunta pero un tema muy controvertido.

Esta publicación de blog de Frans Bouma hace unos años, citar las ventajas del SQL dinámico (lo que implica ORM) sobre los procedimientos almacenados desató una guerra bastante intensa.

Otros consejos

Encuentro que LINQ to SQL es mucho, mucho más rápido cuando estoy creando prototipos de código.Simplemente elimina cualquier otro método cuando necesito algo ahora.

Pero hay un costo.En comparación con los procesos almacenados hechos a mano, LINQ es lento.Especialmente si no tiene mucho cuidado, ya que cambios aparentemente menores pueden de repente convertirse en consultas 1+N.

Mi recomendación.Utilice LINQ to SQL al principio, luego cambie a procs si no obtiene el rendimiento que necesita.

Hubo una gran discusión sobre este tema en DevTeach en Montreal.Si vas a esta URL: http://www.dotnetrocks.com/default.aspx?showNum=240 Podrá escuchar a dos expertos en el campo (Ted Neward y Oren Eini) discutir los pros y los contras de cada enfoque.Probablemente la mejor respuesta que encontrará sobre un tema que no tiene una respuesta definitiva.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top