Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Введение в проектирование и разработку приложений на языке программирования С#

Покупка
Артикул: 803776.01.99
Доступ онлайн
1 300 ₽
В корзину
Представлены основы языка программирования C#. Рассмотрены среда исполнения .NET, конструкции языка C# и объектно-ориентированное программирование на нем, работа с коллекциями, файловой системой, рефлексией, а также параллельная обработка данных. Дано введение в технологию разработки оконных пользовательских интерфейсов Windows Forms. Для студентов, изучающих информатику и вычислительную технику в МГТУ им. Н. Э. Баумана.
Самохвалов, Э. Н. Введение в проектирование и разработку приложений на языке программирования С# : учебное пособие / Э. Н. Самохвалов, Г. И. Ревунков, Ю. Е. Гапанюк. - Москва : МГТУ им. Баумана, 2018. - 246 с. - ISBN 978-5-7038-4553-0. - Текст : электронный. - URL: https://znanium.com/catalog/product/2010604 (дата обращения: 10.12.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Э.Н. Самохвалов, Г.И. Ревунков, Ю.Е. Гапанюк

Введение в проектирование
и разработку приложений

на языке программирования С#

Учебное пособие

УДК 004.43
ББК 32.973.2
 
C17

Издание доступно в электронном виде на портале ebooks.bmstu.ru 

по адресу: http://ebooks.bmstu.ru/catalog/193/book1764.html

Факультет «Информатика и системы управления»

Кафедра «Системы обработки информации и управления»

Рекомендовано Редакционно-издательским советом  
МГТУ им. Н.Э. Баумана в качестве учебного пособия 

Самохвалов, Э. Н. 

C17  
Введение в проектирование и разработку приложений на 

языке программирования С# : учебное пособие / Э. Н. Самохвалов, Г. И. Ревунков, Ю. Е. Гапанюк. — Москва : Издательство МГТУ им. Н. Э. Баумана, 2018. — 244, [4] с. : ил. 

ISBN 978­5­7038­4553­0
Представлены основы языка программирования C#. Рассмотрены среда исполнения .NET, конструкции языка C# и объектноориентированное программирование на нем, работа с коллекциями, 
файловой системой, рефлексией, а также параллельная обработка 
данных. Дано введение в технологию разработки оконных пользовательских интерфейсов Windows Forms.

Для студентов, изучающих информатику и вычислительную технику в МГТУ им. Н.Э. Баумана.

УДК 004.43
ББК 32.973.2

 
© МГТУ им. Н.Э. Баумана, 2018 

  
© Оформление. Издательство  

ISBN 978­5­7038­4553­0 
 
МГТУ им. Н.Э. Баумана, 2018

Посвящается памяти любимого Учителя  
профессора Эдуарда Николаевича Самохвалова,  
который трудился в МГТУ им. Н.Э. Баумана 
более 50 лет и сделал очень много доброго 
для нашего вуза и кафедры «Системы  
обработки информации и управления»

Предисловие

Данное учебное пособие поможет ознакомиться с основами языка программирования C#. В нем изложены основы среды исполнения .NET, представлены конструкции языка C#, объектно­ориентированное программирование в C#, работа с коллекциями, файловой 
системой, рефлексией, параллельная обработка данных, а также 
дано введение в технологию разработки оконных пользовательских 
интерфейсов Windows Forms.
В пособии принят принцип обучения на основе примеров. Все 
предлагаемые технологии рассмотрены в виде последовательности 
примеров, архив с которыми расположен на сайте кафедры ИУ­5 
(http://iu5.bmstu.ru). Архив содержит набор пронумерованных примеров проектов, ссылки на их номера даны в тексте.
В качестве среды разработки используется Visual Studio 
Commu nity 2017. В соответствии с лицензионным соглашением 
на данный программный продукт «любое количество ваших пользователей могут использовать это программное обеспечение для 
разработки и тестирования приложений в рамках сетевого дистанционного или аудиторного обучения и образования, а также 
для проведения академических исследований» (условия лицензионного соглашения на использование программного обеспечения 
Microsoft Visual Studio Community 2017 представлены на https://
www.visualstudio.com/ru/license­terms/mlt553321/).
Дисциплину «Базовые компоненты интернет­технологий» читают преподаватели кафедры «Системы обработки информации 
и управления» (ИУ­5) в третьем семестре. В ее рамках основной 
предмет изучения — язык программирования C#. Это обусловлено 
следующим:

• в двух первых семестрах студенты кафедры изучают языки 
программирования C и C++, поэтому к третьему они знакомы с 
синтаксисом языка C++ и основами объектно­ориентированного программирования на C++. Язык программирования C# имеет много 
общего с С++, поэтому его изучение непосредственно после C++ позволяет сконцентрироваться на сходствах и различиях между ними;
• в отличие от объектно­ориентированного языка программирования С++, считающегося классическим, C# содержит ряд конструкций, присущих объектно­ориентированным языкам следующего 
поколения, например таких, как делегаты и рефлексия;
• для языка C# реализовано большое количество прикладных технологий, применяющихся при создании промышленных 
приложений; Windows Forms и WPF для разработки оконного 
пользовательского интерфейса; LINQ и Entity Framework для обработки данных; ASP.NET MVC для создания веб­приложений. 
Использовать язык С++ можно только с ограниченным набором 
прикладных технологий, например с Windows Forms, разработка 
веб­приложений на основе ASP.NET MVC не предполагает применения языка С++;
• дисциплина «Разработка интернет­приложений», которую читают преподаватели кафедры «Системы обработки информации и 
управления» в пятом семестре, включает в себя изучение технологии ASP.NET MVC, для чего требуется знание языка C#.
Цель преподавания дисциплины «Базовые компоненты интернет­технологий» — содействовать формированию у обучающихся 
следующих компетенций:
• способности разрабатывать и отлаживать компоненты аппаратно­программных комплексов с помощью современных автоматизированных средств проектирования (ПК­7);
• умению разрабатывать интерфейсы «человек — ЭВМ» (ПК­12).
В результате изучения дисциплины «Базовые компоненты интернет­технологий»:
студент должен знать:
• основы языка программирования С#;
уметь:
• разрабатывать консольные и оконные приложения с использованием С#;
• создавать интерфейсы человек — ЭВМ с применением технологии Windows Forms;

иметь навыки:
• разработки консольных и оконных приложений с использованием С#;
• разработки интерфейсов человек — ЭВМ с помощью Windows 
Forms.
Материал данного учебного пособия в целом соответствует содержанию дисциплины «Базовые компоненты интернет­технологий», которую читают в третьем семестре преподаватели кафедры 
«Системы обработки информации и управления».
В заключение еще раз отметим, что архив с используемыми примерами находится на сайте кафедры ИУ­5 по адресу:  
http://iu5.bmstu.ru/

Введение

Особенность современного состояния дел в области разработки 
интернет­приложений заключается в том, что используется много 
технологий.
На стороне веб­браузера — язык разметки HTML, технология 
каскадных таблиц стилей CSS, язык программирования JavaScript. 
На стороне веб­сервера — большое количество фреймворков (каркасов) для веб­разработки на различных языках программирования, 
из которых наиболее известны PHP, Python, Perl, C#, Java, JavaScript.
Для использования какого­либо из фреймворков необходимо 
знать соответствующий язык программирования. Сейчас в сообществе веб­разработчиков достаточно популярен фреймворк ASP.NET 
MVC, который предполагает знание языка C#.
Именно поэтому изучению языка C# посвящено данное издание.
В учебном пособии рассмотрены краткая характеристика среды исполнения .NET, базовые конструкции языка программирования C#, основы объектно­ориентированного программирования 
с использованием C#, работа с коллекциями, основы применения 
файловой системы, рефлексия, основы параллельной обработки 
данных, основы технологии Windows Forms.
Приведенный материал в целом соответствует содержанию дисциплины «Базовые компоненты интернет­технологий». 

1. Краткая характеристика  
языка программирования C#

Современный объектно­ориентированный язык программирования общего назначения C# разработан компанией Microsoft для 
платформы .NET. С его помощью можно создавать консольные 
приложения, оконные приложения с использованием технологий 
Windows Forms и WPF, веб­приложения с применением технологий 
ASP.NET и ASP.NET MVC. Для обработки данных предназначены 
технологии LINQ и Entity Framework.
Первая версия языка C# появилась в начале 2000 г. Его создателем был Андерс Хейлсберг, который до работы над ним разработал компилятор с языка Паскаль и среду разработки Delphi. 
Это, безусловно, сказалось на C#, который, несмотря на синтаксис, 
унаследованный от С++, впитал в себя лучшие структурные черты 
Паскаля. В 2005 г. вышла его версия 2.0, включавшая в себя средства и библиотеки для разработки оконных приложений на основе 
технологии Windows Forms. 
В 2008 г. была выпущена версия 3.5, содержавшая средства и 
биб лиотеки для разработки оконных приложений на основе технологии WPF. В нее была добавлена технология LINQ, представлявшая собой SQL­подобный язык запросов, встроенный в C#. Этот 
новаторский подход Андерса Хейлсберга до сих пор не имеет развитых аналогов в других языках программирования. Фактически, 
именно версия 3.5 сформировала основную концепцию языка, которая с тех пор не претерпела принципиальных изменений, хотя в его 
новые версии добавлено большое количество новых синтаксических 
конструкций и библиотек, особенно для параллельной и асинхронной обработки данных.
Язык C# продолжает активно развиваться. Из новых проектов 
следует отметить проект модульного компилятора Roslyn, предоставляющего разработчикам API для различных этапов компиляции, что облегчает создание новых языков программирования для 
платформы .NET.

Нужно подчеркнуть, что Андерсу Хейлсбергу удалось не только решить сложную техническую задачу по созданию быстрого 
компилятора, но и, главное, создать концептуально удачный язык 
программирования, который подходит как для задач обучения, так 
и для практической разработки крупных проектов. Основные черты 
языка программирования C#:
• синтаксис, в целом унаследованный от С++ и Java;
• некоторые конструкции языка, унаследованные из Паскаля, но 
«обернутые» в синтаксис, подобный тому, что у С++;
• хорошая читаемость кода, что очень важно при разработке 
больших проектов;
• технология LINQ, облегчающая обработку сложных структур 
данных;
• большое количество библиотек, что полезно для решения различных задач.
Конечно, в рамках небольшого пособия можно рассмотреть 
только основы языка программирования C#. Для его углубленного 
изучения стоит использовать работы [1–3].
Следует также отметить, что среда исполнения .NET и язык программирования C# детально документированы в справочной системе 
MSDN (Microsoft Developer Network) — https://msdn.microsoft.com.

2. Среда исполнения .NET

2.1. Краткое описание среды исполнения .NET

Среда .NET представляет собой виртуальную среду исполнения программ, или, проще говоря, программно­реализованную 
модель микропроцессора, которая исполняет команды на специфическом машинном языке, который называется MSIL (Microsoft 
Intermediate Language) или иногда IL (Intermediate Language). Он 
подобен другим языкам машинных команд, например языку команд 
микропроцессора Intel.
Как для команд микропроцессора Intel существует язык ассемблера, так и для MSIL есть специфический язык ассемблера. Программу на нем можно получить путем дизассемблирования исполняемого файла .NET.

Основной компонент .NET, использующий для выполнения 
MSIL­кода, — Common Language Runtime (CLR) или .NET runtime. 
Код, исполняемый под управлением CLR, иногда называют управляемым (managed) кодом.
Другая важнейшая составляющая платформы .NET — сборщик 
мусора (garbage collector). В программах на С++ память выделяется 
с помощью оператора new и освобождается посредством оператора 
delete. В языках платформы .NET существует оператор выделения 
памяти (в C# он также называется new), но оператор освобождения 
памяти принципиально отсутствует. Среда .NET сама следит за тем, 
нужна ли программе выделенная память, и если она не нужна, то 
память автоматически освобождается сборщиком мусора. Поэтому 
в среде исполнения .NET невозможны ошибки утечки памяти из­за 
того, что разработчик пропустил вызов оператора delete.
Среда исполнения .NET архитектурно очень похожа на среду 
исполнения Java, которая исторически появилась первой. В среде 
Java язык MSIL называется байт­кодом (byte code). На платформе 
Java также реализован сборщик мусора, в языке Java, как и в C#, 
существует оператор new и отсутствует оператор delete.
Платформа .NET часто подвергается критике по той причине, 
что она может быть запущена только под управлением операционной системы Windows. Преимуществом платформы Java является 
то, что она может быть запущена под управлением операционных 
систем Windows, macOS, различных версий Linux, а также некоторых других, менее распространенных операционных систем.
Чтобы преодолеть данное ограничение .NET, открытым сообществом была начата разработка аналога платформы .NET, который мог 
бы выполняться под управлением различных операционных систем. 
Эта платформа получила название Mono, ее первая версия появилась 
в 2004 г. Официальный сайт Mono — http://www.mono­project.com. 
Платформа Mono, как и Java, может быть запущена под управлением 
операционных систем Windows, macOS, различных версий Linux.
Интересным является тот факт, что компания Microsoft практически с самого начала поддержала разработку платформы Mono, 
официально признала ее версией .NET для macOS и Linux и даже 
ограничила действие некоторых патентов, чтобы эта платформа 
могла беспрепятственно развиваться.
Также компания Microsoft, в том числе для поддержки проекта 
Mono, раскрыла некоторые технологии и языки, связанные с .NET, 
и сделала их международными стандартами. В частности, версия 4 

языка C# была опубликована в виде международных стандартов 
ECMA­334 и ISO/IEC 23270:2006.
В настоящее время разработчикам платформы Mono удалось 
добиться очень хорошей совместимости с .NET. В большинстве 
случаев бинарные файлы проекта, который был скомпилирован в 
MSIL в среде .NET под ОС Windows, могут быть перенесены на 
ОС Linux и запущены в среде Mono. Однако необходимо учитывать, что не все библиотеки и фреймворки .NET поддерживаются 
в Mono. Поэтому, если есть желание разработать проект, который 
предполагается запускать и в .NET, и в Mono, то нужно проверить, 
поддерживаются ли обеими платформами все библиотеки и фреймворки, которые предполагается использовать.
Несмотря на вполне гармоничное сосуществование .NET и 
Mono, наличие этих двух платформ все­таки нельзя было признать идеальным вариантом. Поэтому в настоящее время компания 
Microsoft начала разработку платформы .NET Core. Версия 1.0 была 
выпущена в июне 2016 г. Платформа .NET Core, как и Mono, является проектом с открытым исходным кодом, который располагается 
в репозитории GitHub.
Разработка платформы .NET Core преследует две цели. Первая — создание единой платформы, которая может выполняться под 
управлением различных операционных систем. Вторая — создание 
платформы нового поколения, которая будет учитывать основные 
ошибки при проектировании .NET и Mono, станет более модульной 
и производительной, вберет в себя лучшие особенности платформ 
.NET и Mono и постепенно заменит их.
В настоящее время платформы .NET, Mono и .NET Core активно 
развиваются. Такая «конкуренция» не создает проблем разработчикам, потому что проект на основе C# может быть с минимальными 
доработками скомпилирован под все три платформы. Проблемой 
при компиляции может стать только наличие определенной библиотеки или фреймворка под конкретную платформу.
Данное пособие поможет получить базовые знания языка C#, которые позволят разрабатывать приложения под все три платформы.

2.2. Особенность компиляции и исполнения 
приложений для среды исполнения .NET

Здесь на примере среды исполнения .NET на концептуальном 
уровне рассмотрен процесс компиляции и компоновки. Приведенные 
рассуждения также справедливы для платформ Mono и .NET Core.

Доступ онлайн
1 300 ₽
В корзину