¿Hay alguna razón para seguir usando Linq to SQL, o es mejor pasar a técnicas ORM como EF, NHibernate, etc.
Estamos utilizando Linq to SQL en una nueva aplicación de gran empresa que existirá durante mucho tiempo. La motivación para esta nueva aplicación empresarial es que la aplicación fue escrita ordinariamente en Visual Basic y desde que Microsoft detuvo el soporte, nos vimos obligados a reescribir la aplicación. Parece que ya estamos allí, pero esta vez con nuestro DAL (Data Access Layer).
Ya leí este artículo , pero solo se compara con la debilidad de EF.
database-development
Amir Rezaei
fuente
fuente
Respuestas:
Si ya lo está utilizando y no encuentra dificultades, me quedaría con él en los proyectos existentes.
Linq2SQL es un ORM bastante agradable, pero limitado: si desea asignar sus objetos de formas más complejas que las básicas proporcionadas por Linq2SQL, entonces se quedará atascado. Microsoft solucionó algunos errores cuando salieron con .net 4, pero han declarado que no van a dedicar recursos para extenderlo.
Diría que si tiene un proyecto bastante simple que posiblemente tenga una vida útil limitada, entonces Linq2SQL es una opción liviana decente siempre que tenga cuidado de no filtrar las dependencias a Linq2SQL en todo el lugar. Para cualquier otra cosa, iría con otra cosa (NHibernate o EF, por ejemplo), ya que Linq2SQL es prácticamente un callejón sin salida.
fuente
No está muerto, pero Microsoft ahora está enfocado en Entity Framework.
He usado LINQ to SQL en proyectos pequeños, y es bastante bueno como una capa de datos liviana y consideraría usarlo nuevamente en proyectos de tamaño similar. La implementación de LINQ en sí misma es realmente buena y, hasta hace poco, mucho mejor que el proyecto NHibernate LINQ. En el proyecto más grande en el que utilicé L2S, me resultó difícil encontrar un patrón de unidad de trabajo con el que estuviese satisfecho, debido a las limitaciones con la clase L2S 'DataContext'. Intentar implementar algo como 'Sesión por solicitud' con L2S parece muy difícil o imposible.
Tampoco consideraría realmente L2S como un verdadero ORM, ya que realmente no le da muchas opciones de mapeo. El diseño de su clase realmente necesita seguir el esquema de su base de datos (tabla por clase) de lo contrario luchará con usted en cada paso del camino. Otra cosa que no me gusta de L2S es la necesidad de usar tipos específicos (
EntitySet
yEntityRef
) para manejar colecciones, referencias y carga diferida. Esto significa que no es posible mantener su modelo de dominio ORM agnóstico sin agregar otra capa de abstracción.Mi otro problema con L2S es la dependencia exclusiva de LINQ para generar consultas. El proveedor LINQ está muy bien escrito y, en general, crea un SQL decente para la mayoría de las consultas, pero me preocupa que haya consultas más complejas que no se pueden expresar bien con LINQ. Al usar L2S, básicamente tiene que volver a llamar a procedimientos almacenados en estos casos, mientras que (por ejemplo) NHibernate tiene varias API (proveedor LINQ, QueryOver, HQL, etc.) que se pueden usar cuando desea más control sobre el SQL generado.
En la defensa de L2S sobre NHibernate, hay mucho menos gastos generales para ponerlo en marcha en un proyecto.
fuente
No está muerto, ya que todavía funciona, pero si no se está desarrollando aún más, entonces puede tener sentido pasar a otra cosa.
Sin embargo, si funciona para su aplicación, no tiene sentido cambiar por el simple hecho de cambiar.
fuente
más estable que muerto en mi humilde opinión:
http://www.thinqlinq.com/default/LINQ-to-SQL-enhancements-for-2010.aspx
http://jonkruger.com/blog/2009/06/06/linq-to-sql-is-not-dead/
Han trasladado su esfuerzo de mejora a Entity Framework, donde realmente es necesario para que ese producto tenga éxito. No espere nada nuevo, pero la compatibilidad y la corrección de errores en linq2sql por un tiempo.
Este sitio se ejecuta con una gran cantidad de linq2sql si no me equivoco.
fuente
Es extraño, pero he visto muchas veces esta fraseología ("LINQ2SQL está muerto") y no estoy seguro de dónde proviene *. Es igual de muerto que Windows XP. Microsoft ha descontinuado el soporte y ha creado algo nuevo (y en mi opinión mejor), sin embargo, las personas aún pueden usar XP de la misma manera que pueden usar Linq2SQL. Es cierto que uso Linq2SQL al crear módulos DotNetNuke personalizados. Sin embargo, con nuevas características en EF4 como code-first-development ( http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx ) es difícil encontrar razones para seguir con Linq2SQL. No veo una razón para revisar y actualizar el código, pero para el nuevo código no sé por qué no querría usar EF4.
* Sin embargo, con toda honestidad, estoy muy ... obsesivo con la semántica. Pido disculpas si es molesto para los demás :)
fuente