LINQ a fondo

  • View
    4.851

  • Download
    2

Embed Size (px)

Text of LINQ a fondo

Introduccin a LINQ Proveedores predeterminados Extendiendo LINQ a nuevos tipos de datos y libreras Recomendaciones de uso LINQ despus 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. Semntica enchufable: los lenguajes no definen la semntica de las nuevas palabras reservadas, sino nicamente un conjunto de reglas para reescribir esas expresiones como cascadas de llamadas a mtodos.

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 consultasLos datos provienen de cierta fuente, que implementa IEnumerable.

Operadores de consulta estndarNo todos los operadores tienen un reflejo en la sintaxis de los lenguajes. El patrn LINQ.

Restriccin Proyeccin Ordenacin Agrupacin Encuentros Cuantificadores Particin Conjuntuales Un elemento Agregados Conversin Conversin 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, Cast

Composicionales, jerrquicasAnidamiento arbitrario. Posibilidad de aplicar operadores adicionales.

Declarativas y no imperativasDiga qu usted desea obtener, no cmo. El cmo va por el proveedor.

Ejecucin diferidaLas 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 LINQ to DataSet LINQ to SQL LINQ to Entities s.dll

Basados en IQueryable System.Data.DataSetExtensionSystem.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 LINQBasados en IEnumerable LINQ to Objects LINQ to XML

Basados en IQueryable LINQ to SQL (el LINQ to Entities suyo)

LINQ to (el DataSets suyo)

XML

Basados en IEnumerable Interfaz Ejecucin Implementacin Proveedores IEnumerable Local, en memoria Iteradores LINQ to Objects LINQ to XML LINQ to DataSet LINQ to Pipes LoggingLINQ

Basados en IQueryable IQueryable Usualmente remota

Basados en IEnumerable

Basados en Anlisis de rboles IQueryable deexpresiones LINQ to SQL LINQ to Entities LINQ to TFS

Mis ejemplos

Habilite sus API existentes para LINQEspecficamente para consultas en memoria. Cree mtodos extensores que devuelvan un objeto IEnumerable.

Desarrolle su propio proveedor de consultasImplemente IQueryable. Analice rboles de expresiones y traduzca nodos a cdigo o a un lenguaje de consultas diferente.

Proveedores a medida

Analice cundo y cmo sus consultas se ejecutanMomento de ejecucin. Ejecucin local vs. remota. Lugar/capa de ejecucin real.

Mantenga las consultas dentro de ensambladosNo pase expresiones de consulta entre capas.

Cuidado con los tipos annimos!Planifique de antemano qu tipos son importantes. No abuse de las proyecciones.

Aprenda:A escribir consultas con y sin la sintaxis. Las nuevas caractersticas de C# 3.0 Los detalles de la traduccin de la sintaxis en llamadas a operadores y cmo funcionan stos.

Parallel LINQPasa partes de una consulta a diferentes ncleos/procesadores.

Proveedores de consultas de terceros:LINQ to Amazon, LDAP, SharePoint, NHibernate, MySql, Flickr, y mucho ms.

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 cdigo.Ms declarativo Muchos menos bucles a la vista. Cdigo ms fcil de leer y mantener.

Centro

de desarrollo C# de MSDN

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

Mi

libro, C# 3.0 y LINQ dotNetMana

http://www.krasispress.com/

Revista

http://www.dotnetmania.com/

Concenos! Pregntanos tus dudas

en el sorteo Y podrs ganar alguno de estos libros sobre .NET 3.5!

Entra

Plenaria Evolucin de la Plataforma de Servicios Windows Server 2008 para desarrolladoresHands On Labs en Sala Mnaco y entrega de libro de Visual Studio 2008 y Demos en Zona de Exposicin.

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 Lgica de Negocio Presentaci nModelo de Objetos (Datasets/Obj etos) Entidad Relacio es nes

Capa de Datos

Modelo Conceptual (EDM) Entidad Relacio es nes