introduccion a linq 1205779028184546 5

26
Comunidad .NET Mérida Aluxes.NET LINQ LINQ

Upload: google

Post on 10-May-2015

1.686 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Introduccion A Linq 1205779028184546 5

Comunidad .NET MéridaAluxes.NET

LINQLINQ

Page 2: Introduccion A Linq 1205779028184546 5

AGENDA

•¿Que es LINQ?•¿Por qué LINQ?•El proyecto LINQ•Consultas Integradas en los lenguajes•Mejoras a los lenguajes C# y VB para soportar LINQ•Usando LINQ to SQL•Demo•Conclusiones

Page 3: Introduccion A Linq 1205779028184546 5

¿ Que es LINQ ?

Es un componente del Microsoft.Net Framework que añade la capacidad de realizar consultas nativamente a través de los lenguajes .NET usando una sintaxis similar a la de SQL.

Es un modelo de programación que simplifica y unifica la implementación de acceso a cualquier tipo de dato. LINQ no impone a usar una arquitectura especifica mas bien facilita la implementación de varias arquitecturas existentes para acceso a datos.

Page 4: Introduccion A Linq 1205779028184546 5

¿Porque LINQ?Con frecuencia los programas deben acceder a diferentes dominios de datos:

Un documento XMLUna base de datosUna llave del registry

Cada dominio de datos tiene su propio modelo de acceso:

Bases de datos->SQLXML->DOM,XQuery

Diferentes enfoques para representar datos:Modelo RelacionalModelo JerárquicoModelo Grafico

Page 5: Introduccion A Linq 1205779028184546 5

C# 3.0C# 3.0C# 3.0C# 3.0 Visual Visual Basic 9.0Basic 9.0

Visual Visual Basic 9.0Basic 9.0 OthersOthersOthersOthers

.NET Language Integrated Query.NET Language Integrated Query

LINQ LINQ toto

ObjeObjectscts

LINQ LINQ toto

ObjeObjectscts

LINQ LINQ toto

DataDataSetsSets

LINQ LINQ toto

DataDataSetsSets

LINQ LINQ toto

SQLSQL

LINQ LINQ toto

SQLSQL

LINQ LINQ toto

EntitEntitiesies

LINQ LINQ toto

EntitEntitiesies

LINQ LINQ toto

XMLXML

LINQ LINQ toto

XMLXML

ObjectsObjects

<book> <title/> <author/> <year/> <price/></book>

XMXMLL

RelatioRelationalnal

Page 6: Introduccion A Linq 1205779028184546 5

• Es el nombre que recibe la API para los operadores de consulta estandard. Este permite hacer consultas en arreglos y colecciones de datos en memoria.

• Los operadores estandard de consulta son metodos estaticos de la clase estatica System.Linq.Enumerable, la cual se utiliza para crear consultas hacia objetos.

Page 7: Introduccion A Linq 1205779028184546 5

Este es el nombre que recibe la API para el manejo de DataSets. Muchos desarrolladores tienen mucho código existente para el uso de datasets.

Aquellos que no quieran quedarse rezagados, no necesitaran reescribir todo su código para aprovechar las ventajas de LINQ

Page 8: Introduccion A Linq 1205779028184546 5

Este es el nombre que recibe la API que permite interactuar con Microsoft SQL Server,esta interfaz fue conocida en versiones anteriores como DLinq.

Para poder hacer uso de esta API y aprovechar todas las características de la misma debemos hacer referencia al ensamble System.Data.Linq.dll y en código al namespace System.Data.linq

Page 9: Introduccion A Linq 1205779028184546 5

LINQ para SQL es una implementación de  O/RM(object relational mapping, mapeador de objetos relacionales)  que viene con la nueva versión del .NET Framework y nos permite modelar bases de datos relacionales con clases de .NET. Podemos consultar bases de datos con LINQ así como actualizar/añadir/borrar datos de ellas.

Visual Studio 2008 incluye un diseñador de LINQ To SQL para modelado de BD.

Page 10: Introduccion A Linq 1205779028184546 5

LINQ para entidades es un API alternativa utilizada para interactuar con bases de datos.

Esta separa el modelo de la base de datos de la base de datos física insertando un mapeo lógico entre los dos.

Page 11: Introduccion A Linq 1205779028184546 5

Esta API se utiliza para trabajar con XML. En versiones previas de LINQ fue conocida como Xlinq.Para poder aprovechar las ventajas de esta API hay que hacer referencia al ensamble System.Xml.Linq.dll y en código al namespace System.xml.linq

Page 12: Introduccion A Linq 1205779028184546 5

Consultas IntegradasSon una característica integrada del lenguaje principal del desarrollador (C#,VB).

Permiten que las expresiones de consulta se beneficien de los metadatos ricos, verificación de sintaxis en tiempo de compilación, tipado estatico y ayuda IntelliSense

Definen un conjunto de operadores de consulta estándar de propósito general que permiten a los lenguajes filtrar, enumerar y crear proyecciones de varios tipos de colecciones usando la misma sintaxis.

Page 13: Introduccion A Linq 1205779028184546 5

Mejoras en C# y VB para soporte de LINQ

Page 14: Introduccion A Linq 1205779028184546 5

Ejemplo de Consulta

Page 15: Introduccion A Linq 1205779028184546 5

Visual Studio 2008 viene con un diseñador de LINQ para SQL que nos aporta una forma fácil de modelar y visualizar una base de datos como un modelo de objeto de LINQ para SQL.

Usando ese diseñador LINQ para SQL podemos crear fácilmente una representación de la base de datos

Page 16: Introduccion A Linq 1205779028184546 5
Page 17: Introduccion A Linq 1205779028184546 5

Esta clase es a través de la cual realizaremos las consultas a las entidades de nuestra base de datos. Esta clase tendrá propiedades que representarán a cada tabla que hemos modelado, así como métodos para cada procedimiento almacenado que añadamos

Page 18: Introduccion A Linq 1205779028184546 5
Page 19: Introduccion A Linq 1205779028184546 5

C#

VB

Page 20: Introduccion A Linq 1205779028184546 5

C#

VB

Page 21: Introduccion A Linq 1205779028184546 5

Los resultados de las consultas LINQ implementan la interfaz IEnumerable - la cual es una interfaz que los controles de servidor de ASP.NET soportan para enlazar datos. Lo que implica que podemos enlazar los resultados de cualquier consulta LINQ, LINQ to SQL, o LINQ to XML a cualquier control ASP.NET.

Page 22: Introduccion A Linq 1205779028184546 5

Por ejemplo, podemos declarar un control <asp:gridview> en una página .aspx de la siguiente forma:

Page 23: Introduccion A Linq 1205779028184546 5

Luego, podemos enlazar los resultados de la consulta LINQ to SQL que escribimos antes:

Page 24: Introduccion A Linq 1205779028184546 5

Esto generará una página como la siguiente:

Page 25: Introduccion A Linq 1205779028184546 5
Page 26: Introduccion A Linq 1205779028184546 5