LINQ/PLINQ

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    LINQ/PLINQ - Presentation Transcript

    1. LINQ & PLINQ
      (Parallel) Language Integrated Query
    2. Agenda
      Introduction to LINQ basics
      Overview of advanced capabilities
      Demo the Basics
      PLINQ intro
      Demo of PLINQ
    3. Introduction
      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 Breakdown
    5. LINQ Breakdown - Compiler
    6. LINQ Implementations
      LINQ to Objects
      Code (Reflection), Filesin 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. Making Use Of Linq
    8. Exception Handling
      Calling methods where failure is possible
      Make use of a ‘let’
    9. Built In Operators
      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. Extension Methods
      Custom Operators
      New Name
      Or Override Existing Operators (potentially bad practice)
      Specialise Existing – For a given type
    11. LINQ DEMO
      Basics in VS2010
    12. Advanced LINQ
      Recursive Lambda Expressions
      Through the use of Fix fixed-point generator
      Expression Trees
      MSDN Blogs: Mads Torgersen - Recursive Lambda Expressions
      Visitor Pattern using LINQ
      MSDN Blogs: Jomo Fisher – Dealing with LINQs immutable expression trees
    13. PLINQ Background
      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. Operating In Parallel
      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. Demo
      Projections
      Extension Methods
      Parallel Performance
      LINQ to XML
      LINQ to SQL Entities
    17. PLINQ Ideal Speedup
    18. Thank You
      Questions?
      More info on my blog; links, “refined wording”: http://NickJosevski.com
    SlideShare Zeitgeist 2009

    + melbournepatternsmelbournepatterns Nominate

    custom

    134 views, 0 favs, 1 embeds more stats

    LINQ/PLINQ - Nick Joesevski, 7th October 2009

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 134
      • 129 on SlideShare
      • 5 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 8
    Most viewed embeds
    • 5 views on http://melbournepatterns.org

    more

    All embeds
    • 5 views on http://melbournepatterns.org

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Tags