Your SlideShare is downloading. ×

C# 3.0

2,466
views

Published on

C# 3.0, Андрей Свердлов, Клуб MAInfo.ru

C# 3.0, Андрей Свердлов, Клуб MAInfo.ru


0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,466
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
40
Comments
0
Likes
1
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. C# 3.0 Андрей Свердлов
    • 2. Эволюция языков программирования
    • 3. Что хотелось бы от ЯП Мульти-парадиг-мальность Унифици-рованный доступ к данным Чтобы писалось в кайф Деклара-тивное програм-мирование Повышение уровня абстракции Продуктивность
    • 4. Что насчет C#? C# (1.0)
    • 5. C# ( 1.0 )
      • Объектно-ориентированный язык;
      • Библиотека классов:
        • Windows Forms – дизайн окон;
        • ADO.NET – доступ к данным;
        • ASP.NET – web- приложения;
        • .NET Remoting – сетевое взаимодействие;
      • Делегаты и события;
      • Reflection – динамическая информация о типах данных;
      • GC – сборка мусора, автоматическое управление памятью (кучей).
    • 6. C# ( 1.0 ) Мульти-парадиг-мальность Унифици-рованный доступ к данным Чтобы писалось в кайф Деклара-тивное програм-мирование Повышение уровня абстракции Продуктивность
    • 7. Что насчет C#? C# (1.0) C# 2.0 Управляемый код ( сборка мусора, reflection, …)
    • 8. C# 2.0
      • Поддержка 64-битных приложений;
      • Поддержка Access Control List;
      • Улучшены:
        • ADO.NET – асинхронность и пользовательские типы;
        • ASP.NET – быстрее, выше, сильнее;
        • Всякие сетевые штуки ;
        • I/O;
      • Generic – List<T> m_MyList;
    • 9. C# 2 .0 Мульти-парадиг-мальность Унифици-рованный доступ к данным Чтобы писалось в кайф Деклара-тивное програм-мирование Повышение уровня абстракции Продуктивность
    • 10. Что насчет C#? C# (1.0) C# 2.0 C# 3.0 Управляемый код ( сборка мусора, reflection, …) Generics (родовое программирование, статическая параметризация типов)
    • 11. C# 3.0
      • Изменения языка:
        • Неявная типизация локальных перменных ( Implicitly Typed Local Variables );
        • Инциализация объектов и коллекций ( Object & Collection Initializers );
        • Расширения библиотечных классов ( Extension Methods );
        • Анонимные типы данных ( Anonymous Types );
        • Лямбда-вычисления ( Lambda Expressions );
        • Внутренний язык запросов ( Query Keywords );
        • Автосвойства ( Auto-implemented Properties );
        • Частичные определения методов ( Partial Method Definitions );
      • Работа с данными:
        • LINQ ;
        • O/R Designer ;
        • SQL Server Compact 3.5 (только в Visual C# 2008 Express) ;
      • Встроенная поддержка WPF ( редактор форм + IntelliSense);
      • Встроенная поддержка WCF;
      • Создание дистрибутивов ClickOnce для WPF Browser Applications.
    • 12. C# 3 .0 Мульти-парадиг-мальность Унифици-рованный доступ к данным Чтобы писалось в кайф Деклара-тивное програм-мирование Повышение уровня абстракции Продуктивность
    • 13. Что насчет C#? C# (1.0) C# 2.0 C# 3.0 Управляемый код ( сборка мусора, reflection, …) Generics (родовое программирование, статическая параметризация типов) Декларативное программирование Language Integrated Query
    • 14. C# 3.0
      • Изменения языка:
        • Неявная типизация локальных переменных ( Implicitly Typed Local Variables );
        • Инциализация объектов и коллекций ( Object & Collection Initializers );
        • Анонимные типы данных ( Anonymous Types );
        • Расширения библиотечных классов ( Extension Methods );
        • Внутренний язык запросов ( Query Keywords );
        • Лямбда-вычисления ( Lambda Expressions );
        • Автосвойства ( Auto-implemented Properties );
        • Частичные определения методов ( Partial Method Definitions );
      • Работа с данными:
        • LINQ ;
        • O/R Designer ;
        • SQL Server Compact 3.5 ;
      • Встроенная поддержка WPF ( редактор форм + IntelliSense);
      • Встроенная поддержка WCF;
      • Создание дистрибутивов ClickOnce для WPF Browser Applications.
    • 15. Неявная типизация локальных переменных Демо №1.1
    • 16. Неявная типизация локальных переменных
      • Объявление типа var ;
      • Только для локальных переменных;
      • Не является слабой или отложенной типизацией! Компилятор сам определяет наиболее подходящий тип;
      • Может использоваться внутри for, foreach, using.
    • 17. Инциализация объектов и коллекций Демо №1.2
    • 18. Инциализация объектов и коллекций
      • Нужно всегда вызывать нормальный конструктор ;
      • Коллекция – все, что IEnumerable и имеет public метод Add;
      • Поля объектов инициализируются в любом порядке и количестве.
    • 19. Анонимные типы данных Демо №1.3
    • 20. Анонимные типы данных
      • Это классы с public read-only полями;
      • Обязательно использование var;
      • Тип знает только компилятор – динамические типы!
      • Дальнейшее использование данных с анонимным типом только через var.
    • 21. Внутренний язык запросов
      • Теперь можно писать запросы, например:
      • Ключевые слова LINQ встроены в синтаксис C#.
      • О LINQ чуть позже
      var res = from x in Students where x.Age>16 select x.Name;
    • 22. Расширения библиотечных классов Демо № 2
    • 23. Расширения библиотечных классов
      • Можно «добавлять» методы в библиотечные классы;
      • Методы доступны только как методы конкретной переменной;
      • Методы объявляются как static в static классе;
      • В аргументах обязательно указывается this < расширяемый_класс > < аргумент >
    • 24. Автосвойства Демо № 3
    • 25. Автосвойства
      • Обязательно содержат и get, и set ;
      • В read-only свойстве set заменяется на private set;
      • Удобно 
    • 26. Частичные определения методов
      • Определение: public partial void Method ();
      • Реализация: public partial void Method () {…} ;
      • Странная ситуация - нет документации в MSDN .
    • 27. C# 3.0
      • Изменения языка:
        • Неявная типизация локальных переменных ( Implicitly Typed Local Variables );
        • Инциализация объектов и коллекций ( Object & Collection Initializers );
        • Расширения библиотечных классов ( Extension Methods );
        • Анонимные типы данных ( Anonymous Types );
        • Лямбда-вычисления ( Lambda Expressions );
        • Внутренний язык запросов ( Query Keywords );
        • Автосвойства ( Auto-implemented Properties );
        • Частичные определения методов ( Partial Method Definitions );
      • Работа с данными:
        • LINQ ;
        • O/R Designer ;
        • SQL Server Compact 3.5 ;
      • Встроенная поддержка WPF ( редактор форм + IntelliSense);
      • Встроенная поддержка WCF;
      • Создание дистрибутивов ClickOnce для WPF Browser Applications.
    • 28. LINQ
      • from id in source
      • { from id in source |
      • join id in source on expr equals expr [ into id ] |
      • let id = expr |
      • where condition |
      • orderby ordering , ordering , … }
      • select expr | group expr by key
      • [ into id query ]
    • 29. LINQ и расширения
      • Все выражения в запросе преобразуются в вызовы методов расширений:
        • Where;
        • OrderBy;
        • Select;
        • GroupBy;
        • Join;
    • 30. Object Relational Designer
      • Визуальный редактор классов и их отношений;
      • Позволяет привязывать объекты из базы данных к объектам LINQ;
      • Похож на UML , но намного беднее;
      • Наверно прикольная штука 
    • 31. C# 3.0
      • Работа с данными:
        • LINQ ;
        • O/R Designer ;
        • SQL Server Compact 3.5 ;
      • Изменения языка:
        • Неявная типизация локальных переменных ( Implicitly Typed Local Variables );
        • Инциализация объектов и коллекций ( Object & Collection Initializers );
        • Расширения библиотечных классов ( Extension Methods );
        • Анонимные типы данных ( Anonymous Types );
        • Лямбда-вычисления ( Lambda Expressions );
        • Внутренний язык запросов ( Query Keywords );
        • Автосвойства ( Auto-implemented Properties );
        • Частичные определения методов ( Partial Method Definitions );
      • Встроенная поддержка WPF ( редактор форм + IntelliSense);
      • Встроенная поддержка WCF;
      • Создание дистрибутивов ClickOnce для WPF Browser Applications.
    • 32. Всё! Спасибо, что выдержали %) Андрей Свердлов

    ×