Программирование на языке C# 4.0 в среде разработки MS Visual Studio 2010
10266
Этот пятидневный курс знакомит слушателей с языком C# и платформой .NET - современными и мощными средствами программирования. Технологии, основанные на этом языке, позволяют легко создавать оконные приложения с богатыми и визуально привлекательными интерфейсами, разрабатывать веб-порталы и корпоративные информационные системы, основанные на web, а также работать со всеми современными системами управления базами данных.
Отличительной особенностью данного курса в центре Unit является оригинальная, авторская методика преподавания, делающая основной упор на овладение практическими навыками программирования и возможность слушателя начать работу с технологией непосредственно по завершению курса. Курс ведет сертифицированный тренер Microsoft, имеющий богатый опыт разработки на этих технологиях и управления проектами разработки.
Аудитория
Курс ориентирован на профессиональных программистов, имеющих опыт разработки на предыдущей версии языка C# или C++, Delphi, Java и знакомых с основами объектно-ориентированного программирования.
Предварительный уровень подготовки
Не менее чем годичный опыт разработки на одном из объектно-ориентированных языков программирования, подразумевающий владение основными концепциями ООП: инкапсуляцией, наследованием и полиморфизмом, созданием и реализацией интерфейсов, обработкой исключительных ситуаций. Желательно предварительное знакомство с графической средой разработки Visual Studio.
Результат обучения
После окончания данного курса слушатели смогут:
- описать предназначение платформы .Net Framework и создавать несложные приложения на C# средствами Visual Studio 2010
- охарактеризовать основные синтаксические особенности языка C#
- управлять документами в WPF-приложении
- разрабатывать и вызывать в коде на C# новые методы
- перехватывать, обрабатывать и инициировать исключительные ситуации
- производить базовые операции ввода-вывода в программе на C#
- четко охарактеризовать различие между объектными (ссылочными) типами и типами-значениями и создавать новые типы (классы, структуры, делегаты, перечисления)
- контролировать область видимости и время жизни создаваемых объектов
- пользоваться отношением наследования для порождения дочерних классов
- определять свойства и индексеры для инкапсуляции данных и переопределять операции в своих типах данных
- отделять операцию от метода, реализующего его, и использовать такие отчужденные операции для обработки асинхронных событий
- использовать коллекции для агрегирования данных и шаблоны для разработки строго типизованных классов-, структур- и интерфейсов-коллекций
- сопровождать самостоятельно разработанные классы-коллекции поддержкой перечисления
- создавать запросы с помощью LINQ
- организовывать взаимодействие с кодом, написанном на скриптовом языке (Python, Ruby, и.т.п.), а также с серверами автоматизации COM
Программа курса
Модуль 1. Введение в C# и .Net Framework (3 ак. часа)
- обсуждаются общие вопросы, связанные с предназначением .Net Framework и разработкой приложений на языке C# в среде разработки Visual Studio 2010
- обзор платформы .Net Framework
- создание проектов в Visual Studio 2010
- базовые вопросы, связанные с разработкой, сборкой, отладкой, документированием и развертыванием приложений на C# средствами Visual Studio 2010
Лабораторная работа: введение в C# и .Net Framework
- разработка простого консольного приложения
- создание приложения с графическим интерфейсом пользователя на платформе WPF
- верификация приложения
- создание XML документации разработанного приложения
По окончанию изучения модуля слушатели смогут
- охарактеризовать предназначение и основные компоненты .Net Framework
- создавать проекты на C# средствами Visual Studio 2010
- объяснить структуру программы на C#
- использовать шаблон WPF приложения для разработки несложного приложения с графическим интерфейсом пользователя
- использовать XML-комментарии для автодокументирования кода
- пользоваться отладчиком, встроенным в Visua Studio
Модуль 2. Использование базовых конструкций языка С# (2 ак. часа)
- обсуждаются основные синтаксические особенности языка C#
- объявление переменных и присвоение им значений
- использование операций и построение выражений
- объявление и использование массивов
- условные операторы и циклы
Лабораторная работа: базовые синтаксические особенности языка
- вычисление квадратного корня с повышенной точностью
- конвертирование целочисленных данных в другую (например, двоичную) систему счисления
- перемножение матриц
Модуль 3. Объявление и вызов методов (3 ак. часа)
- обсуждаются вопросы объявления, вызова и перегрузки методов
- объявление и вызов метода: базовые вопросы
- опциональные параметры, возвращаемые параметры и перегрузка
Лабораторная работа: методы
- вычисление наибольшего общего делителя (НОД) двух натуральных чисел с помощью алгоритма Евклида
- обобщение на случай 3 , 4 или 5 аргументов
- сравнение эффективности алгоритмов
- графическое отображение результатов
- решение системы уравнений (опционально)
Модуль 4. Обработка исключений (2 ак. часа)
- обсуждаются вопросы перехвата и обработки исключительных ситуаций, а также создания и инициализации собственных исключений
- обработка исключительных ситуаций
- разработка собственных классов и инициация исключений
Лабораторная работа: работа с исключениями
- как защитить метод от сбоев
- определение типа исключительной ситуации
- включение (отключение) информации о целочисленном переполнении
Модуль 5. Файловый ввод-вывод (3 ак. часа)
- приводится обзор базовых средств языка, обеспечивающих операции чтения и записи файлов
- доступ к файловой системе
- чтение и запись файлов с использованием потоков ввода-вывода
Лабораторная работа: ввод-вывод
- разработка простого текстового редактора
- добавление возможности редактирования документов в формате XML
Модуль 6. Разработка собственных типов данных (2 ак. часа)
- рассматриваются вопросы самостоятельной разработки новых типов: перечислений, структур и классов
- создание и использование типов-перечислений
- создание и использование классов
- создание и использование структур
- объектные типы и типы-значения
Лабораторная работа: разработка пользовательских типов данных
- использование перечислений для описания групп именованных констант
- использование структуры для описания простого типа данных
- использование класса для описания более сложного типа
- использование шаблона Nullable
Модуль 7. Инкапсуляция данных и методов (3 ак. часа)
- обсуждаются вопросы управления видимостью и временем жизни компонентов разрабатываемых типов данных
- управление областью видимости содержимого типа
- совместное использование методов и данных
Лабораторная работа: инкапсуляция
- сокрытие данных класса
- использование статических элементов класса для совместного использования данных
- реализация методов-расширений
Модуль 8. Наследование и реализация интерфейсов (2 ак. часа)
- рассматриваются сразу две основных концепции ООП: наследование и полиморфизм
- использование наследования для разработки иерархий классов
- разработка и реализация интерфейсов
- абстрактные классы
Лабораторная работа: наследование и полиморфизм
- использование наследования для повторного использования кода класса
- реализация интерфейса
- создание абстрактного класса
Модуль 9. Управление временем жизни объектов и ресурсами (3 ак. часа)
- содержит более подробные сведения об управлении временем жизни переменных ссылочного типа, сборке мусора, алгоритме IDisposable и освобождении используемых внешних ресурсов (файлов, подключений к базам данных, сокетов и т.п.)
- старый лентяй или знакомство со сборщиком мусора
- управление ресурсами
Лабораторная работа: управление временем жизни объектов и используемыми ресурсами
- реализация интерфейса IDisposable
- управление внешними ресурсами, используемыми объектом
Модуль 10. Инкапсуляция данных и перегрузка операций (2 ак. часа)
- обсуждаются вопросы определения свойств и индексеров для сокрытия внутренних данных класса и перегрузки операций
- определение и использование свойств и индексеров
- перегрузка операций
Лабораторная работа: разработка и использование свойств
- определение свойств в интерфейсе
- реализация свойств в дочернем классе
- использование свойств, реализованных в классе
Лабораторная работа: разработка и использование индексеров
- реализация индексера, обеспечивающего доступ к конкретным битам регистра контроллера
- использование разработанного индексера
Лабораторная работа: перегрузка операций
- разработка типа Матрица
- реализация матричной арифметики
Модуль 11. Отчужденные методы и обработка событий (3 ак. часа)
- посвящен принципу отчуждения операции от метода, реализующего ее, а также различным его реализациям в современной версии языка C#
- объявление и использование делегатов
- использование лямбда-выражений
- обработка событий
Лабораторная работа: делегаты и события
- инициация и обработка событий
- использование анонимных делегатов и лямбда-выражений
- по завершению обучения слушатели смогут
- охарактеризовать предназначение делегатов и использовать делегаты для отчуждения операции от метода, ее реализующего
- описать суть лямбда-выражений и реализовывать с их помощью анонимные методы
- описать значение событий и методику их использования в типовых приложениях
Модуль 12. Использование коллекций и разработка обобщенных типов (3 ак. часа)
- вводится понятие коллекции и объясняется использование обобщенных типов (шаблонов) для реализации строго типизованных коллекций (классов, структур и интерфейсов)
- использование коллекций
- создание и использование обобщенных типов
- объявление обобщенного интерфейса
Лабораторная работа: коллекции
- оптимизация метода кэширования данных
Лабораторная работа: обобщенные типы
- объявление обобщенного интерфейса
- реализация обобщенного интерфейса
- реализация средств тестирования для проекта BinaryTree (бинарное дерево)
- реализация обобщенного метода
Модуль 13. Разработка и перечисление элементов пользовательских классов-коллекций
- рассматривается вопрос разработки собственного класса-коллекции, поддерживающего перечисляемость – свойство, обеспечивающее взаимодействие с оператором foreach и LINQ (3 ак. часа)
- реализация собственного класса-коллекции
- добавление коллекции перечисляемости
Лабораторная работа: создание пользовательских перечисляемых коллекций
- реализация интерфейса IListTItem
- реализация перечислителя «с чистого листа»
- реализация перечислителя путем с использованием итератора
Модуль 14. Разработка запросов LINQ для доступа к данным
- обсуждаются основы разработки несложных LINQ запросов (3 ак. часа)
- реализация собственного класса-коллекции
- добавление коллекции перечисляемости
Лабораторная работа: создание пользовательских перечисляемых коллекций
- реализация интерфейса IListTItem
- реализация перечислителя «с чистого листа»
- реализация перечислителя путем с использованием итератора
Модуль 15. Интеграция кода на C# со скриптовыми языками и компонентами COM
- обсуждаются вопросы взаимодействия программы на C# с кодом на динамических скриптовых языках и серверами автоматизации COM (3 ак. часа)
- интеграция C# кода c кодом на Ruby и Python
- доступ к серверам COM из программы на C#
Лабораторная работа: интеграция со скриптами и серверами COM
- интеграция кода, написанного на скрипте, с программой на C#
- использование COM-объекта в программе на C#