Курс 20483-C: Programming in C#

Этот учебный курс обучает разработчиков навыкам программирования, которые необходимы для создания приложений Windows с использованием языка Visual C#. В течение пяти дней в классе учащиеся изучают основы структуры программы Visual C#, синтаксис языка и детали реализации, а затем консолидируют свои знания в течение недели, создавая приложение, которое включает в себя несколько функций .NET Framework 4.7.

Профиль аудитории

Этот курс предназначен для опытных разработчиков, которые уже имеют опыт программирования на C, C ++, JavaScript, Objective-C, Microsoft Visual Basic или Java и разбираются в концепциях объектно-ориентированного программирования. Этот курс не предназначен для студентов, которые плохо знакомы с программированием; он ориентирован на профессиональных разработчиков с опытом программирования в объектно-ориентированной среде не менее одного месяца.

Должностные обязанности: Разработчик

Приобретенные навыки

  • Дать описание основного синтаксиса и функций Visual C
  • Создание методов, обработка исключений и описание требований к мониторингу крупномасштабных приложений.
  • Реализация базовой структуры и основных элементов типичного настольного приложения.

Предварительные требования

Разработчики, посещающие этот курс, уже должны были иметь некоторый ограниченный опыт использования C# для выполнения основных задач программирования. В частности, студенты должны иметь практический опыт использования C#, который демонстрирует их понимание следующего:

  • Как назвать, объявить, инициализировать и присвоить значения переменным в приложении.
  • Как использовать: арифметические операторы для выполнения арифметических вычислений с участием одной или нескольких переменных; реляционные операторы для проверки отношений между двумя переменными или выражениями; логические операторы для объединения выражений, содержащих реляционные операторы.
  • Как создать синтаксис кода для простых операторов программирования с использованием ключевых слов языка C# и распознать синтаксические ошибки с помощью Visual Studio IDE.
  • Как создать простую ветвящуюся структуру, используя оператор IF.
  • Как создать простую циклическую структуру, используя оператор For для итерации массива данных. Как использовать Visual Studio IDE для поиска простых логических ошибок.
  • Как создать функцию, которая принимает аргументы (параметры) и возвращает значение указанного типа.
  • Как спроектировать и построить простой пользовательский интерфейс, используя стандартные элементы управления из набора инструментов Visual Studio.
  • Как подключиться к базе данных SQL Server. Основы получения и хранения данных.
  • Как отсортировать данные в цикле.
  • Как распознать классы и методы, используемые в программе.

Структура курса

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

Microsoft .NET Framework версии 4.7 предоставляет всеобъемлющую платформу разработки, которую можно использовать для создания, развертывания и управления приложениями и службами. Используя .NET Framework можно создавать визуально привлекательные приложения, обеспечивать бесперебойную связь через технологические границы и поддержку широкого спектра бизнес-процессов.

В этом модуле вы узнаете о некоторых основных функциях, предоставляемых .NET Framework и Microsoft Visual Studio. Вы также узнаете о некоторых базовых конструкциях Visual C#, которые позволяют приступить к разработке приложений .NET Framework.

Уроки

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

Лабораторная работа : Реализация функционала редактирования для списка студентов

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

После завершения этого модуля студенты получат следующее:

  • Описание архитектуры приложений .NET Framework и функций, которые предоставляют Visual Studio 2017 и Visual C#.
  • Использовать базовые типы данных Visual C#, операторы и выражения.
  • Использовать стандартные конструкции Visual C#.

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

Приложения часто состоят из логических функциональных блоков, которые выполняют определенные функции, такие как предоставление доступа к данным или запуск некоторой логической обработки. Visual C# является объектно-ориентированным языком и использует концепцию методов для инкапсуляции логических единиц функциональности. Тот или иной метод может быть настолько простым или сложным, насколько вам нравится, и поэтому важно учитывать, что происходит с вашим приложением, когда в методе возникает исключение.

В этом модуле вы узнаете, как создавать и использовать методы и как обрабатывать исключения. Вы также узнаете, как использовать ведение журнала и трассировку для записи подробностей любых возникающих исключений.

Уроки

  • Создание и вызов методов.
  • Создание перегруженных методов и использование необязательных и выходных параметров.
  • Обработка исключений.
  • Мониторинг приложений

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

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

После завершения этого модуля студенты получат следующее:

  • Создание и вызов методов.
  • Создание перегруженных методов и использование дополнительных и выходных параметров.
  • Обработка исключений.
  • Мониторинг приложений с помощью ведения журнала, трассировки и профилирования

Модуль 3: Основные типы и конструкции Visual C#

Для создания эффективных приложений с использованием Windows Presentation Foundation (WPF) или других платформ .NET Framework необходимо сначала изучить некоторые базовые конструкции Visual C#. Вам нужно знать, как создавать простые структуры для представления элементов данных, с которыми вы работаете. Вы должны знать, как организовать эти структуры в коллекции, чтобы вы могли добавлять элементы, извлекать элементы и перебирать элементы. Наконец, вам нужно знать, как подписаться на события, чтобы вы могли реагировать на действия ваших пользователей.

В этом модуле вы узнаете, как создавать и использовать структуры и перечисления, организовывать данные в коллекции, создавать события и подписываться на них.

Уроки

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

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

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

После завершения этого модуля студенты получат следующее:

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

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

В этом модуле вы узнаете, как использовать интерфейсы и классы для определения и создания ваших собственных, повторно используемых типов. Вы также узнаете, как создавать и использовать перечислимые, безопасные коллекции любого типа.

Уроки

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

Лабораторная работа : Добавление проверки данных и безопасности типов в приложение

  • Реализация учительских, ученических и оценочных структур в качестве классов
  • Добавление проверки данных в класс оценки
  • Поименное отображение студентов
  • Предоставление учителям возможности изменять данные классов и оценок

После завершения этого модуля вы сможете:

  • Создавать и иллюстрировать классы.
  • Создавать и иллюстрировать интерфейсы.
  • Использовать дженерики для создания типобезопасных коллекций.

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

В этом модуле вы узнаете, как использовать наследование для создания иерархий классов и расширения типов .NET Framework.

Уроки

  • Создание иерархий классов
  • Расширение классов .NET Framework

Лабораторная работа : Рефакторинг общей функциональности в пользовательский класс

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

После завершения этого модуля вы сможете:

  • Создавать базовые и производные классы с использованием наследования.
  • Создавать классы, которые наследуются от классов .NET Framework.

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

В этом модуле вы узнаете, как читать и записывать данные с помощью операций ввода-вывода транзакционной файловой системы, как сериализовать и десериализовать данные в файловой системе, а также как считывать и записывать данные в файловую систему с использованием потоков.

Уроки

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

Лабораторная работа : Генерация отчета по оценкам

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

После завершения этого модуля вы сможете:

  • Запись данных в файловую систему и чтение из нее с помощью файлового ввода-вывода.
  • Преобразование данных в формат, который может быть записан или прочитан из файла или другого источника данных.
  • Использование потоков для отправки данных в файла или источник данных и получения их из него.

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

В этом модуле вы узнаете, как создавать и использовать модели данных объектов (EDM) и как запрашивать разные типы данных с помощью встроенного в язык запроса (LINQ).

Уроки

  • Создание и использование моделей данных объектов
  • Запрос данных с помощью LINQ

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

  • Создание модели данных объектов из базы данных школы изящных искусств
  • Обновление данных об учениках и оценках с использованием Entity Framework
  • Расширение модели данных объектов для проверки данных

После завершения этого модуля вы сможете:

  • Создание, использование и настройка EDM.
  • Запрос данных с помощью LINQ.

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

В этом модуле вы узнаете, как использовать классы запросов и ответов в пространстве имен System.Net для непосредственной манипуляции удаленными источниками данных. Вы также узнаете, как использовать службы данных Windows Communication Foundation (WCF) для предоставления и использования модели данных объекта (EDM) через Интернет.

Уроки

  • Доступ к данным через Интернет
  • Доступ к данным с использованием подключенных служб OData

Лабораторная работа : Удаленное получение и изменение данных об оценках

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

После завершения этого модуля вы сможете:

  • Отправлять данные и получать данные из сетевых служб и других удаленных источников данных.
  • Поучать доступ к данным с помощью служб данных WCF.

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

В этом модуле вы узнаете, как использовать расширяемый язык разметки приложений (XAML) и Windows Presentation Foundation (WPF) для создания привлекательных пользовательских интерфейсов.

Уроки

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

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

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

После завершения этого модуля вы сможете:

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

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

В этом модуле вы узнаете, как повысить производительность ваших приложений, распределяя операции по нескольким потокам.

Уроки

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

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

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

После завершения этого модуля вы сможете:

  • Использовать Task Parallel Library для реализации многозадачности.
  • Выполнять длительные операции без блокировки потоков.
  • Контролировать то, как несколько потоков могут одновременно обращаться к ресурсам.

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

В этом модуле вы узнаете, как взаимодействовать с неуправляемым кодом в ваших приложениях и как гарантировать, что ваш код высвобождает любые неуправляемые ресурсы.

Уроки

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

Лабораторная работа : Обновление отчета по оценкам

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

После завершения этого модуля вы сможете:

  • Интегрировать неуправляемый код в приложение Microsoft Visual C# с помощью динамического языка исполнения (DLR).
  • Контролировать время жизни неуправляемых ресурсов и убедиться, что ваше приложение высвобождает ресурсы.

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

В этом модуле вы узнаете, как использовать существующие сборки с помощью отражения и как добавлять дополнительные метаданные к типам и элементам типов с помощью атрибутов. Вы также узнаете, как генерировать код во время выполнения с использованием объектной модели документа кода (CodeDOM) и как гарантировать, что ваши сборки будут подписаны, версионизированы и доступны для других приложений с помощью глобального кэша сборок (GAC).

Уроки

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

Лабораторная работа : Указание данных для включения в отчет об оценках

  • Создание и применение атрибута IncludeInReport
  • Обновление отчета
  • Централизованное хранение сборки Grades.Utilities (если позволяет время)

После завершения этого модуля вы сможете:

  • Использовать отражение для проверки и выполнения сборок.
  • Создавать и использовать пользовательские атрибуты.
  • Генерировать управляемый код во время выполнения с использованием CodeDOM.
  • Версионизировать, подписать и развернуть ваши сборки в GAC.

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

В этом модуле вы узнаете, как реализовать симметричное и асимметричное шифрование и как использовать хеши для создания математических представлений ваших данных. Вы также узнаете, как создавать сертификаты X509 и управлять ими, а также как использовать их в процессе асимметричного шифрования.

Уроки

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

Лабораторная работа : Шифрование и расшифровка отчета по оценкам

  • Шифрование отчета об оценках
  • Шифрование отчета об оценках

После завершения этого модуля вы сможете:

  • Шифровать данные с использованием симметричного шифрования.
  • Шифровать данные с использованием асимметричного шифрования.