Модуль 1: Обзор синтаксиса C#
Microsoft .NET Framework версии 4.7 предоставляет комплексную платформу разработки, которую можно использовать для создания, развертывания и управления приложениями и службами. С помощью .NET Framework, можно создавать визуально привлекательные приложения, обеспечивать связь технологий и поддержку широкого спектра бизнес-процессов. В этом модуле описываются некоторые основные функции, предоставляемые .NET Framework и Microsoft Visual Studio, а также рассматриваются основные конструкции языка C#, которые позволят начать разработку приложений .NET Framework.
Темы
Обзор способов разработки приложений с использованием C#
Типы данных, операторы и выражения
Программирование языковых конструкций на C#
Лабораторная работа: Разработка приложения Class Enrolment
Реализация функциональности редактирования списка студентов
Реализация функциональности добавления в список студентов
Реализация функциональности удаления из списка студентов
Отображение возраста студента
Модуль 2: Создание методов, обработка исключений и мониторинг приложений
Приложения часто состоят из логических модулей, которые выполняют определенные функции, такие как обеспечение доступа к данным или запуск некоторой логики. C# - это объектно-ориентированный язык, использующий концепцию методов для инкапсуляции функциональных единиц. Метод может быть как простым, так и сложным, поэтому важно учитывать, что происходит с приложением, когда в методе возникает исключение. В этом модуле описывается создание и использование методов, а также обработка исключительных ситуаций. Здесь также рассматривается журналирование и трассировка для записи подробностей о происходящих ошибках.
Темы
Создание и вызов методов
Создание перегруженных методов и использование необязательных (optional) и выходных (output) параметров
Обработка исключений
Мониторинг приложений
Лабораторная работа: Расширение функциональности приложения Class Enrolment
Рефакторинг существующего кода
Проверка корректности (validation) информации о студенте
Сохранение изменений списка классов
Модуль 3: Основные типы и конструкции языка C#
Перед тем как начать создавать приложения с помощью технологии Windows Presentation Foundation (WPF) или других технологий .NET Framework, нужно изучить некоторые базовые конструкции C#. Нужно знать, как создавать простые структуры для представления элементов данных, а также как организовать эти структуры в коллекции, чтобы иметь возможность добавлять, извлекать и изменять элементы. Наконец, нужно понимать, как обрабатывать события при определенных действиях пользователей. В этом модуле рассматривается создание и использование структур и перечислений, организация данных в коллекции, а также создание и обработка событий.
Темы
Реализация структур и перечислений
Организация данных в коллекции
Обработка событий
Лабораторная работа: Написание кода для приложения Grades Prototype
Добавление логики навигации
Создание типов данных для хранения информации о пользователях и классах
Отображение информации о пользователях и классах
Модуль 4: Создание классов и реализация коллекций
В этом модуле описывается использование интерфейсов и классов для создания пользовательских типов, чтобы иметь возможность их многократного использования. Здесь также рассматривается создание и использование перечислимых безопасных коллекций любого типа.
Темы
Создание классов
Определение и реализация интерфейсов
Реализация коллекций
Лабораторная работа Добавление проверки данных и коллекции в приложение Grades
Реализация Teacher, Student и Grade Types как классов
Добавление проверки данных в класс Grades
Вывод отсортированного списка студентов
Добавление информации об учителях
Модуль 5. Создание иерархии классов при помощи наследования
В этом модуле описывается использование наследования для создания иерархии классов, а также расширения типов .NET Framework.
Темы
Создание иерархии классов
Расширение классов .NET Framework
Лабораторная работа: Рефакторинг основных функций класса User
Создание и наследование от базового класса пользователя (User)
Реализация сложного пароля с помощью абстрактного метода
Создание собственного исключения ClassFullException
Модуль 6. Чтение и запись локальных данных
Этот модуль описывает, как читать и записывать данные с помощью операций ввода-вывода, как сериализовать и десериализовать данные в файловой системе, а также читать и записывать данные в файловую систему с использованием потоков.
Темы
Чтение и запись файлов
Сериализации и десериализации данных
Реализация ввода/вывода с помощью потоков
Лабораторная работа: Создание отчета Grades
XML-сериализация данных отчета Grades
Предварительный просмотр отчета Grades
Сохранение сериализованных данных Grades в файл
Модуль 7: Доступ к базе данных
Этот модуль описывает, как создавать и использовать модели данных (EDM), а также как писать запросы к различным типам данных с помощью языка интегрированных запросов (Language-Integrated Query, LINQ).
Темы
Создание и использование моделей данных (Entity Data Models)
Запрос данных с помощью LINQ
Лабораторная работа: Получение и изменение данных Grades
Создание модели данных (Entity Data Model) из базы данных
Обновление данных Student и Grade Data при помощи Entity Framework
Расширение модели для проверки корректности данных
Модуль 8: Доступ к удаленным данным
В этом модуле описывается использование классов из пространства имен System.Net для обработки удаленных источников данных. Этот модуль также рассматривает использование служб Windows Communication Foundation (WCF) для предоставления и использования модели данных (EDM) через Интернет.
Темы
Доступ к данным через сеть
Доступ к данным в облаке
Лабораторная работа: Получение и изменение данных Grades в облаке
Создание службы WCF Data Services для баз данных SchoolGrades
Интеграция службы WCF Data Services в приложение
Получение фотографий студентов через Интернет
Модуль 9: Проектирование пользовательского интерфейса для графических приложений
Этот модуль описывает, как использовать язык разметки Extensible Application Markup Language (XAML) и технологию Windows Presentation Foundation (WPF) для создания привлекательных пользовательских интерфейсов.
Темы
Использование XAML для проектирования пользовательского интерфейса
Привязка элементов управления к данным
Лабораторная работа: Настройка фотографий студентов и стилизация приложения
Настройка внешнего вида студенческих фотографий
Стилизация формы входа в приложение
Добавление анимации к элементу управления StudentPhoto
Модуль 10: Повышение производительности и отклика приложений
Этот модуль описывает, как повысить производительность приложений с использованием многопоточности.
Темы
Реализация многозадачности
Асинхронное выполнение операций
Синхронизация одновременного доступа к данным
Лабораторная работа: Повышение отзывчивости и производительности приложений
Обеспечение отклика пользовательского интерфейса во время доступа к объекту Teachers
Предоставление визуальной обратной связи во время длительных операций
Модуль 11: Интеграция с неуправляемым (unmanaged) кодом
В этом модуле описывается, как взаимодействовать с неуправляемым кодом приложений и очищать неуправляемые ресурсы.
Темы
Создание и использование динамических объектов
Управление временем жизни объектов и unmanaged ресурсами
Лабораторная работа: Обновление отчета
Создание отчета Grades с помощью Microsoft Office Word
Управление временем жизни объектов при помощи метода Dispose
Модуль 12: Создание повторно используемых типов и сборок
Этот модуль посвящен использованию существующих сборок с помощью рефлексии, а также добавлению дополнительных метаданных к типам с помощью атрибутов. Здесь также описывается, как генерировать код во время выполнения с использованием объектной модели кода документа (CodeDOM) и как обеспечить, чтобы сборки были подписаны, имели нужную версию и были доступны для других приложений с помощью глобального кэша сборки (Global Assembly Cache, GAC).
Темы
Проверка метаданных объекта
Создание и использование пользовательских атрибутов
Генерация управляемого кода
Управление версиями, подпись и развертывание сборок
Лабораторная работа: Определение данных для включения в отчет Grades
Создание собственного атрибута IncludeInReport
Генерация отчетов
Централизованное хранение сборки Grades.Utilities
Модуль 13: Шифрование данных
В этом модуле описана реализация симметричного и асимметричного шифрования, а также использования хэшей для генерации математических представлений данных. Здесь также рассматривается создание и управление сертификатами X509 и их использование в асимметричном процессе шифрования.
Темы
Реализация симметричного шифрования
Реализация асимметричного шифрования
Лабораторная работа: Шифрование отчета Grades
Шифрование отчета Grades
Дешифрование отчета Grades