Introduccion a LINQ

33,861 views

Published on

En esta presentacion se muestran los elementos basicos de la tecnología LINQ

Published in: Technology
1 Comment
7 Likes
Statistics
Notes
No Downloads
Views
Total views
33,861
On SlideShare
0
From Embeds
0
Number of Embeds
422
Actions
Shares
0
Downloads
1,240
Comments
1
Likes
7
Embeds 0
No embeds

No notes for slide
  • Introduccion a LINQ

    1. 1. Comunidad .NET Mérida Aluxes.NET LINQ
    2. 2. AGENDA <ul><li>¿ Que es LINQ? </li></ul><ul><li>¿ Por qu é LINQ? </li></ul><ul><li>El proyecto LINQ </li></ul><ul><li>Consultas Integradas en los lenguajes </li></ul><ul><li>Mejoras a los lenguajes C# y VB para soportar LINQ </li></ul><ul><li>Usando LINQ to SQL </li></ul><ul><li>Demo </li></ul><ul><li>Conclusiones </li></ul>
    3. 3. ¿ Que es LINQ ? <ul><li>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. </li></ul><ul><li>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. </li></ul>
    4. 4. ¿Porque LINQ? <ul><li>Con frecuencia los programas deben acceder a diferentes dominios de datos: </li></ul><ul><ul><li>Un documento XML </li></ul></ul><ul><ul><li>Una base de datos </li></ul></ul><ul><ul><li>Una llave del registry </li></ul></ul><ul><li>Cada dominio de datos tiene su propio modelo de acceso: </li></ul><ul><ul><li>Bases de datos->SQL </li></ul></ul><ul><ul><li>XML->DOM,XQuery </li></ul></ul><ul><li>Diferentes enfoques para representar datos: </li></ul><ul><ul><li>Modelo Relacional </li></ul></ul><ul><ul><li>Modelo Jerárquico </li></ul></ul><ul><ul><li>Modelo Grafico </li></ul></ul>
    5. 5. C# 3.0 Visual Basic 9.0 Others .NET Language Integrated Query LINQ to Objects LINQ to DataSets LINQ to SQL LINQ to Entities LINQ to XML Objects <book> <title/> <author/> <year/> <price/> </book> XML Relational
    6. 6. <ul><li>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. </li></ul><ul><li>Los operadores estandard de consulta son metodos estaticos de la clase estatica System.Linq.Enumerable , la cual se utiliza para crear consultas hacia objetos. </li></ul>
    7. 7. <ul><li>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. </li></ul><ul><li>Aquellos que no quieran quedarse rezagados, no necesitaran reescribir todo su código para aprovechar las ventajas de LINQ </li></ul>
    8. 8. <ul><li>Este es el nombre que recibe la API que permite interactuar con Microsoft SQL Server,esta interfaz fue conocida en versiones anteriores como DLinq . </li></ul><ul><li>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 </li></ul>
    9. 9. <ul><li>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. </li></ul><ul><li>Visual Studio 2008 incluye un diseñador de LINQ To SQL para modelado de BD. </li></ul>
    10. 10. <ul><li>LINQ para entidades es un API alternativa utilizada para interactuar con bases de datos. </li></ul><ul><li>Esta separa el modelo de la base de datos de la base de datos física insertando un mapeo lógico entre los dos. </li></ul>
    11. 11. <ul><li>Esta API se utiliza para trabajar con XML. </li></ul><ul><li>En versiones previas de LINQ fue conocida como Xlinq . </li></ul><ul><li>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 </li></ul>
    12. 12. Consultas Integradas <ul><li>Son una característica integrada del lenguaje principal del desarrollador (C#,VB). </li></ul><ul><li>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 </li></ul><ul><li>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. </li></ul>
    13. 13. Mejoras en C# y VB para soporte de LINQ
    14. 14. Ejemplo de Consulta
    15. 15. <ul><li>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. </li></ul><ul><li>Usando ese diseñador LINQ para SQL podemos crear fácilmente una representación de la base de datos </li></ul>
    16. 17. <ul><li>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 </li></ul>
    17. 19. <ul><li>C# </li></ul><ul><li>VB </li></ul>
    18. 20. <ul><li>C# </li></ul><ul><li>VB </li></ul>
    19. 21. <ul><li>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. </li></ul>
    20. 22. <ul><li>Por ejemplo, podemos declarar un control <asp:gridview> en una página .aspx de la siguiente forma: </li></ul>
    21. 23. <ul><li>Luego, podemos enlazar los resultados de la consulta LINQ to SQL que escribimos antes: </li></ul>
    22. 24. <ul><li>Esto generará una página como la siguiente: </li></ul>

    ×