Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен
Отправляя письмо или сообщение, не забудьте указать название книги и ее авторов, а также свой обратный адрес. Мы внимательно ознакомимся с вашим мнением и обязательно учтем его при отборе и подготовке к изданию новых книг.
Наши электронные адреса:
E-mail: [email protected]
WWW: http://www.dialektika.com
Часть I
Язык программирования C# и платформа .NET 5
Глава 1
Введение в C# и .NET (Core) 5
Платформа Microsoft .NET и язык программирования C# впервые были представлены приблизительно в 2002 году и быстро стали главной опорой современной индустрии разработки программного обеспечения. Платформа .NET позволяет большому числу языков программирования (включая С#, VB.NET и F#) взаимодействовать друг с другом. На программу, написанную на С#, может ссылаться другая программа, написанная на VB.NET. Такая способность к взаимодействию более подробно обсуждается позже в главе.
В 2016 году компания Microsoft официально выпустила инфраструктуру .NET Core. Подобно .NET инфраструктура .NET Core позволяет языкам взаимодействовать друг с другом (хотя поддерживает ограниченное количество языков). Что более важно, новая инфраструктура способна функционировать не только под управлением операционной системы Windows, но также может запускаться (и позволять разрабатывать приложения) в средах iOS и Linux. Такая независимость от платформы открыла язык C# для гораздо большего числа разработчиков. Несмотря на то что межплатформенное использование C# поддерживалось и до выхода .NET Core, это делалось через ряд других инфраструктур, таких как проект Mono.
На заметку! Возможно, вас заинтересовало наличие круглых скобок в названии главы. С выходом .NET 5 часть "Core" в имени была отброшена с целью указания на то, что эта версия является унификацией всей платформы .NET. Но все же ради ясности повсюду в книге будут применяться термины .NET Core и .NET Framework.
10 ноября 2020 года компания Microsoft выпустила C# 9 и .NET 5. Как и C# 8, версия C# 9 привязана к определенной версии инфраструктуры и будет функционировать только под управлением .NET 5.0 и последующих версий. Привязка версии языка к версии инфраструктуры давала команде разработчиков C# свободу в плане ввода новых средств в С#, которые в противном случае не удалось бы добавить из-за ограничений инфраструктуры.
Во введении книги отмечалось, что при ее написании преследовались две цели. Первая из них — предоставление читателям глубокого и подробного описания синтаксиса и семантики языка С#. Вторая (не менее важная) цель — иллюстрация использования многочисленных API-интерфейсов .NET Core. В перечень рассматриваемых тем входят доступ к базам данных с помощью ADO.NET и Entity Framework (EF) Core, построение пользовательских интерфейсов посредством Windows Presentation Foundation (WPF), а также создание веб-служб REST и веб-приложений с применением ASP.NET Core. Как говорят, пеший поход длиной тысячу километров начинается с первого шага, который и будет сделан в настоящей главе.
Первая глава закладывает концептуальную основу для успешного освоения остального материала книги. Здесь вы найдете высокоуровневое обсуждение нескольких связанных с .NET тем, таких как сборки, общий промежуточный язык (Common Intermediate Language — CIL) и оперативная (Just-In-Time — JIT) компиляция. В дополнение к предварительному обзору ряда ключевых слов C# вы узнаете о взаимоотношениях между разнообразными компонентами .NET Core. Сюда входит исполняющая среда .NET Runtime, которая объединяет общеязыковую исполняющую среду .NET Core (.NET Core Common Language Runtime — CoreCLR) и библиотеки .NET Core (.NET Core Libraries — CoreFX) в единую кодовую базу, общая система типов (Common Type System — CTS), общеязыковая спецификация (Common Language Specification — CLS) и .NET Standard.
Кроме того, в главе представлен обзор функциональности, поставляемой в библиотеках базовых классов .NET Core, для обозначения которых иногда применяется аббревиатура BCL (base class library — библиотека базовых классов). Вы кратко ознакомитесь с независимой от языка и платформы природой .NET Core. Как несложно догадаться, многие затронутые здесь темы будут более детально исследоваться в оставшихся главах книги.
На заметку! Многие средства, рассматриваемые в настоящей главе (и повсюду в книге), также присутствуют в первоначальной инфраструктуре .NET Framework. В этой книге всегда будут использоваться термины "инфраструктура .NET Core" и "исполняющая среда .NET Core", а не общий термин ". NET", чтобы четко указывать, какие средства поддерживаются в .NET Core.
Некоторые основные преимущества инфраструктуры .NET Core
Инфраструктура .NET Core представляет собой программную платформу для построения веб-приложений и систем на основе служб, функционирующих под управлением операционных систем Windows, iOS и Linux, а также приложений Windows Forms и WPF для Windows. Ниже приведен краткий перечень основных средств, предлагаемых .NET Core.
• Возможность взаимодействия с существующим кодом. Несомненно, это очень полезно. Существующее программное обеспечение .NET Framework может взаимодействовать с более новым программным обеспечением .NET Core. Обратное взаимодействие тоже возможно через .NET Standard.
• Поддержка многочисленных языков программирования. Приложения .NET Core могут создаваться с использованием языков программирования С#, F# и VB.NET (при этом C# и F# являются основными языками для ASP.NET Core).
• Общий исполняющий механизм, разделяемый всеми языками .NET Core. Одним из аспектов такого механизма является наличие четко определенного набора типов, которые способен опознавать каждый язык .NET Core.
• Языковая интеграция. В .NET Core поддерживается межъязыковое наследование, межъязыковая обработка исключений и межъязыковая отладка кода. Например, можно определить базовый класс в C# и расширить этот тип в VB.NET.
• Обширная библиотека базовых классов. Данная библиотека предоставляет тысячи предварительно определенных типов, которые позволяют строить библиотеки кода, простые терминальные приложения, графические настольные приложения и веб-сайты производственного уровня.
• Упрощенная модель развертывания. Библиотеки .NET Core не регистрируются в системном реестре. Более того, платформа .NET Core позволяет нескольким версиям инфраструктуры и приложения гармонично сосуществовать на одном компьютере.
• Всесторонняя поддержка командной строки. Интерфейс командной строки .NET Core (command-line interface — CLI) является межплатформенной цепочкой инструментов для разработки и пакетирования приложений .NET Core. Помимо стандартных инструментов, поставляемых в составе .NET Core SDK, могут быть установлены дополнительные инструменты.
Все перечисленные темы (и многие другие) будут подробно рассматриваться в последующих главах. Но сначала необходимо объяснить новый жизненный цикл поддержки для .NET Core.
Понятие жизненного цикла поддержки .NET Core
Версии .NET Core выходят гораздо чаще, нежели версии .NET Framework . Из-за обилия доступных выпусков может быть трудно не отставать, особенно в корпоративной среде разработки. Чтобы лучше определить жизненный цикл поддержки для выпусков, компания Microsoft приняла вариацию модели долгосрочной поддержки (Long-Term Support — LTS)[1], обычно применяемой современными инфраструктурами с открытым кодом.