Программирование на языке C# 4.0 в среде разработки MS Visual Studio 2010

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


Код: 10266
Длительность: 40 ак.ч.
Стоимость: 30 100 р.

Аннотация:
Этот пятидневный курс знакомит слушателей с языком C# и платформой .NET - современными и мощными средствами программирования. Технологии, основанные на этом языке, позволяют легко создавать оконные приложения с богатыми и визуально привлекательными интерфейсами, разрабатывать веб-порталы и корпоративные информационные системы, основанные на web, а также работать со всеми современными системами управления базами данных.

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

Аудитория
Курс ориентирован на профессиональных программистов, имеющих опыт разработки на предыдущей версии языка C# или C++, Delphi, Java и знакомых с основами объектно-ориентированного программирования.

Предварительный уровень подготовки
Не менее чем годичный опыт разработки на одном из объектно-ориентированных языков программирования, подразумевающий владение основными концепциями ООП: инкапсуляцией, наследованием и полиморфизмом, созданием и реализацией интерфейсов, обработкой исключительных ситуаций. Желательно предварительное знакомство с графической средой разработки Visual Studio.

После окончания данного курса слушатели смогут:
1) описать предназначение платформы .Net Framework и создавать несложные приложения на C# средствами Visual Studio 2010
2) охарактеризовать основные синтаксические особенности языка C#
3) управлять документами в WPF-приложении
4) разрабатывать и вызывать в коде на C# новые методы
5) перехватывать, обрабатывать и инициировать исключительные ситуации
6) производить базовые операции ввода-вывода в программе на C#
7) четко охарактеризовать различие между объектными (ссылочными) типами и типами-значениями и создавать новые типы (классы, структуры, делегаты, перечисления)
8) контролировать область видимости и время жизни создаваемых объектов
9) пользоваться отношением наследования для порождения дочерних классов
10) определять свойства и индексеры для инкапсуляции данных и переопределять операции в своих типах данных
11) отделять операцию от метода, реализующего его, и использовать такие отчужденные операции для обработки асинхронных событий
12) использовать коллекции для агрегирования данных и шаблоны для разработки строго типизованных классов-, структур- и интерфейсов-коллекций
13) сопровождать самостоятельно разработанные классы-коллекции поддержкой перечисления
14) создавать запросы с помощью LINQ
15) организовывать взаимодействие с кодом, написанном на скриптовом языке (Python, Ruby, и.т.п.), а также с серверами автоматизации COM

Содержание курса
Модуль 1. Введение в C# и .Net Framework
обсуждаются общие вопросы, связанные с предназначением .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. Использование базовых конструкций языка С#
обсуждаются основные синтаксические особенности языка C#
• объявление переменных и присвоение им значений
• использование операций и построение выражений
• объявление и использование массивов
• условные операторы и циклы
Лабораторная работа: базовые синтаксические особенности языка
• вычисление квадратного корня с повышенной точностью
• конвертирование целочисленных данных в другую (например, двоичную) систему счисления
• перемножение матриц

Модуль 3. Объявление и вызов методов
обсуждаются вопросы объявления, вызова и перегрузки методов
• объявление и вызов метода: базовые вопросы
• опциональные параметры, возвращаемые параметры и перегрузка
Лабораторная работа: методы
• вычисление наибольшего общего делителя (НОД) двух натуральных чисел с помощью алгоритма Евклида
• обобщение на случай 3 , 4 или 5 аргументов
• сравнение эффективности алгоритмов
• графическое отображение результатов
• решение системы уравнений (опционально)

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

Модуль 5. Файловый ввод-вывод
приводится обзор базовых средств языка, обеспечивающих операции чтения и записи файлов
• доступ к файловой системе
• чтение и запись файлов с использованием потоков ввода-вывода
Лабораторная работа: ввод-вывод
• разработка простого текстового редактора
• добавление возможности редактирования документов в формате XML

Модуль 6. Разработка собственных типов данных
рассматриваются вопросы самостоятельной разработки новых типов: перечислений, структур и классов
• создание и использование типов-перечислений
• создание и использование классов
• создание и использование структур
• объектные типы и типы-значения
Лабораторная работа: разработка пользовательских типов данных
• использование перечислений для описания групп именованных констант
• использование структуры для описания простого типа данных
• использование класса для описания более сложного типа
• использование шаблона Nullable

Модуль 7. Инкапсуляция данных и методов
обсуждаются вопросы управления видимостью и временем жизни компонентов разрабатываемых типов данных
• управление областью видимости содержимого типа
• совместное использование методов и данных
Лабораторная работа: инкапсуляция
• сокрытие данных класса
• использование статических элементов класса для совместного использования данных
• реализация методов-расширений

Модуль 8. Наследование и реализация интерфейсов
рассматриваются сразу две основных концепции ООП: наследование и полиморфизм
• использование наследования для разработки иерархий классов
• разработка и реализация интерфейсов
• абстрактные классы
Лабораторная работа: наследование и полиморфизм
• использование наследования для повторного использования кода класса
• реализация интерфейса
• создание абстрактного класса

Модуль 9. Управление временем жизни объектов и ресурсами
содержит более подробные сведения об управлении временем жизни переменных ссылочного типа, сборке мусора, алгоритме IDisposable и освобождении используемых внешних ресурсов (файлов, подключений к базам данных, сокетов и т.п.)
• старый лентяй или знакомство со сборщиком мусора
• управление ресурсами
Лабораторная работа: управление временем жизни объектов и используемыми ресурсами
• реализация интерфейса IDisposable
• управление внешними ресурсами, используемыми объектом

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

Модуль 11. Отчужденные методы и обработка событий
посвящен принципу отчуждения операции от метода, реализующего ее, а также различным его реализациям в современной версии языка C#
• объявление и использование делегатов
• использование лямбда-выражений
• обработка событий
Лабораторная работа: делегаты и события
• инициация и обработка событий
• использование анонимных делегатов и лямбда-выражений
по завершению обучения слушатели смогут
• охарактеризовать предназначение делегатов и использовать делегаты для отчуждения операции от метода, ее реализующего
• описать суть лямбда-выражений и реализовывать с их помощью анонимные методы
• описать значение событий и методику их использования в типовых приложениях

Модуль 12. Использование коллекций и разработка обобщенных типов
вводится понятие коллекции и объясняется использование обобщенных типов (шаблонов) для реализации строго типизованных коллекций (классов, структур и интерфейсов)
• использование коллекций
• создание и использование обобщенных типов
• объявление обобщенного интерфейса
Лабораторная работа: коллекции
• оптимизация метода кэширования данных
Лабораторная работа: обобщенные типы
• объявление обобщенного интерфейса
• реализация обобщенного интерфейса
• реализация средств тестирования для проекта BinaryTree (бинарное дерево)
• реализация обобщенного метода

Модуль 13. Разработка и перечисление элементов пользовательских классов-коллекций
рассматривается вопрос разработки собственного класса-коллекции, поддерживающего перечисляемость – свойство, обеспечивающее взаимодействие с оператором foreach и LINQ
• реализация собственного класса-коллекции
• добавление коллекции перечисляемости
Лабораторная работа: создание пользовательских перечисляемых коллекций
• реализация интерфейса IListTItem
• реализация перечислителя «с чистого листа»
• реализация перечислителя путем с использованием итератора

Модуль 14. Разработка запросов LINQ для доступа к данным
обсуждаются основы разработки несложных LINQ запросов
• реализация собственного класса-коллекции
• добавление коллекции перечисляемости
Лабораторная работа: создание пользовательских перечисляемых коллекций
• реализация интерфейса IListTItem
• реализация перечислителя «с чистого листа»
• реализация перечислителя путем с использованием итератора

Модуль 15. Интеграция кода на C# со скриптовыми языками и компонентами COM
обсуждаются вопросы взаимодействия программы на C# с кодом на динамических скриптовых языках и серверами автоматизации COM
• интеграция C# кода c кодом на Ruby и Python
• доступ к серверам COM из программы на C#
Лабораторная работа: интеграция со скриптами и серверами COM
• интеграция кода, написанного на скрипте, с программой на C#
использование COM-объекта в программе на C#