Particularmente LINQ, como herramienta en sí, me parece simplemente espectacular. El nivel de abstracción que provee, integrado al lenguaje de programación, es un gran paso hacia adelante en la posibilidad de expresión que uno puede explotar dentro de la tecnología .Net
De la mano de LINQ vinieron LINQ to XML, LINQ to DataSets, LINQ to SQL y LINQ to Entities, dando la posibilidad de crear nuevos LINQ to xxxx debido a su modelo de extensibilidad.
Mas allá de si nos gustan o no los ORMs, a mi particularmente no me gustan demasiado, (si todavía no leíste este post de Diego Dagum acerca de los ORM, lo recomiendo), era algo que la comunidad de desarrollo venía pidiendo hace tiempo, y hoy por hoy nos encontramos con 2 tecnologías parecidas. LINQ to SQL y Entity Framework.
LINQ to SQL fue liberado hace mas de 1 año, junto con .Net 3.5 y Visual Studio 2008, y la versión final de Entity Framework fue liberada hace unos meses junto con .Net 3.5 SP1.
Si bien Entity Framework es mucho más completo y extensible, no puede dejar de compararse a uno con otro, y siempre emerge subrepticiamente la siguiente pregunta:
¿Por qué si estuvimos tantos años sin ORMs, ahora como si fuera poco tenemos 2?
Más allá de los objetivos de cada proyecto, no es demasiado difícil darse cuenta que en algún punto ambos colisionan…
Y según parece (era de esperar), la pelea la ganó LINQ to Entities.
A continuación hago una traducción (a la cordobesa) de un pedacito de texto extraido del blog del team de ADO.Net
¿Está muerto LINQ to SQL?
Continuaremos haciendo algunas mejoras en LINQ to SQL basándonos en el feedback de nuestros clientes. Dicho anuncio hacía referencia a exponer claramente nuestras intenciones y dar aviso que a partir de. NET 4.0, LINQ to Entities será la solución recomendada de acceso a datos para los escenarios de LINQ to Relational
Como se ha mencionado, hemos estado trabajando en esta decisión por varios meses. Cuando finalmente se tomó la decisión, consideramos importante dar a conocer inmediatamente dicha decisión a la comunidad.
Sabíamos que ser abiertos, daría lugar a una gran reaccion por parte de la comunidad, pero es importante ser transparentes acerca de lo que estamos haciendo tan pronto como sea posible…
O sea, como decimos por aqui... Mas claro, echale agua... :)