О чём курс
Курс, посвященный тонкостям языка C# и платформы .NET.
В любом современном языке есть возможности, поведение которых не очевидно с первого взгляда и язык C# в этом плане не исключение. За последние 12 лет язык C# претерпел огромное количество изменений, превратившись из "простого" объектно-ориентированного языка, в гибрид с возможностью использования различных парадигм программирования.
В курсе рассматриваются тонкости поведения "продвинутых" возможностей языка C#, причины их появления, а также решения, которые принимались при их разработке.
Данный курс является модулем программы "
Продвинутая разработка в Microsoft .NET".
Цели
- Изучить тонкости языка C# и основные "продвинутые" возможности, которые позволят использовать существующие возможности языка на новом уровне.
- Дать понимание того, как думали разработчики компилятора при разработке тех или иных возможностей, а также рассмотреть направление развитие языка C# в будущем.
Целевая аудитория
Старшие .NET разработчики и архитекторы.
Предварительная подготовка
Для кого
Разработчик
Улучшаемые навыки
Оптимизация кода
Использование расширений
Работа с асинхронностью
Управление памятью и ресурсами
Использование атрибутов и рефлексии
Темы курса
01
События и делегаты (1 ч.)
- Иммутабельность делегатов
-
Потокобезопасная подписка
-
Виртуальные события
02
Утиная типизация на уровне компилятора языка C# (0,5 ч.)
- Цикл foreach
-
LINQ (Query Comprehension syntax)
-
Collection initializer
-
C# 5.0 Async Features
03
Жизненный цикл объекта (1 ч.)
- Порядок вызова конструкторов
-
Порядок вызова статических конструкторов
-
Гонки и время сборки мусора
04
Именованные и необязательные аргументы (0,5 ч.)
⠀
05
Особенности обработки исключений (1 ч.)
⠀
06
Преобразование типов, определенных пользователем (1 ч.)
⠀
07
Блоки итераторов (0,5 ч.)
⠀
- Базовые сведения
-
Equals и GetHashCode
-
Изменяемые значимые типы
-
Упаковка
- Объединения (unions)
-
Ковариантность и устройство массивов
-
Перегрузка и наследование
-
Может ли this быть null?
-
Неявная реализация методов интерфейса
11
Асинхронное программирование (0,25 ч.)
⠀
Чему вы научитесь
01
Научитесь применять различные приемы и техники для оптимизации кода на C#, включая улучшение производительности и читаемости
02
Освоите возможности использования методов расширения
03
Научитесь использовать асинхронные методы и паттерны
04
Освоите лучшие практики управления памятью и ресурсами в C#
05
Научитесь применять атрибуты и рефлексию для динамической работы с объектами и метаданными
Ведущий курса
Молчанов Николай
Эксперт в области разработки, архитектуры ПО и управления проектами