Лекция № 1
Тема: "Язык программирования C#: краткий обзор"
План
1. История создания языка
2. Версии языка
3. Чем интересен C#?
4. Архитектура платформы (как все это работает)
5. Элементы синтаксиса
1. История создания языка
Язык C#, разработанный компанией Майкрософт, один из самых популярных современных языков программирования. Он востребован на рынке разработки в различных странах. C# применяют при работе с программами для ПК, создании сложных веб-сервисов или мобильных приложений. Появившийся как язык для собственных нужд платформы Microsoft .NET, постепенно этот язык стал очень популярным.
Разработка языка началась в 1998 году, а первая версия увидела свет в 2001. Группой разработчиков руководил известный в профессиональных кругах специалист Андерс Хейлсберг.
Историческая справка. Андерс Хейлсберг — датский инженер-программист, создатель Turbo Pascal, Delphi, C# и TypeScript. В 1981 году написал свой первый компилятор языка Паскаль, который после портирования под операционную систему MS-DOS продал фирме Borland. Эта версия легла в основу Turbo/Borland Pascal, который развивался до 1995 года. До 1996 года был главным инженером фирмы Borland, где создал новое поколение компиляторов Паскаля — язык Delphi, компилятор которого работал уже под операционной системой Windows. В 1996 году перешёл в Microsoft, где работал над такими проектами, как J++ и Microsoft Foundation Classes. С 2000 года возглавлял группу по созданию и проектированию языка программирования C#.
Название «Си шарп» (от англ. sharp — диез) происходит от буквенной
музыкальной нотации, где латинской букве C соответствует нота До, а
знак диез (англ. sharp) означает повышение соответствующего
ноте звука на полутон, что аналогично названию языка C++, где «++»
обозначает инкремент переменной. Название также является игрой с цепочкой C → C++ →
C++++(C#), так как символ «#» можно представить состоящим из 4 знаков «+».
Из-за технических ограничений на отображение (стандартные шрифты, браузеры
и т. д.), а также из-за того, что знак диеза ♯ не представлен на стандартной
клавиатуре компьютера, при записи имени языка программирования
используют знак решётки (#). Это соглашение отражено в Спецификации языка C#
ECMA-334. Тем не менее, на практике (например, при размещении рекламы и
коробочном дизайне), «Майкрософт» использует знак диеза.
Названия языков программирования не принято переводить, поэтому язык
называют, используя транскрипцию, — «Си шарп».
Новые версии C# выходят сравнительно часто, а текущие доработки, исправление багов и расширение библиотек ведется практически на постоянной основе.
В результате язык получился крайне гибкий, мощный и универсальный. На нем пишут практически все, что угодно, от небольших веб-приложений до мощных программных систем, объединяющих в себе веб-структуры, приложения для десктопов и мобильных устройств. Все это стало возможным благодаря удобному Си-подобному синтаксису, строгому структурированию, огромному количеству фреймворков и библиотек (их число достигает нескольких сотен).
Долгое время платформа .NET поставлялась с закрытым ядром, что создавало определенные сложности в разработке и снижало популярность C# в профессиональной среде. Но в ноябре 2014 Майкрософт радикально изменила подход и стала выдавать бесплатные лицензии для Visual Studio уже с открытым исходным кодом для всех наборов инструментов.
2. Версии языка
На протяжении разработки языка C# было выпущено несколько его версий:
|
Версия |
Спецификация языка |
Дата |
.NET Framework |
Visual Studio |
||
|---|---|---|---|---|---|---|
|
ECMA |
ISO/IEC |
Microsoft |
||||
|
C# 1.0 |
Декабрь 2002 |
Апрель 2003 |
Январь 2002 |
Январь 2002 |
.NET Framework 1.0 |
Visual Studio .NET (2002) |
|
C# 1.2 |
Октябрь 2003 |
Апрель 2003 |
.NET Framework 1.1 |
Visual Studio .NET 2003 |
||
|
C# 2.0 |
Июнь 2006 |
Сентябрь 2006 |
Сентябрь 2005 |
Ноябрь 2005 |
.NET Framework 2.0 |
Visual Studio 2005 |
|
C# 3.0 |
Отсутствует |
Август 2007 |
Ноябрь 2007 |
.NET Framework 3.5 |
Visual Studio 2008 |
|
|
C# 4.0 |
Апрель 2010 |
Апрель 2010 |
.NET Framework 4 |
Visual Studio 2010 |
||
|
C# 5.0 |
Декабрь 2017 |
Отсутствует |
Июнь 2013 |
Август 2012 |
.NET Framework 4.5 |
Visual Studio 2012 |
|
C# 6.0 |
Отсутствует |
Июль 2015 |
Июль 2015 |
.NET Framework 4.6 |
Visual Studio 2015 |
|
|
C# 7.0 |
Отсутствует |
Март 2017 |
Март 2017 |
.NET Framework 4.6.2 |
Visual Studio 2017 |
|
|
C# 8.0 |
Отсутствует |
|
Сентябрь 2019 |
.NET Framework 4.8 |
Visual Studio 16.3.0 |
|
3. Чем интересен C#?
Си шарп – действительно интересный инструмент, достойный внимания. Он уверенно занимает высокие позиции в рейтингах востребованных ЯП на рынке труда. Потому имеет смысл изучить его возможности подробнее и понять, для чего и где стоит применять C#.
Компания Microsoft уделяет значительное внимание поддержке языка разработки, а потому регулярно появляются обновления и дополнения, исправляются выявленные баги в компиляторе, расширяются библиотеки. Разработчики заинтересованы в популяризации инструмента и прилагают к этому массу усилий.
Разработчики предоставляют подробную и развернутую документацию на своих официальных ресурсах. Кроме того, ответы практически на любые вопросы, связанные с работой в C#, можно найти в сети. Популярность языка привела к появлению множества профессиональных сообществ, посвященных Си шарпу. Существует множество учебников, курсов для новичков и миддлов, видео подборок и других обучающих материалов.
Инструментарий C# позволяет решать широкий круг задач, язык действительно очень мощный и универсальный. На нем разрабатывают:
- Приложения для WEB.
- Различные игровые программы.
- Приложения платформ Андроид или iOS.
- Программы для Windows.
Перечень возможностей разработки практически не имеет ограничений благодаря широчайшему набору инструментов и средств. Конечно, все это можно реализовать при помощи других языков, но некоторых из них узкоспециализированные, в других придется использовать дополнительные инструменты сторонних разработчиков. В C# решение широкого круга задач возможна быстрее, проще и с меньшими затратами времени и ресурсов.
К наиболее "интересным" особенностям языка относятся:
- Сборка мусора. Позволяет в автоматическом режиме очистить память от объектов, которые не используются, или уничтоженных приложений.
- Обработка исключений. С помощью этого инструмента можно легко выявлять и обрабатывать ошибки в коде. Способ является структурированным с широким набором функций. При этом важно не злоупотреблять возможностями работы с исключениями, так как при неправильном использовании появляется риск появления «багов».
- Единая система типов. В языке принята общая система работы с типами, начиная от примитивов и заканчивая сложными, в том числе, пользовательскими наборами. Применяется единый набор операций для обработки и хранения значений типизации. Также можно использовать ссылочные типы пользователя, что позволит динамически выделить память под объект или хранить упрощенную структуру в сети. Язык программирования запрещает обращение к переменным, которые не были инициализированы, что исключает возможность выполнения бесконтрольного приведения типов или выхода за пределы определенного массива данных.
- Управление версиями. Очень интересная особенность ЯП. Суть в том, что многие языки не уделяют должного внимания этому вопросу, и программы нередко перестают корректно работать при переходе на новую версию продукта. В C# это было исправлено.
4. Архитектура платформы (как все это работает)
Для работы приложений на C# необходимо установить и настроить платформу NET Framework. Она поставляется полностью бесплатно, применяется крайне широко, а потому проблем с пользовательскими устройствами обычно не возникает. Платформа встроена в установочный пакет Windows, при необходимости ее также можно скачать и «поставить» отдельно.
В рамках платформы к обработке исполняемого кода подключается среда CLR – единый объединенный набор библиотек и классов, который был разработан Майкрософт и является реализацией мирового стандарта Common Language Infrastructure (CLI).
После работы компилятора текст программы переводится в промежуточный язык IL, который «понимает» CLI. Работает это так. IL и все необходимые ресурсы, включая строки и рисунки формата BMP, сохраняются на жесткий диск в виде исполняемого файла dll или exe. Из таких файлов с промежуточным кодом формируется сборка приложения, которая включает в себя описание с полной информацией обо всех важных параметрах работы.
Непосредственно при выполнении программы CLR обращается к сборке и производит действия в зависимости от полученных сведений. Если код написан правильно и проходит проверку безопасности системы, производится компиляция из IL в инструкции в машинные команды.
В результате код C# считается управляемым, т.е. он компилируется в двоичный вид на пользовательском устройстве с учетом особенностей аппаратной части и установленной системы на машине клиента.

5. Элементы синтаксиса
Синтаксис языка практически не отличается от языков семейства С. Ниже приведем небольшой пример наиболее используемых в написании кода элементов.

C# на протяжении долгого времени уверенно лидирует в рейтинге лучших и наиболее востребованных на рынке разработки языков. Сначала им заинтересовались только разработчики, которые пишут приложения под Windows. Но в процессе развития C# «научился» работать на Mac, Linux, IOS и Android. А после того, как код платформы открыли для всех желающих, были сняты практически все возможные ограничения в применении C#. В результате язык активно развивается, применяется все шире. Рекомендован к изучению в качестве одного из базовых для разработчиков любого профиля.
Вопросы для самоконтроля
1. Опишите историю создания языка C#.
2. Какие особенности имеет язык C#? Где его используют?
3. Как происходит компиляция программ на C#?