En los últimos años ha aumentado la tecnología todo gracias a sistemas inteligentes y la evolución de los lenguajes de programación orientada a objetos. Esto quiere decir que la mayoría de los programadores ya estan familiarizados con los conceptos como clases, objetos,metodos, etc. Microsoft se enfoco en esta gran ventaja y propuso que es un reto poder reducir la complejidad del acceso a la información. Hemos venido utilizando tecnologías para poder tener acceso a nuestra información, los cuales son las bases de datos relacionales y XML.
Microsoft crea un proyecto llamado LINQ (Lenguaje Integrado de Consultas)”Language Integrated Query” en donde el enfoque general es facilitar las consultas a fuentes de información y no solo a los datos relacionales o XML, si no que esta vez orientado a objetos.
Estas consultas integradas en los lenguajes .NET (Vb,C#) van a definir un conjunto de operadores de consulta estandar el cual nos permiten hacer operaciones de recorrido, filtro y proyecciones en los datos o información que estemos manejando.
¿Cuales son estos operadores de Consulta?
Si checamos el siguiente programa, en donde utilizamos un array de nombres y determinamos mediante una enumeración la consulta que queremos realizar, que sería saber todos los nombres que empiezen con la letra E. Tenemos que nuestros operadores serian : from, where, orderby,select.
{
static void Main()
}
¿Cuales son las características principales de LINQ?
LINQ está construido enteramente sobre características de los lenguajes de propósito general, algunas de las cuales son nuevas en C# 3.0 y Visual Basic 9.0.
- Expresiones lambda y árboles de expresión
Las expresiones lambda ofrecen a los desarrolladores una manera conveniente para poder escribir funciones que puedan ser pasadas como argumentos, hagamos de cuenta que las expresiones lambda son similares a los delegados del CLR.
Retomando el mismo ejemplo anterior agregaremos expresiones lambda:
class ejemplo1
{
static void Main() {
string[] _nombres = { "Edison", "Daniel", "Edgar","Esperanza", "Alberto", "Jorge","Omar","David" };
Func<string, bool> condicion = nom => nom.StartsWith("E");
Func<string, string> orden = nom => nom;
Func<string, string> seleccion = nom => nom;
IEnumerable<string> expresion = _nombres.Where(condicion)
.OrderBy(orden)
.Select(seleccion);
Console.ReadLine(); }
}
Checamos que las expresiones lambda tienen la ventaja de ofrecernos una sintaxis más directa y compacta para la escritura.
¿De qué se compone el proyecto de LINQ?
Podemos checar que el Proyecto LINQ se compone de C# 3.0, VB 9.0 y se aplica para Objetos, Base de datos Relacionales, XML.
Checaremos más ejemplos:
En este ejemplo lo que hacemos es tener un arreglo de tipo string en donde almaceno cierta cantidad de frutas y mi consulta se almacenara en un grupo de Frutas en donde clasificará a las frutas por la primera letra.
class Program
static void Main(string[] args){
string[] frutas = { "manzana", "pera", "sandia", "papaya", "piña", "mango","limon","guayaba","naranja" };
var grupoFrutas = from f in frutas
group f by f[0] into g
foreach (var g in grupoFrutas){
Console.WriteLine("Las frutas que empiezan con la letra ‘{0}’:", g.PrimeraLetra);
foreach (var f in g.frutas){
Console.WriteLine(f);
Puedes checar más sobre LINQ con estos links:
LINQ Project. – http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx
101 Ejemplos .- http://msdn2.microsoft.com/en-us/vcsharp/aa336746.aspx
en hora buena mi estimado edison, felicidades por la nueva chamba ak en geeks, a ver si luego invitas a postear.
sobre el articulo de intro muy bien, nos escribimos luego
Excelente trabajo Edision, te felicito por la gran habilidad de síntesis y forma de entregar contenido de calidad. No por nada estás calificado como de los mejores socios de Microsoft.
Saludos, un gran abrazo.