Главная » Каталог компьютерных курсов » Основы программирования на С#

Основы программирования на С#

Программирование на С#

Базовый курс для освоения разработки приложений на .Net Framework включает разделы 1 – 11. В учебном графике планируется длительность в 15 занятий (60 академических часов). Для желающих поучить больше знаний добавляется еще два раздела 12 и 13. В случае если группа студентов будет иметь хорошую базовую подготовку и отличную успеваемость, есть возможность пройти все 13 разделов на 15 занятий.

Этот курс является основой, отправной точкой изучения .Net Framework и будет фундаментом для изучения прикладных технологий, входящих в состав стека .Net Framework, таких как Windows Forms, Windows Presentation Foundation приложений, а также, разработка пакетов Windows Workflow Foundation и Web приложений ASP.NET. Изучение этих технологий предусматривается на последующих курсах


Требования к составу слушателей:

  • Удовлетворительное владение основами алгоритмизации. Приветствуется опыт работы (даже учебный) на любом языке программирования и платформе;
  • Удовлетворительное владение основными языковыми конструкциями: ветвления, циклы, организация процедур и функций, работа со строками и массивами;
  • Приветствуется знание и умение использовать объектно-ориентированный подход в разработке приложений. Допускается даже самый начальный уровень владения этим материалом;

Программа курса “Основы программирования на С#”

Тема 1.Основные конструкции языка C#
Тема 2. Процедуры в C#
Тема 3. Структурные типы данных
Тема 4. Коллекции – range data в C#
Тема 5. Делегаты, лябда-выражения, события
Тема 6. Наследование в классах .Net
Тема 7. Файлы и потоки
Тема 8. Обработка исключений и время жизни объектов
Тема 9. Работа с XML данными
Тема 10. Многопоточное программирование в .Net 4.5
Тема 11. Рефлексия (отражение) типов
Тема 12. Работа с базами данных MS SQL Server
Тема 13. Основы WCF

Полная программа курса “Основы программирования на С#”

Тема 1: Основные конструкции языка C#

  • Структура простейшей программы. Программа «Hello World».
  • Типы данных, используемых в C#. Правила описания и использования переменных в выражениях. Инициализация переменных. Время жизни и область видимости. Константы и их типы в программе.
  • Типы данных (по способу хранения в памяти): типы значения, ссылочные типы. Встроенные типы. Упаковка и распаковка.
  • Линейные вычисления. Организация консольного ввода/вывода в C#. Арифметические и бинарные операции.
  • Приведение типов данных.
  • Алгоритмы ветвления. Логические и тернарные операции.
  • Циклические алгоритмы.
  • Работа с датой и временем

Тема 2: Процедуры в C#

  • Организация подпрограмм (процедуры, функции) в C#.
  • Возвращение значений из подпрограммы
  • Передача параметров в подпрограмму. Использование служебных свойств ref, out.

Тема 3: Структурные типы данных

  • Перечисления.
  • Структуры (struct [TypeName]) в C#. Архитектура структурного типа и особенности использования в программе.
  • Архитектура класса (class [TypeName]) в C#. Поля, методы, конструкторы, свойства. Атрибуты доступа к элементам класса: public, protected, private, static.
  • Экземпляр класса (объект) как ссылочный (reference) тип данных. Особенности использования объекта в выражениях и передача в метод как параметра. Клонирование объектов.
  • Использование обобщений – generetic типов в классах.
  • Понятие «контракта» для структурного типа данных. Знакомство с интерфейсами (interface), понятие полиморфизма типов.
  • Время жизни и область видимости объектов, управление временем жизни объекта, финализация и disposable шаблон.

Тема 4: Коллекции – range data в C#

  • Массивы в .Net. Инициализация, многомерные массивы. Поиск и сортировка в массивах классическими методами. Классы, инкапсулирующие массивы и свойства - индексаторы.
  • Списки, словари и множества.
  • Использование коллекций в .Net через специализированные интерфейсы. Унификация работы с коллекциями данных в .Net. Цикл foreach(…).
  • Специализированные коллекции: стек, очередь, связанные списки, потоко-защищенные коллекции.

Тема 5: Делегаты, лямбда-выражения, события

  • Делегаты (delegate): простые и multicast – делегаты. Использование делегатов. Анонимные делегаты. Полиморфизм кода при помощи делегатов.
  • Использование делегатов при сравнении, сортировке и поиске объектов в коллекциях.
  • События (event) в .Net.
  • Лямбда-выражения в C# и их связь и делегатами. Применение лямбда-выражений вместо анонимных делегатов.
  • Основы LINQ. Работа с коллекциями через LINQ. Использование LINQ расширений для стандартных интерфейсов коллекций.
  • Работа со строками в .Net, основы регулярных выражений.

Тема 6: Наследование в классах .Net

  • Базовые и производные классы, преобразование и приведение наследованных типов.
  • Наследование и доступность элементов классов при наследовании. Доступ к элементам базовых классов.
  • Конструкторы базовых и производных классов.
  • Виртуальные и абстрактные методы. Полиморфизм типов.
  • Запечатанные классы и методы. Расширение класса без наследования.
  • Специальные базовые типы.

Тема 7: Файлы и потоки

  • Понятие потока данных, класс Stream, операции с потоком данных: позиция и поиск, длина потока, чтение / запись, очистка.
  • Конкретные типы потоков, иерархия классов, производных от Stream и классы – адаптеры потоков. Работа с текстовыми и бинарными файлами.
  • Файлы и каталоги. Операции с файлом, каталогом. Операции с имеем файла.
    • Взаимодействие между процессами:
    • файлы, проецируемые в память (memory mapped files)
    • анонимные и именованные каналы (PipeServerStream и PipeClientStream)
  • Сериализация. Использование BinaryReader, BinaryWriter, сериализация CLR. ISerializable интерфейс и собственная (custom) сериализация.
  • Основы логирования в приложениях. Использование стандартных логгеров log4net, system event log и .Net Enterprise Library.
  • Работа с сетью. Класс NetworkStream и производные. Обмен данными по TCP/IP и Http протоколу.
  • Краткое введение в шифрование данных, использование crypto-stream.

Тема 8: Обработка исключений и время жизни объектов

  • Исключения (exceptions): источники, обработка, выбрасывание (throw) исключений, типизированные исключения, необработанные исключения.
  • Время жизни объекта, сборка «мусора». Деструкторы и финализация.
  • Взаимодействие классов, реализующих интерфейс IDisposable и обработка исключений
  • Упаковка типа Nullable.

Тема 9: Работа с XML данными

  • XML, что это такое, структура XML документа.
  • Простое чтение / запись XML документов (SAX parsing). Классы XmlReader, XmlWriter.
  • XML сериализация пользовательских типов данных в .Net.
  • Понятие схемы XML документа. Валидация XML документа по схеме.
  • DOM подход для работы с XML документами. Применение LINQ to XML библиотеки для чтения.

Тема 10: Многопоточное программирование в .Net 4.5

  • Простой запуск задачи в параллельном потоке. Свойства класса Thread и базовые операции с потоками вычислений. Простейший способ асинхронного исполнения задачи – использование класса Timer.
  • Стандартный пул потоков в .Net, класс ThreadPool.
  • Выполнение задачи асинхронно через асинхронные делегаты.
  • Синхронизация доступа к ресурсам между несколькими потоками: мониторы, оператор lock, семафоры, мьютексы, объекты событий, класс Interlocker.
  • Синхронизация выполнение нескольких асинхронных задач: Async call backing, waiting и др. средства синхронизации задач.
    • Стандартные средства выполнения асинхронных задач в .Net 4.5:
    • Parallel framework (Parallel LINQ, класс Parallel)
    • задачи, класс Task
    • асинхронные возможности языка C# 4.5 – служебные слова async и await.

Тема 11: Рефлексия (отражение) типов

  • Понятие сборки в .Net, метаданных сборки и типы рефлексии, классы Assembly, Module, MemberInfo, Type, TypeInfo.
  • Полная рефлексия типов через классы – описатели типов, конструкторов, методов, полей и свойств.
  • Роль атрибутов в .Net. Атрибуты уровня сборки (файл AssemblyInfo.cs). Атрибуты компилятора, CLR. Пользовательские атрибуты.
  • Управление решением Visual Studio, включающего несколько проектов.
  • Позднее связывание сборок. Загрузка сборки или только метаданных. Использование классов на позднем связывании. Рефлексия атрибутов на раннем и позднем связывании.
  • Имена сборок, строгие имена (подпись сборок), глобальный кэш сборок GAC.
  • Процессы, домены приложений в .Net и объектные контексты. Загрузка сборок в отдельные домены и взаимодействие между ними.

Тема 12: Работа с базами данных MS SQL Server

  • Основы проектирования баз данных. Язык запросов к БД – SQL. Основы T-SQL для MS SQL Server.
  • ADO.NET Framework для доступа к данным MS SQL Server в приложениях .Net.
  • Использование DataSet и типизированных DataSet для представления данных БД в .Net приложении.
  • Основы ORM framework – Entity Framework для MS SQL Server. EDMX-model, code first, fluent data context.

Тема 13: Основы WCF

  • WCF как собрание API интерфейсов для распределённых вычислений. Обзор архитектуры WCF.
  • Шаблоны проектов WCF в visual Studio. Базовая структура приложения WCF.
  • Адрес, привязка (binding), контракт и служба WCF.
  • Служба WCF и ее хостинг. Масштабирование относительно рабочих потоков службы.
  • Клиентское приложение WCF.
  • Асинхронный вызов методов службы WCF.