Aprende LINQ de forma fácil y sencilla

Ahora que formalmente ya salió al mercado Visual Studio 2008 y que tiene características muy novedosas como LINQ, entre las más sobresalientes, este post está dedicado para todos quienes estén interesados en estudiar, testear o simplemente aprender las sentencias LINQ antes de realizarlo en VS2008, existe una herramienta que permite hacer todo esto, que es libre y que no necesita instalación, el único requisito previo para ejecutar esta herramienta es tener instalado el .Net Framework 3.5 y listo a usarla, esta herramienta se llama LINQPad que la puedes descargar aqui.

LINQPad Total
Esta herramienta se divide en 4 secciones:
Conexiones
LINQPad Conection

En la parte superior izquierda de LINQPad existe las opciones de conectarse a una base de datos SQL Server ocasionalmente o permanentemente como en el server explorer de Visual Studio. Además a través de la conexión se puede navegar entre los objetos de la base: tablas, funciones, procedimientos almacenados, vistas, etc.

Ejemplos y Sentencias

LINQPad Examples

La primera opción de la parte inferior izquierda se encuentra un panel con las sentencias que se han desarrollado y guardado, y junto a esto existe un sección donde se encuentran más de 200 ejemplos disponibles para aprender LINQ. La sección de ejemplos se divide en una breve introducción de lo que es LINQPad y luego ejemplos desarrollados en C# divido en secciones de LINQ Queries, LINQ Operators, LINQ to XML, LINQ Regular Expressions. Parece que en esta versión no se incluyen ejemplos para Visual Basic.

Consultas y Navegación

LINQPad Consultas

En la parte superior derecha de la herramienta se encuentra la sección de edición de las consultas, donde podremos ejecutar o detener una consulta, seleccionar la conexión que debe usar la sentencia que estamos desarrollando, además se elige el lenguaje en el que se desea escribir la consulta. Es importante mencionar que tiene soporte para C# como para Visual Basic, además puede ser útil también el compilador de sentencias SQL. Existe también alertas de error de sintaxis de las consultas en la parte superior de esta sección.

Resultados

LINQPad Results

En esta sección se muestran los resultados fruto de las consultas ejecutadas, en ella podemos encontrar el resultapo presentado en un grid. LINQ facilita en su sintaxis manejar lambda, por lo que una vez que se haya escrito y verificado el resultado de la consulta se puede generar la sintaxis de la consulta en expresiones lambda. Y la opción que está junto a lambda es SQL, al ingresar en esta opción se genera código SQL de la consulta realizada a una base de datos.

En la imagen anterior en la sección de resultados se puede observar la conversión a una sentencia lambda. En fin son varias las cosas que podemos realizar a través de esta herramienta, inclusive se pueden agregar assemblies. Entonces que esperas para ponerte a estudiar o simplemente testear tus consultas de forma sencilla y rápida. Les dejo con la imagen total de la herramienta.

LINQ con varios orígenes de datos

Una vez superado unos inconvenientes, he podido retomar un poco esta parte VS2008 y fundamentalmente LINQ, espero este post sea de su utilidad.

En un post anterior de LINQ había mostrado una demo 3 capas con SQLServer y unas pruebas con objetos y XML a lo cual LINQ ha pasado las pruebas.

Pretendía a través de este demo realizar una conexíon con 2 distintos orígenes de datos (SQL y Oracle) e intentar mapear tablas tanto de SQL como de Oracle, sin embargo, con las tablas de Oracle esto no es posible. A continuación detallo todos los pasos que se deben seguir para conectarse a una base oracle, con el Server Explorer. Tomar en cuenta que se debe instalar la base de datos Oracle y además el ODP (Oracle Data Provider) Net para que se pueda conectar.

  1. Seleccionar Oracle Database
  2. LINQ Multisource

  3. Ingresar el SID del servidor y el usuario y password de la base.
  4. LINQ Multisource 2
  5. Finalmente verificar que se haya conectado exitosamente.
  6. A continuación podemos ver el error resultante cuando pretendemos arrastrar una tabla Oracle en un dbml
  7. LINQ Multisource 3

En vista de que la intención inicial de la demo no fue posible, ahora intentaré al menos consultar la data de las dos bases. En Oracle están los datos de país de origen, tipo de teléfono, estado civil, etc. mientras que en SQL se encuentra la información de los empleados, por lo que para presentar el país de origen de los empleados es necesario hacer una consulta de las dos bases.

A través de un dataadapter consigo poner la data de la base Oracle en un Dataset y con el dbml de SQL intento realizar la consulta, pero nuevamente no es posible, imagino que no es posible utilizar sentencias LINQ con objetos diferentes (Dataset y dbmls), así que ya lo saben LINQ solo con objetos del mismo tipo.

El único camino que queda es mapear la data del dbml a un dataset tipificado con la estructura de las tablas de SQL e intentar realizar la consulta.

Efectivamente ese fue el mejor camino para presentar la data de dos data sources diferentes, se que la interfaz del resultado no es lo mejor que se puede hacer, pero para efectos de esta demo, considero que está bien, cumple con lo que quería mostrar.

LINQ Multisource Resultado

Además de los datos del empleado, se ha consultado los teléfonos para lo cual en el evento RowDataBound se han consultado y presentado en un grid agregado previamente como ItemTemplate. Bueno aqui tienen el código (recuerden renombrar el archivo a .zip) para que lo vean, los requerimientos para correrlo son: VS2008, SQL2005, Oracle XE 11g, ODP Net, deben crear las tablas cuyas estructuras pueden encontrar en los DataSets y la data se encuentra en la página de resultados.

Impresiones iniciales de Visual Studio 2008

Visual Studio 2008 fue recientemente liberado para los suscriptores MSDN, y pronto estará disponible para el público en general. Estos recientes acontecimientos me incentivan a mirar de cerca la última versión del IDE símbolo de Microsoft.

En esta vista general de Visual Studio 2008, empezaré por nombrar las diferentes versiones y luego me enfocaré en las nuevas características y la forma en la que el IDE le puede ayudar a ser más productivo. A continuación mis primeras impresiones de VS 2008.

Versiones de Visual Studio 2008

Existen varias Ediciones Express que ofrecen una versión reducida del IDE y focalizados en lenguajes específicos como C#, Visual Basic, and C++ así como también el Visual Web Developer Express Edition.

El siguiente paso es la versión estándar, la misma que ofrece todas las características del IDE y le permite utilizar el lenguaje de su elección.

Todo el paquete incluye herramientas de colaboración como Team System, el mismo que permite que varios desarrolladores trabajen juntos en proyectos .Net.

Visite MSDN para mayor información de las versiones.

Nuevas Características

El mayor cambio con Visual Studio 2008 es el uso del .Net Framework 3.5 y sus múltiples características nuevas como un mayor apoyo a los desarrolladores web y nuevas tecnologías como el lenguaje integrado de sentencias (LINQ, Language Integrated Query). El IDE además incluye: orientación a múltiples versiones de .Net, incremento de soporte para AJAX, integración con LINQ, y funciones para una unidad de pruebas.

Mi característica favorita del Visual Studio 2008 y por mucho es la capacidad de desarrollar aplicaciones utilizando otras versiones del .Net Framework. Esto significa que puede utilizar el nuevo IDE sin tener que actualizar a los proyectos existentes a la última versión del .NET Framework. Puede mantener estas aplicaciones mientras construye nuevas aplicaciones aprovechando las nuevas características del IDE. Es el mayor cambio de las versiones anteriores de Visual Studio, las que están obligados a versiones específicas de .NET (por ejemplo, .NET 1.x con Visual Studio 2003, .Net 2.x con Visual Studio 2005).

Esta característica es fácil de usar, la versión de .NET se selecciona de un menú desplegable cuando se va a crear un nuevo proyecto en el IDE. La lista de las plantillas disponibles cambia automáticamente de acuerdo a la versión de .Net seleccionada. Otro beneficio es que puedo usar una versión de Visual Studio en contraposición con el cambio de una diferente versión que refleje la versión de .NET que estoy usando.

Incluso si no está utilizando la última versión del .NET Framework, puede usar las nuevas características del IDE de Visual Studio 2008, independientemente de la versión de .NET elegida.

Aumentar la Productividad

Visual Studio 2008 incluye varias características que pueden ayudarle a utilizar mejor el tiempo, mientras codifica. Un buen ejemplo es el soporte de intellisense para JavaScript, que le permite obtener ayuda de la sintaxis JavaScript mientras está codificando, esto significa no más tiempo buscando libros o búsquedas en Google para obtener ayuda. Existe también mayor soporte de depuración en JavaScript, lo que hace más fácil la depuración de código del lado del cliente.

Se ha incrementado también el soporte de CSS a través de un mejor editor y un diseñador WYSIWIG que proporciona información instantánea de su trabajo. Además AJAX es ahora una parte estándar de .NET Framework con cambios que incluyen 3 nuevos controles.

Nota: Muchos de los comentarios que he leído son positivos acerca de la mejora en rendimiento de las páginas de diseño ASP.NET en Visual Studio 2008, pero no he trabajado lo suficiente en el IDE para estimar los méritos de estos comentarios.

Unidad de Pruebas

Una unidad de pruebas y VS no siempre han sido una buena combinación, pero Microsoft parece mejorar con cada versión de Visual Studio. Con Visual Studio 2008, se han añadido a la unidad de pruebas características de la edición profesional. Una nueva opción en el menú contextual (ejecutar pruebas) hace que sea más fácil de usar una vez que se haya establecido, esto le permite ejecutar una prueba con un clic del mouse. También, puede hacer clic derecho sobre la clase y ejecutar todas las pruebas en la clase.

Trabajando con Datos

Uno de los complementos más promocionados con el .Net Framework 3.5 y posteriormente por Visual Stuio0 2008 es LINQ. LINQ es un nuevo paradigma declarativo para consultar fuentes de datos de una manera coherente independientemente de la fuente de datos en memoria, SQL backend, XML, y algunos otros. LINQ es completamente extensible, así que las posibilidades son infinitas.

Tiene planes de utilizar Visual Studio 2008 pronto?

En el año que empieza, continuaré explorando varias características de VS2008 con proyectos antiguos y nuevos. Espero también resaltar mejoras adicionales para desarrollo y pruebas de aplicaciones móviles y desarrollo con Microsoft Office.

Esta pensando en utilizar esta nueva versión de VS en los próximos meses? Si ya está utilizando Visual Studio 2008, comparta sus ideas de uso y las nuevas características con la comunidad .Net.

Tomado de TechRepublic: Link

VS2008 Orcas, LINQ

Visual Studio 2008, conocido tambien como Orcas es el producto que el siguiente año tendremos en el mercado y que de seguro nos facilitará significativamente nuestro trabajo como desarrolladores, VS2008 trae algunas cosas nuevas e interesantes como LINQ (Language Integrated Query), esta API revoluciona todo el concepto de acceso y manejo de datos desde las aplicaciones, facilita enormemente el trabajo con distintos orígenes de datos, es extensible no solo a tablas de una base de datos, sino tambien con XML y con objetos (colecciones).

Ayer hubo un evento muy productivo en la UTPL, organizado por la comunidad de profesionales lojadotnet, en el que hice una Presentación LINQ y además el Demo LINQ (tiene una extensión .doc, que debes cambiar por .zip), así que en estos enlaces puedes descargarlos. Y seguir probando las ventajas que te da LINQ y VS2008. Para que puedas correr el ejemplo con BD, debes ejecutar el archivo script.sql, que se encuentra en el demo.