Presentation is loading. Please wait.

Presentation is loading. Please wait.

LINQ & PLINQ (Parallel) Language Integrated Query.

Similar presentations


Presentation on theme: "LINQ & PLINQ (Parallel) Language Integrated Query."— Presentation transcript:

1 LINQ & PLINQ (Parallel) Language Integrated Query

2 A GENDA Introduction to LINQ basics Overview of advanced capabilities Demo the Basics PLINQ intro Demo of PLINQ

3 I NTRODUCTION LINQ IS... A programming model that Introduces queries as a “first class” concept into.NET More leg room! Is an abstraction level for data Don’t you just love abstraction, it’s great! Is another tool for embedding SQL queries into code “This code was written by a tool” – not that kind of tool! Allows for uniform manipulation of any data type Consistently producing consistent consistency!

4 LINQ B REAKDOWN

5 LINQ B REAKDOWN - C OMPILER

6 LINQ I MPLEMENTATIONS LINQ to Objects Code (Reflection), Files in FileSystem LINQ to ADO.NET LINQ to SQL LINQ to DataSet LINQ to Entities LINQ to XML XDocument, XElement, XAttribute, XNode, etc In System.Xml.Linq.Document

7 M AKING U SE O F L INQ

8 E XCEPTION H ANDLING Calling methods where failure is possible Make use of a ‘let’

9 B UILT I N O PERATORS Query Where Projection Select SelectMany Ordering OrderBy OrderByDescending ThenBy ThenByDescending Reverse Grouping GroupBy Aggregate Count, LongCount Sum, Average Aggregate Min, Max Set Distinct Union, Intersect, Except Join Join, GroupJoin Generation Range, Repeat, Empty Quantifiers Any, All, Contains Partitioning Take, TakeWhile Skip, SkipWhile Element Operators First, FirstOrDefault Last, LastOrDefault Single, SingleOrDefault ElemenentAt, ElementAtOrDefatult DefaultIfEmpty Other Concat SequenceEqual

10 E XTENSION M ETHODS Custom Operators New Name Or Override Existing Operators (potentially bad practice) Specialise Existing – For a given type

11 LINQ DEMO Basics in VS2010

12 A DVANCED LINQ Recursive Lambda Expressions Through the use of Fix fixed-point generator Expression Trees MSDN Blogs: Mads Torgersen - Recursive Lambda ExpressionsRecursive Lambda Expressions Visitor Pattern using LINQ MSDN Blogs: Jomo Fisher – Dealing with LINQs immutable expression treesDealing with LINQs immutable expression trees

13 PLINQ B ACKGROUND Part of managed concurrency library in the.NET Framework Simplify concurrent processing Makes use of the Task Parallel Library (TPL) TPL in turn uses Parallel.For Parallel.ForEach Parallel.Invoke

14 O PERATING I N P ARALLEL Partitioning Based on computation and data type Range (Arrays, Lists) – Index into structure, equal split Not the most ideal for load balancing Striped Chunks of input Chunk level load balancing Hash Execution On available cores Merge Results Initial thread picks up results (consumer thread) ForAll, Async (pipelining), Sync (stop-and-go) PLINQ takes care of threading events, signalling, concurrency, locking, etc.

15 PLINQ DEMO Speed up of processing using multiple cores

16 D EMO Projections Extension Methods Parallel Performance LINQ to XML LINQ to SQL Entities

17 PLINQ I DEAL S PEEDUP

18 T HANK Y OU Questions? More info on my blog; links, “refined wording”: http://NickJosevski.com


Download ppt "LINQ & PLINQ (Parallel) Language Integrated Query."

Similar presentations


Ads by Google