Платформы .NET и инструменты, используемые в редакциях по C# и .NET

В первом издании этой книги, которое было опубликовано в марте 2016 года, я сосредоточился на функциональности .NET Core, но использовал .NET Framework, когда важные или полезные функции еще не были еще реализованы в .NET Core. Это было необходимо, поскольку дело было до выхода .NET Core 1.0. Для большинства примеров использовалась Visual Studio 2015, а Visual Studio Code был показан лишь вскользь.

Второе издание было (почти) полностью очищено от всех примеров кода .NET Framework, чтобы читатели могли сосредоточиться на примерах .NET Core 1.1, которые действительно работают кросс-платформенно, это и был релиз LTS.

Третье издание завершило трансформацию. Оно было переписано так, чтобы весь код был чисто .NET Core 2.0. Но пошаговые инструкции для Visual Studio Code и Visual Studio 2017 для всех задач добавили сложности.

Четвертое издание продолжило эту тенденцию, показывая примеры кодирования только с использованием Visual Studio Code во всех главах, кроме двух последних. В главе 20 "Создание настольных приложений для Windows" используется Visual Studio, работающая на Windows 10, а в главе 21 "Создание кроссплатформенных мобильных приложений" - Visual Studio для Mac.

В пятом издании глава 20 "Создание настольных приложений для Windows" была перенесена в приложение B, доступное только онлайн, чтобы освободить место для новой главы 20 "Создание пользовательских веб-интерфейсов с помощью Blazor". Проекты Blazor могут быть созданы с помощью Visual Studio Code.

В шестом издании глава 19 "Создание мобильных и настольных приложений с помощью .NET MAUI" была обновлена, чтобы показать, как с помощью Visual Studio 2022 и .NET MAUI (Multi-platform App UI) можно создавать мобильные и настольные кроссплатформенные приложения.

В этом седьмом издании я переориентировал книгу на три области: язык, библиотеки и основы веб-разработки. Читатели могут использовать Visual Studio Code для всех примеров в книге или любой другой редактор кода по своему выбору.

Темы, рассматриваемые в разделе о приложениях и сервисах с .NET 7

Следующие темы доступны в новой книге "Приложения и службы с .NET 7:

  • Данные: SQL Server, Azure Cosmos DB.

  • Библиотеки: Даты, время, часовые пояса и интернационализация; генераторы рефлексии и исходного кода; сторонние библиотеки для работы с изображениями, ведения журналов, составления карт, генерации PDF; бенчмаркинг производительности и многозадачности и так далее.

  • Сервисы: gRPC, OData, GraphQL, Azure Functions, SignalR, Minimal Web APIs.

  • Пользовательские интерфейсы: ASP.NET Core, Blazor WebAssembly, .NET MAUI.

Понимание языка-посредника

Компилятор C# (названный Roslyn), используемый инструментом dotnet CLI, преобразует ваш исходный код C# в код промежуточного языка (intermediate language ,IL) и сохраняет IL в сборке (assembly, файл DLL или EXE). Операторы IL-кода как инструкции языка ассемблера, которые выполняются виртуальной машиной .NET, известной как CoreCLR.

Во время выполнения CoreCLR загружает IL-код из ассемблера, компилятор just-in-time (JIT) компилирует его в родные инструкции CPU, а затем он выполняется CPU на вашей машине.

Преимущество этого двухэтапного процесса компиляции заключается в том, что Microsoft может создавать CLR как для Linux и macOS, так и для Windows. Один и тот же IL-код работает везде благодаря второму этапу компиляции, который генерирует код для родной операционной системы и набора инструкций процессора.

Независимо от того, на каком языке написан исходный код, например, C#, Visual Basic или F#, все .NET-приложения используют IL-код для своих инструкций, хранящихся в сборке. Microsoft и другие компании предоставляют инструменты дизассемблера, которые могут открыть сборку и раскрыть этот IL-код, например, ILSpy .NET. Decompiler.

Сравнение .NET технологий

Мы можем кратко обобщить и сравнить технологии .NET на сегодняшний день, как показано в следующей таблице:

Технология

Описание

Хост ОС

Modern .NET

Современный набор функций, полная поддержка C# 8-11, используется для переноса

существующих приложений или создания новых настольных, мобильных и веб

приложений и сервисов. Может быть ориентирован на более старые платформы .NET.

Windows, macOS, Linux, Android, iOS, Tizen

.NET Framework

Устаревший набор функций, ограниченная поддержка C# 8, нет поддержки C# 9-11, используется только для поддержки существующих приложений.

только Windows

Xamarin

Только мобильные и десктопные приложения.

Android, iOS, macOS

Last updated