Novedades VS 2008 – LINQ

0 comentarios

El presente post está dedicado a mostrarles una de las novedades más importantes a mi criterio que presenta el nuevo Visual Studio 2008. Estoy hablando de Lenguaje Integrado de Consultas o Consultas integradas en los lenguajes, más conocida como LINQ (Language Integrated Query).
Esta nueva funcionalidad permite mayores facilidades de consulta y procesamiento de a todo tipo de fuentes de datos y no sólo a BD relacionales y XML.
LINQ permite que las expresiones de consulta se beneficien de los metadatos ricos, verificación de sintaxis en tiempo de compilación, tipado estático y ayuda IntelliSense que antes estaban disponibles solo para el código imperativo.
LINQ en los lenguajes .NET define un conjunto de operadores de consulta estándar de propósito general que hacen posible que las operaciones de recorrido, filtro y proyección sean expresadas de una manera directa pero declarativa en cualquier lenguaje de programación. Los operadores de consulta estándar permiten aplicar las consultas a cualquier fuente de información basada en IEnumerable.

Para ver algunos ejemplos simples que muestre el potencial de esta nueva funcionalidad se puede mencionar que hasta ahora para buscar algo dentro de un List genérico o un Array List debíamos hacer un IndexOf, sacar en un int el índice y leer esa posición. Ahora haciendo un simple select podemos sacarnos n filas que cumplan n condiciones. Lo propio sucede con datos XML, para sacar algo de un XML debíamos leer todo el documento e ir comparando, pero ya no. Lanzamos contra él una consulta LINQ y listo, ya tenemos lo que queríamos.

En el siguiente ejemplo veremos cómo utilizar LINQ para obtener determinados datos desde un array en una aplicación de consola.

using System;
using System.Query;
using System.Collections.Generic;

class linq_app {
static void Main() {
string[] nombres = { "Carlos", "Pedro", "Juan", "María", "Esteban", "Jorge", "David" };
IEnumerable expr = from s in nombres
where s.Length == 5
orderby s
select s.ToUpper();

foreach (string item in expr)
Console.WriteLine(item);
}
}

Al ejecutar este código obtendremos el siguiente resultado:
David
Jorge
María
Pedro


Si ud. está familiarizado con las sentencias SQL, podrá notar la gran similitud entre una consulta en este lenguaje y el código anterior. A continuación explicaré cada una de las partes de la consulta.

From : variable que accederá a las campos del array en éste caso.
In : lista o array a utilizar como fuente de datos.
Where : filtros o condiciones de la consulta.
Select : campos de la lista o array que deseamos obtener. A diferencia de SQL se ubica al final de la sentencia.

Espero les haya sido de utilidad esta breve introducción a esta nueva funcionalidad del Framework 3.0 .Net. Espero sus comentarios y acotaciones al respecto. Saludos!

SSIS – Usar Package Configuration para parametrizar los paquetes

4 comentarios

SQL Server Integration Services (SSIS) cuenta con una opción sumamente útil a la hora de poner en producción nuestros packages. Dicha funcionalidad es Package Configuration y sirve, básicamente para parametrizar externamente algunos componentes tales como variables, ConnectionStrings para conexiones a Bases de Datos o archivos planos, etc. Esto se lleva a cabo desde archivos externos, comúnmente en formato XML.
Tal vez uno de los usos más frecuentes sea el parametrizar las ConnectionString de las conexiones a las BD tanto de origen como de destino, para de esta manera permitir que el package pueda trabajar con diferentes BD sin necesidad de que éste tenga que ser modificado. Simplemente modificando la cadena de conexión en el archivo de configuración podemos permitir trabajar con diferentes BD.
Los pasos a seguir para utilizar archivos de configuración de packages son los siguientes:
1. Ir al Menú SSIS, elegir la opción Package Configurations…
2. Se abrirá la Ventana de Package Configurations Organizer, en la cual debemos marcar el check que dice Enabled Package Configurations.


3. Hacer clic en el botón Add… tras lo cual se abre una nueva ventana de asistente que nos guiará en el proceso de creación del archivo de configuración. Si hacemos clic en el botón NEXT> ingresamos al primer paso de la creación. Aquí escogeremos el tipo o formato de archivo que deseamos configurar (normalmente lo dejaremos en XML) y luego debemos ingresar el path y el nombre que deseamos que tenga el archivo. Hacemos clic en NEXT> para ir al siguiente paso.


4. En este paso debemos seleccionar las propiedades que deseamos exportar al archivo de configuración. En nuestro caso, suponiendo que tenemos una conexión a una Base de Datos, seleccionaremos la propiedad “connectionstring” de dicha conexión. Damos clic en NEXT> para dirigirnos al último paso.


5. En éste último paso debemos colocar el nombre de configuración y damos click en Finish para culminar este proceso. De esta manera el archivo de configuración ya esta creado y podremos acceder a él para editar la cadena de conexión si lo creemos necesario.


6. Si nos dirigimos al path donde almacenamos el archivo de configuración y lo abrimos podremos ver que se trata de un simple archivo XML. Podemos modificar la connectionString realizando cambios en el lugar adecuado como puede observarse en la siguiente imagen.