Introducción a LINQ Proveedores “predeterminados” Extendiendo LINQ a nuevos tipos de datos y librerías Recomendaciones de uso LINQ después de .

NET 3.5 Demos

Mecanismo uniforme y extensible para consultar fuentes de datos de diferentes tipos: las expresiones de consulta. Sintaxis basada en nuevas palabras reservadas contextuales. Semántica “enchufable”: los lenguajes no definen la semántica de las nuevas palabras reservadas, sino únicamente un conjunto de reglas para reescribir esas expresiones como cascadas de llamadas a métodos.

var delMadrid = from f in DatosFutbol.Futbolistas where f.CodigoClub == “RMA" select new { f.Nombre, f.Edad };

var delMadrid = DatosFutbol.Futbolistas .Where(f => f.CodigoClub == “RMA") .Select(f => new { f.Nombre, f.Edad });

Fuentes de consultas
Los datos provienen de cierta fuente, que implementa IEnumerable<T>.

Operadores de consulta estándar
No todos los operadores tienen un reflejo en la sintaxis de los lenguajes. El patrón LINQ.

Restricción Proyección Ordenación Agrupación Encuentros Cuantificadores Partición Conjuntuales Un elemento Agregados Conversión Conversión de elementos

Where Select, SelectMany OrderBy, ThenBy GroupBy Join, GroupJoin Any, All Take, Skip, TakeWhile, SkipWhile Distinct, Union, Intersect, Except First, Last, Single, ElementAt Count, Sum, Min, Max, Average ToArray, ToList, ToDictionary OfType<T>, Cast<T>

Composicionales, jerárquicas
Anidamiento arbitrario. Posibilidad de aplicar operadores adicionales.

Declarativas y no imperativas
Diga qué usted desea obtener, no cómo. El cómo va por el proveedor.

Ejecución diferida
Las consultas se ejecutan solo a medida que sus resultados se solicitan.

Tecnologí a LINQ to Objects

Ensamblado System.Core.dll

Espacio de nombres System.Linq System.Xml.Linq System.Data

LINQ System.Xml.Linq.dll to XML Basados en IEnumerable<T> LINQ to DataSet LINQ to SQL LINQ to Entities s.dll

Basados en IQueryable<T> System.Data.DataSetExtension
System.Data.Linq.dll System.Data.Entity.dll Silverlight 2.0

System.Data.Linq System.Data.Objec ts y otros

.NET 3.5

.NET 3.5 CF

LINQ to Objects, XML, SQL, Entities

C# 3.0

VB 9.0

Otros…

Proveedores LINQ
Basados en IEnumerable<T> LINQ to Objects LINQ to XML
<libro> <titulo/> <autor/> <precio/> </libro>

Basados en IQueryable<T> LINQ to SQL (el LINQ to Entities suyo)

LINQ to (el DataSets suyo)

XML

Basados en IEnumerable<T> Interfaz Ejecución Implementación Proveedores IEnumerable<T> Local, en memoria Iteradores LINQ to Objects LINQ to XML LINQ to DataSet LINQ to Pipes LoggingLINQ

Basados en IQueryable<T> IQueryable<T> Usualmente remota

Basados en IEnumerable<T>

Basados en Análisis de árboles IQueryable<T> de
expresiones LINQ to SQL LINQ to Entities LINQ to TFS

Mis ejemplos

Habilite sus API existentes para LINQ
Específicamente para consultas en memoria. Cree métodos extensores que devuelvan un objeto IEnumerable<T>.

Desarrolle su propio proveedor de consultas
Implemente IQueryable<T>. Analice árboles de expresiones y traduzca nodos a código o a un lenguaje de consultas diferente.

Proveedores “a medida”

Analice cuándo y cómo sus consultas se ejecutan
Momento de ejecución. Ejecución local vs. remota. Lugar/capa de ejecución real.

Mantenga las consultas dentro de ensamblados
No pase expresiones de consulta entre capas.

Cuidado con los tipos anónimos!
Planifique de antemano qué tipos son importantes. No abuse de las proyecciones.

Aprenda:
A escribir consultas con y sin la sintaxis. Las nuevas características de C# 3.0 Los detalles de la traducción de la sintaxis en llamadas a operadores y cómo funcionan éstos.

Parallel LINQ
Pasa partes de una consulta a diferentes núcleos/procesadores.

Proveedores de consultas de terceros:
LINQ to Amazon, LDAP, SharePoint, NHibernate, MySql, Flickr, … y mucho más.

LINQ 2.0

LINQ es un mecanismo uniforme y extensible para consultar fuentes de datos de diferentes tipos LINQ cambiará la forma en que escribimos código.
Más declarativo Muchos menos bucles “a la vista”. Código más fácil de leer y mantener.

 Centro

de desarrollo C# de MSDN

http://msdn.microsoft.com/vcsharp/

 Mi

libro, “C# 3.0 y LINQ” dotNetManía

http://www.krasispress.com/

 Revista

http://www.dotnetmania.com/

 

¡Conócenos! Pregúntanos tus dudas

en el sorteo Y podrás ganar alguno de estos libros sobre .NET 3.5!

¡Entra

Plenaria Evolución de la Plataforma de Servicios Windows Server 2008 para desarrolladores
Hands On Labs en Sala Mónaco y entrega de libro de Visual Studio 2008 y Demos en Zona de Exposición.

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Sistemas Externos Lógica de Negocio Presentació n
Modelo de Objetos (Datasets/Obj etos) Entidad Relacio es nes

Capa de Datos

Modelo Conceptual (EDM) Entidad Relacio es nes

Sign up to vote on this title
UsefulNot useful