• Like
  • Save
LINQ: How It Works
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

LINQ: How It Works

  • 919 views
Published

Talk for TulaDev.NET User Group …

Talk for TulaDev.NET User Group

Language: Russian

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
919
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. TulaDev.NET
    LINQ: как это работает
    Те скрытые строки кода, которые позволяют вам писать красиво и элегантно
    Андрей Кулешов
    Codemasters International
    Senior C# Developer, Team Lead
    akuleshov@codereign.net | http://www.codemastersintl.com/Blogs/Andrey-Kuleshov
  • 2. Что будет:
    Синтаксис LINQ
    С какими источниками данных это уже работает?
    Как они это компилируют?
    Как они это выполняют?
    Как мы можем расширитьLINQ на свою систему?
  • 3. Синтаксис языка C#
    Стандартные операторы запросов
    Реализующий запросы фреймворк
  • 4. Как это выглядит
  • 5. Источник
    данных
  • 6. Ссылка на сущность в источнике данных
    Источник
    данных
  • 7. Источник
    данных
    Ссылка на сущность в источнике данных
    Фильтрация и сортировка
  • 8. Источник
    данных
    Ссылка на сущность в источнике данных
    Фильтрация и сортировка
    Преобразование
    данных
  • 9. Как это видит компилятор
  • 10. Как это видит компилятор
  • 11. И что это за метод?
    xs.Where(x => x.Id == 1)
    Queryable.Where(
    xs,
    x => x.Id == 1)
    Enumerable.Where(
    xs,
    x => x.Id == 1)
    delegate(int x) {
    return x.Id == 1;
    }
    Expression.Lambda(
    Expression.Equal(…),
    Expression.Parameter(…)
    )
  • 12. Queryable
    IQueryProvider
    SQL
    Entities
    NHibernate

    Как это выполняется
  • 13. Дерево выражений
    BinaryExpression
    /
    ConstantExpression
    BinaryExpression
    2
    *
    b
    h
    ParameterExpression
    ParameterExpression
  • 14. Как расширить LINQCustom LINQ Extensions
    Extension Methods for LINQ to Objects:LINQ to Xml:IEnumerable<XElement> Descendants();
    Custom Linq To Anything providers:LINQ to TerraServer-USA Web servicehttp://msdn.microsoft.com/en-us/library/bb546158.aspx
  • 15. Вопросы?Внимательно слушаю 
    Андрей Кулешов
    Codemasters International
    Senior C# Developer, Team Lead
    akuleshov@codereign.net | http://www.codemastersintl.com/Blogs/Andrey-Kuleshov
  • 16. Источники
    Programming Microsoft LINQ. Paolo Pialorsi, Marco Russo
    MS TechEd New Zealand session:LINQ Confidential: A Deep Dive Into How LINQ Works by Ivan Towlson http://www.msteched.com/2010/NewZealand/DEV401
    Создание Custom LINQ Providerhttp://msdn.microsoft.com/en-us/library/bb546158.aspx
    Андрей Кулешов
    Codemasters International
    akuleshov@codereign.net | http://www.codemastersintl.com/Blogs/Andrey-Kuleshov