Primeras impresiones sobre LINQ

Visual Studio 2008Ayer estuve en la presentación de Visual Studio 2008 aquí en Valencia y la segunda charla fue sobre LINQ (Como no tengo la documentación, sólo propaganda, no recuerdo de memoria quién dió la charla, solo que era de Alcoi). Ya había visto algo pero francamente no lo había visto en acción.

Y la verdad es que LINQ me deja un sabor dulce aunque con un toque un poco agrio. Por un lado, es una herramienta muy potente y unificada para acceder a distintos orígenes de datos y colecciones (XML, arrays de objetos, bases de datos…) que además obliga a introducir novedades en C# muy interesantes. Pero sintácticamente no me gusta nada:

var directors = from movie in movies
where movie.Country == "Spain"
select movie.Director;

Y vale. Impresionante en ciertos aspectos: movies puede ser un XML o un array o cualquier cosa y finalmente directors será un array de objetos Director o de strings, según estén definidos en los objetos de la colección movies y además, Intellisense reconocerá los campos de la colección directors y nos permitirá autocompletar y detectar errores en tiempo de compilación.

Pero, ¿era necesaria esta sintaxis? Yo creo que no. Creo que una interfaz fluida (fluent interface) habría sido mucho más interesante desde el punto de vista de mantener la coherencia con el resto del C# (o VB.NET, para el caso es lo mismo) y no habría introducido artefactos de código un tanto forzados.

Por otro lado, no sé hasta qué punto es útil ofrecer facilidades para mezclar código de consultas a la base de datos por la aplicación, ya que en cierto modo fomenta las malas prácticas, pero eso es otro cantar.

Finalmente, no me gusta LINQ to SQL porque volvemos a estar con el mismo problema que con los datasets tipados: un diseñador semiautomático que mapea la base de datos para generar las clases que usará LINQ, pero ¿qué pasa cuando se hacen cambios en la base de datos? El diseñador de datasets era bastante propenso a hacer cosas raras al haber muchos cambios además de que generaba XSDs gigantescos además de los archivos de código asociados. De todos modos sobre esto aún no puedo hablar porque no lo he probado.

En fin, para gustos colores y desde luego que al final acabaré acostumbrándome a todo.Por supuesto, si funciona bien y es tan útil como parece lo usaré. Además están apareciendo proveedores de LINQ para todo, lo que es muy interesante.

Actualización 19/03/08: En el siguiente post, ya me va gustando más la sintaxis y explico algunos de los motivos que hay detrás y cómo funciona.

Si te ha gustado esta entrada, por favor deja un comentario o suscríbete al RSS para que puedas recibir todas las novedades en tu lector de feeds favorito.
This entry was posted in Programación and tagged , , , , . Bookmark the permalink.

One Response to "Primeras impresiones sobre LINQ"

Leave a reply