Que es Linq y...?
➢
Introduction to LINQ - MSDN
1. Cuáles son las formas de implementar Linq en vb.net y cómo?
Hay tres formas de utilizar LINQ en .Net.
1. Mediante extensiones.
Dim col As IEnumerable(Of Integer) = {3, 3, 3}.Distinct
2. Mediante métodos.
Dim col As IEnumerable(Of Integer) = Linq.Enumerable.Distinct(Of Integer)({3, 3, 3})
3. Mediante la sintaxis específica de LINQ/SQL.
Dim col As IEnumerable(Of Integer) = From value As Integer In {3, 3, 3} Distinct
➢
Enumerable Methods
2. Ya viene integrado en vb.net por lo que veo si o hay que instalar algo más?
Querrás decir que si viene integrado en .Net framework, no mezcles el lenguaje con el core (la librería de classes de .Net Framework), también se puede usar LINQ desde C#.
Lo único que necesitas para poder usar LINQ es desarrollar la app bajo .Net Framework 3.5 o superior, ya que esta tecnología fue implementada en la versión 3.5 y aparece a partir de dicha versión, por ende, en versiones anteriores no existe LINQ, si tienes pensado hacer alguna app en .Net Framework 2.0 por temas de compatibilidad entonces olvida LINQ.
3. Con referencia a la primer pregunta es conveniente utilizarlo trae alguna ventaja en el uso de VB.net?
Trae sus ventajas y sus desventajas.
( En internet o MSDN puedes informarte sobre muchos más detalles que seguramente serán más técnicistas. )
• Ventajas:
· La mayor ventaja es que optimiza el tiempo de desarrollo, el rendimiento del programador ...simplificando el código, ya que LINQ hace posible resolver problemas complejos en una serie de cortos métodos comprensibles.
· La IDE de VisualStudio provee Auto-completado e IntelliSense para la sintaxis LINQ, por lo tanto es secillo diseñar una consulta eficiente en poco tiempo, es decir, sabiendo lo que haces en cada momento gracias a la documentación y las descripciones de cada método en tiempo de diseño.
· La inicialización vaga (Lazy) de una colección Enumerable, que evita la ejecución inmediata de la consulta hasta que iteres los datos.
· El uso de expresiones Lambda en las extensiones de LINQ, siempre es más cómodo y más simplificado que si hubiese que usar delegados creando funciones adicionales solo para "X" consulta.
· La relación de types se resuelve automáticamente, pro LINQ es
type safe y esto evita errores comunes.
· La depuración (debugging) por parte del programador a una query siempre es más sencillo que tener que depurar un procedimiento lleno de Fors entre anidaciones de condicionales y de su p*** madre.
• Desventajas:
· Con LINQ tienes que iterar todos los datos, mantener los datos que quieres, y deshechar el resto, manejando así más datos de los los que realmente serían necesarios, causando una disminuición de rendimiento, pero esta diferencia de rendimiento entre el uso de un FOR y LINQ no se nota a menos que manejes muchos, muchos datos. Yo personalmente uso LINQ siempre que surge la oportunidad.
· Al programador inexperto que se está iniciando en .Net, el excesivo uso de LINQ puede acostumbrarle a malos hábitos de programación, me explico, si alguien quiere aprender las bases de programación para resolver problemas entonces LINQ no es la solución, ya que LINQ es una especie de "
dámelo todo hecho en dos lineas de código, ¡gracias!", y si no entiendes la mécanica de LINQ, entonces no has aprendido nada, pero por otro lado, opino que si LINQ existe es para usarlo, usar LINQ es muy cómodo o vago pero la base del buen programador es saber desenvolverse en el entorno utilizando las herramientas que el lenguaje te ofrezca para resolver problemas, y LINQ es una de esas herramientas que están ahí.
4. Estas consultas se pueden hacer a cualquier tipo de control seria a cualquier conjunto de datos que tenga en vb.net?
Puedes utilizar los métodos de LINQ con cualquier Class que implemente la interfáz
IEnumerable, que suele ser cualquier Type genérico.
➢
LINQ to Objects
5. La última lo recomendarían usar?
Teniendo en cuenta las ventajas de LINQ, personalmente Sí, usar LINQ siempre es un beneficio a menos que manejes muchos datos.
Saludos