LINQ, DLINQ, XLINQ

Download as
 PPT
Presentation Description 

“Language Integrated Query” Evolution of application data  More

By:
 (5 month(s) ago)  
need to give presentaion on this , plz can you send it to my mail puneetbansal08@gmail.com
 (5 month(s) ago)
Download Allowed for this presentation. Can download from here now. -- Cheers!!

Views: 1393
Like it  ( Likes) Dislike it  ( Dislikes)
Added: March 06, 2008 This Presentation is Public 
Presentation Category : Education All Rights Reserved
Tags Add Tags
Presentation Statistics
Views on authorSTREAM: 1382 | Views from Embeds: 11
- 1 views

Others - 10 views
Presentation Transcript

LINQ, DLINQ and XLINQ: LINQ, DLINQ and XLINQ Harjeet Singh C# 3.0


What is LINQ?: What is LINQ? “Language Integrated Query” Evolution of application data management Coming with C# 3.0 and VB.NET 9.0 Goals Provide overview of the LINQ project Point out learning resources for self study Next week - LINQ practical Anders Hejlsberg Don Box


Philosophy of C# 3.0 And LINQ: Philosophy of C# 3.0 And LINQ Integrates object, relational semi-structured data models. By generalization, rather than by ad-hoc specializations Similar to database systems which now integrate the relational and XML data model SQL and XQuery.


The Problem: The Problem Worlds of OO and data access are far, far apart OO language types and native database types are often different SQL code is “inside the quotes” No strong typing or compile-time type checking No Intellisense No Statement completion SQL and XML have query languages, objects to not LINQ seeks to bridge the gap


What is LINQ?: What is LINQ? Standard Query Operators DLinq (ADO.NET) XLinq (System.Xml) .NET Language Integrated Query C# VB Others… Source: Anders Hejlsberg’s PDC Presentation


Standard Query Operators: Standard Query Operators Source: Anders Hejlsberg’s PDC Presentation


DLinq: DLinq A means of managing relational data SqlConnection c = new SqlConnection(…); c.Open(); SqlCommand cmd = new SqlCommand( @"SELECT c.Name, c.Phone FROM Customers c WHERE c.City = @p0"); cmd.Parameters.AddWithValue("@p0", "London“); DataReader dr = c.Execute(cmd); while (dr.Read()) { string name = dr.GetString(0); string phone = dr.GetString(1); DateTime date = dr.GetDateTime(2); } dr.Close(); Accessing data today: Queries in quotes Loosely bound arguments Loosely typed result sets No compile time checks


DLinq: DLinq public class Customer { … } public class Northwind: DataContext { public Table<Customer> Customers; … } Northwind db = new Northwind(…); var contacts = from c in db.Customers where c.City == "London" select new { c.Name, c.Phone }; Accessing data with DLinq Classes describe data Strongly typed connection Integrated query syntax Strongly typed results Tables are like collections


DLinq: DLinq Language integrated data access Maps tables and rows to classes and objects Builds on ADO.NET and .NET Transactions Mapping Encoded in attributes Relationships map to properties Persistence Automatic change tracking Updates through SQL or stored procedures


XLinq: XLinq XmlDocument doc = new XmlDocument(); XmlElement contacts = doc.CreateElement("contacts"); foreach (Customer c in customers) if (c.Country == "USA") { XmlElement e = doc.CreateElement("contact"); XmlElement name = doc.CreateElement("name"); name.InnerText = c.CompanyName; e.AppendChild(name); XmlElement phone = doc.CreateElement("phone"); phone.InnerText = c.Phone; e.AppendChild(phone); contacts.AppendChild(e); } doc.AppendChild(contacts); Programming XML today <contacts> <contact> <name>Great Lakes Food</name> <phone>(503) 555-7123</phone> </contact> … </contacts> Imperative model Document centric No integrated queries Memory intensive


XLinq: XLinq XElement contacts = new XElement("contacts", from c in customers where c.Country == "USA" select new XElement("contact", new XElement("name", c.CompanyName), new XElement("phone", c.Phone) ) ); Programming XML with XLinq Declarative model Element centric Integrated queries Smaller and faster


XLinq: XLinq Language integrated query for XML Expressive power of XPath / XQuery But with C# or VB as programming language Leverages experience with DOM Element centric, not document centric Functional construction Text nodes are just strings Simplified XML namespace support Faster and smaller


What is LINQ?: What is LINQ? The LINQ project is: Language Integrated Query for .NET Native query syntax for .NET languages Standard Query Operators SQL-like method extensions for any .NET collection System.Query namespace DLinq Code name for future version of ADO.NET Query enabled data access framework System.Data.Xlinq namespace XLinq Query enabled, smaller, faster XML DOM System.XML.Xlinq namespace


Benefits of LINQ: Benefits of LINQ Unified querying of objects, relational, XML Type checking and IntelliSense for queries SQL and XQuery-like power in C# and VB Extensibility model for languages / APIs


Resources: Resources LINQ Project Home Page http://msdn.microsoft.com/data/ref/linq/ Anders Hejlsberg – LINQ http://channel9.msdn.com/showpost.aspx?postid=114680 LINQ Project Overview Whitepaper http://msdn.microsoft.com/data/ref/linq/default.aspx?pull=/library/en-us/dndotnet/html/linqprojectovw.asp