Программа курса

Программа курса

Модуль 1: Обзор синтаксиса C#

Темы:

  • Обзор способов разработки приложений с использованием C#
  • Типы данных, операторы и выражения
  • Программирование языковых конструкций на C#

Лабораторная работа: Разработка приложения Class Enrolment

  • Реализация функциональности редактирования списка студентов
  • Реализация функциональности добавления в список студентов
  • Реализация функциональности удаления из списка студентов
  • Отображение возраста студента

Модуль 2: Создание методов, обработка исключений и мониторинг приложений

Темы:

  • Создание и вызов методов
  • Создание перегруженных методов и использование опциональных (optional) и параметров, возвращающих значение (Output)
  • Обработка исключений
  • Мониторинг приложений

Лабораторная работа: Расширение функциональности приложения Class Enrolment

  • Рефакторинг существующего кода
  • Проверка корректности (validation) информации о студенте
  • Сохранение изменений списка классов

Модуль 3: Разработка кода для графического приложения

Темы:

  • Реализация структур и перечислений
  • Организация данных в коллекции
  • Обработка событий

Лабораторная работа: Написание кода для приложения Grades Prototype

  • Добавление логики навигации
  • Создание типов данных для хранения информации о пользователях и классах
  • Отображение информации о пользователях и классах

Модуль 4: Создание классов и реализация коллекций

Темы:

  • Создание классов
  • Определение и реализация интерфейсов
  • Реализация коллекции

Лабораторная работа Добавление проверки данных и коллекции в приложение Grades

  • Реализация Teacher, Student и Grade Types как классов
  • Добавление проверки данных в класс Grades
  • Вывод отсортированного списка студентов
  • Добавление информации об учителях

Модуль 5. Создание иерархии классов при помощи наследования

Темы:

  • Создание иерархии классов
  • Расширение классов .NET Framework
  • Создание универсальных (generic) типов

Лабораторная работа: Рефакторинг основных функций класса User

  • Создание и наследование от базового класса пользователя (User)
  • Реализация сложного пароля с помощью абстрактного метода
  • Создание собственного исключения ClassFullException

Модуль 6. Чтение и запись локальных данных

Темы:

  • Чтение и запись файлов
  • Сериализации и десериализации данных
  • Реализация ввода/вывода с помощью потоков

Лабораторная работа: Создание отчета Grades

  • Сериализация данных для XML отчета Grades
  • Предварительный просмотр отчета Grades
  • Сохранение сериализованных данных Grades в файл

Модуль 7: Доступ к базе данных

Темы:

  • Создание и использование моделей данных (Entity Data Models)
  • Запрос данных с помощью LINQ
  • Обновление данных с помощью LINQ

Лабораторная работа: Получение и изменение данных Grades

  • Создание модели данных (Entity Model) для базы данных
  • Обновление данных Student и Grade Data при помощи Entity Framework
  • Надстройка модели для проверки корректности данных

Модуль 8: Доступ к удаленным данным

Темы:

  • Доступ к данным через сеть
  • Доступ к данным в облаке

Лабораторная работа: Получение и изменение данных Grades в облаке

  • Создание службы WCF Data Services для баз данных SchoolGrades
  • Интеграция службы WCF Data Services в приложение
  • Получение студенческой фотографии через интернет

Модуль 9: Проектирование пользовательского интерфейса для графических приложений

Темы:

  • Использование XAML для проектирования пользовательского интерфейса
  • Привязка элементов управления к данным
  • Стилизация пользовательского интерфейса

Лабораторная работа: Настройка студенческой фотографии и стилизация приложений

  • Настройка внешнего вида студенческих фотографий
  • Стилизация формы входа в приложение и элемента управления StudentPhoto

Модуль 10: Повышение производительности приложений

Темы:

  • Реализация многопоточности с помощью классов Tasks и лямбда выражений
  • Асинхронное выполнение операций
  • Синхронизация одновременного доступа к данным

Лабораторная работа: Повышение отзывчивости и производительности приложений

  • Обеспечение отзывчивости пользовательского интерфейса во время доступа к объекту Teachers
  • Предоставление визуальной обратной связи во время длительных операций

Модуль 11: Интеграция с неуправляемым (unmanaged) кодом

Темы:

  • Создание и использование динамических объектов
  • Управление временем жизни объектов и unmanaged ресурсами

Лабораторная работа: Обновление отчета

  • Создание отчета Grades с помощью Microsoft Office Word
  • Управление временем жизни объектов при помощи метода Dispose

Модуль 12: Создание повторно используемых типов и сборок

Темы:

  • Проверка метаданных объекта
  • Создание и использование пользовательских атрибутов
  • Генерация управляемого кода
  • Управление версиями, подпись и развертывание сборок

Лабораторная работа: Определение данных для включения в отчет Grades

  • Создание собственного атрибута IncludeInReport
  • Генерация отчетов
  • Централизованное хранение сборки Grades.Utilities

Модуль 13: Шифрование данных

Темы:

  • Реализация симметричного шифрования
  • Реализация асимметричного шифрования

Лабораторная работа: Шифрование отчета Grades

  • Шифрование отчета Grades
  • Расшифровка отчета Grades