Linq (from the inside)
-
Upload
michael-clement -
Category
Technology
-
view
1.945 -
download
2
description
Transcript of Linq (from the inside)
![Page 1: Linq (from the inside)](https://reader034.fdocuments.us/reader034/viewer/2022042614/554eba2bb4c905de468b4648/html5/thumbnails/1.jpg)
Linq (from the inside)
Reinventing the Linq to Objects wheelMike Clement
[email protected]@mdclement
![Page 2: Linq (from the inside)](https://reader034.fdocuments.us/reader034/viewer/2022042614/554eba2bb4c905de468b4648/html5/thumbnails/2.jpg)
![Page 3: Linq (from the inside)](https://reader034.fdocuments.us/reader034/viewer/2022042614/554eba2bb4c905de468b4648/html5/thumbnails/3.jpg)
![Page 4: Linq (from the inside)](https://reader034.fdocuments.us/reader034/viewer/2022042614/554eba2bb4c905de468b4648/html5/thumbnails/4.jpg)
![Page 5: Linq (from the inside)](https://reader034.fdocuments.us/reader034/viewer/2022042614/554eba2bb4c905de468b4648/html5/thumbnails/5.jpg)
![Page 6: Linq (from the inside)](https://reader034.fdocuments.us/reader034/viewer/2022042614/554eba2bb4c905de468b4648/html5/thumbnails/6.jpg)
![Page 7: Linq (from the inside)](https://reader034.fdocuments.us/reader034/viewer/2022042614/554eba2bb4c905de468b4648/html5/thumbnails/7.jpg)
LINQ to AmazonLINQ to Active DirectoryLINQ to Bindable Sources (SyncLINQ)LINQ to C# projectLINQ to Continuous Data (CLinq)LINQ to CRMLINQ To Geo - Language Integrated Query for Geospatial DataLINQ to ExcelLINQ to Expressions (MetaLinq)LINQ Extender (Toolkit for building LINQ Providers)LINQ to FlickrLINQ to GoogleLINQ to Indexes (LINQ and i40)LINQ to IQueryable (Matt Warren on Providers)LINQ to JSONLINQ to LDAPLINQ to NHibernateLINQ to JavaScriptLINQ to LLBLGen ProLINQ to LuceneLINQ to Metaweb(freebase)
LINQ to MySQL, Oracle and PostgreSql (DbLinq)LINQ to NCoverLINQ to Opf3LINQ to Parallel (PLINQ)LINQ to RDF FilesLINQ to SharepointLINQ to SimpleDBLINQ to StreamsLINQ to TwitterLINQ to WebQueriesLINQ to WMI
http://tomasp.net/blog/linq-expand.aspxhttp://tomasp.net/blog/linq-expand-update.aspx
Linq To WIQLLINQ to XtraGrid
Source: http://blogs.msdn.com/b/charlie/archive/2006/10/05/links-to-linq.aspx
![Page 8: Linq (from the inside)](https://reader034.fdocuments.us/reader034/viewer/2022042614/554eba2bb4c905de468b4648/html5/thumbnails/8.jpg)
If I have seen further it is by standing on the shoulders of giants.
-Sir Issac Newton
![Page 10: Linq (from the inside)](https://reader034.fdocuments.us/reader034/viewer/2022042614/554eba2bb4c905de468b4648/html5/thumbnails/10.jpg)
• Jon Skeet is immutable. If something’s going to change, it’s going to have to be the rest of the universe.
• Jon Skeet is the only top 100 SO user who is human. The others are bots that he coded to pass the time between questions.
• Jon Skeet does not use revision control software. None of his code has ever needed revision.
• When Jon Skeet’s code fails to compile, the compiler apologizes.• Jon Skeet is the traveling salesman. Only he knows the shortest
route.• The Dining Philosophers wait while Jon Skeet eats.• When Jon Skeet points to null, null quakes in fear.• Jon Skeet does not use exceptions when programming. He has
not been able to identify any of his code that is not exceptional.
![Page 11: Linq (from the inside)](https://reader034.fdocuments.us/reader034/viewer/2022042614/554eba2bb4c905de468b4648/html5/thumbnails/11.jpg)
• Jon Skeet has already written a book about C# 5.0.
• It’s currently sealed up.• In three years, Anders Hejlsberg is going to
open the book to see if the language design team got it right
![Page 12: Linq (from the inside)](https://reader034.fdocuments.us/reader034/viewer/2022042614/554eba2bb4c905de468b4648/html5/thumbnails/12.jpg)
from cust in customerswhere cust.City == "London"select cust;
customers.Where(cust => cust.City == "London");
![Page 13: Linq (from the inside)](https://reader034.fdocuments.us/reader034/viewer/2022042614/554eba2bb4c905de468b4648/html5/thumbnails/13.jpg)
C# Language Features
• Query Expressions• Implicitly Typed Variables• Object and Collection Initializers• Anonymous Types• Extension Methods• Lambda Expressions• Auto-implemented Properties
• Iterator blocks• Generics
![Page 14: Linq (from the inside)](https://reader034.fdocuments.us/reader034/viewer/2022042614/554eba2bb4c905de468b4648/html5/thumbnails/14.jpg)
public static void Method(this IInterface myInterface, int i)
Anatomy of an extension method
![Page 15: Linq (from the inside)](https://reader034.fdocuments.us/reader034/viewer/2022042614/554eba2bb4c905de468b4648/html5/thumbnails/15.jpg)
![Page 16: Linq (from the inside)](https://reader034.fdocuments.us/reader034/viewer/2022042614/554eba2bb4c905de468b4648/html5/thumbnails/16.jpg)
![Page 17: Linq (from the inside)](https://reader034.fdocuments.us/reader034/viewer/2022042614/554eba2bb4c905de468b4648/html5/thumbnails/17.jpg)
![Page 18: Linq (from the inside)](https://reader034.fdocuments.us/reader034/viewer/2022042614/554eba2bb4c905de468b4648/html5/thumbnails/18.jpg)
IMPLEMENT LINQ TO OBJECTSLearning by Doing… we’ll figure it out as we go.
![Page 19: Linq (from the inside)](https://reader034.fdocuments.us/reader034/viewer/2022042614/554eba2bb4c905de468b4648/html5/thumbnails/19.jpg)
![Page 20: Linq (from the inside)](https://reader034.fdocuments.us/reader034/viewer/2022042614/554eba2bb4c905de468b4648/html5/thumbnails/20.jpg)
![Page 21: Linq (from the inside)](https://reader034.fdocuments.us/reader034/viewer/2022042614/554eba2bb4c905de468b4648/html5/thumbnails/21.jpg)
C# Language Features
• Query Expressions• Implicitly Typed Variables• Object and Collection Initializers• Anonymous Types• Extension Methods• Lambda Expressions• Auto-implemented Properties
• Iterator blocks• Generics
![Page 22: Linq (from the inside)](https://reader034.fdocuments.us/reader034/viewer/2022042614/554eba2bb4c905de468b4648/html5/thumbnails/22.jpg)
Resources
• Classification by Manner of Execution• C# Features• List of Linq Providers (and other links)• EduLinq code blog posts (from Jon Skeet)• MoreLinq (from Jon Skeet)• My Starter Project
– https://github.com/mdclement/Linq--from-the-inside--Presentation-Base
![Page 23: Linq (from the inside)](https://reader034.fdocuments.us/reader034/viewer/2022042614/554eba2bb4c905de468b4648/html5/thumbnails/23.jpg)
Action Items!
• Read Jon Skeet’s EduLinq series.• Download my “starter” and play!• If you aren’t already, use Linq in your everyday
coding.• Look for other Linq operators to implement.• Attend the Utah Software Craftsmanship
Group!
![Page 24: Linq (from the inside)](https://reader034.fdocuments.us/reader034/viewer/2022042614/554eba2bb4c905de468b4648/html5/thumbnails/24.jpg)
Me
• @mdclement• [email protected]• http://blog.softwareontheside.com• Utah Software Craftsmanship Group
– https://groups.google.com/forum/#!forum/ut-software-craftsmanship
– @utahsc– First Wednesday, Neumont, Room 300