Что такое .NET? Общие сведения и общие сведения

.NET — это бесплатная кроссплатформенная платформа открытый код разработчика для создания множества приложений. Платформа .NET основана на высокопроизводительной среде выполнения , которая используется в рабочей среде многими высокомасштабируемыми приложениями.

Облачные приложения

Кроссплатформенные клиентские приложения

Приложения для Windows

Другие типы приложений

Компоненты

Функции .NET позволяют разработчикам эффективно писать надежный и эффективный код.

Использование .NET

Приложения и библиотеки .NET создаются на основе исходного кода и файла проекта с помощью .NET CLI или интегрированной среды разработки (IDE), например Visual Studio.

В следующем примере используется минимальное приложение .NET:

Файл проекта:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
  </PropertyGroup>
</Project>

Исходный код:

Console.WriteLine("Hello, World!");

Приложение можно создавать и запускать с помощью .NET CLI:

% dotnet run
Hello, World!

Его также можно построить и запустить как два отдельных шага. В следующем примере используется приложение с именем:

% dotnet build
% ./bin/Debug/net6.0/app 
Hello, World!

Двоичные распределения

  • Пакет SDK для .NET — набор средств, библиотек и сред выполнения для разработки, создания и тестирования приложений.
  • Среда выполнения .NET — набор сред выполнения и библиотек для запуска приложений.

Вы можете скачать .NET из:

Бесплатный и открытый код

.NET является бесплатным, открытый код и является проектом.NET Foundation. Платформа .NET поддерживается корпорацией Майкрософт и сообществом на сайте GitHub в нескольких репозиториях.

Исходные файлы и двоичные файлы .NET лицензируются с лицензией MIT. Дополнительные лицензии применяются к Windows для двоичных дистрибутивов.

Поддержка

Корпорация Майкрософт поддерживает .NET в операционных системах Android, Apple, Linux и Windows. Его можно использовать в архитектурах Arm64, x64 и x86. Она также поддерживается в эмулированных средах, таких как macOS Rosetta 2.

Новые версии .NET выпускаются ежегодно в ноябре. Выпуски .NET в нечетных годах — это выпуски долгосрочной поддержки (LTS) и поддерживаются в течение трех лет. Выпуски за четные годы — это выпуски краткосрочной поддержки (STS) и поддерживаются в течение 18 месяцев. Уровень качества, критические политики изменений и все остальные аспекты выпусков одинаковы. Дополнительные сведения см. в разделе "Выпуски и поддержка".

Команда .NET в Корпорации Майкрософт сотрудничает с другими организациями для распространения и поддержки .NET различными способами.

Red Hat поддерживает .NET в операционной системе Red Hat Enterprise Linux (RHEL).

Samsung поддерживает .NET на платформах Tizen.

Среда выполнения

Среда CLR является основой для всех приложений .NET. Основными функциями среды выполнения являются:

  • сборка мусора;
  • Безопасность памяти и безопасность типов.
  • Высокоуровневая поддержка языков программирования.
  • Кроссплатформенный дизайн.

.NET иногда называется средой выполнения управляемого кода. Он называется управляемым в первую очередь потому, что он использует сборщик мусора для управления памятью, а также обеспечивает безопасность типов и памяти. Среда CLR виртуализирует (или абстрагирует) различные понятия операционной системы и оборудования, такие как память, потоки и исключения.

Среда CLR была разработана для кроссплатформенной среды выполнения с момента ее создания. Он был перенесен в несколько операционных систем и архитектур. Кроссплатформенный код .NET обычно не требует повторной компиляции для выполнения в новых средах. Вместо этого необходимо просто установить другую среду выполнения для запуска приложения.

Среда выполнения предоставляет различные службы диагностики и API для отладчиков, дампов и средств трассировки и наблюдаемости. Реализация наблюдаемости в основном основана на OpenTelemetry, обеспечивая гибкий мониторинг приложений и проектирование надежности сайта (SRE).

Среда выполнения предлагает низкоуровневые функции взаимодействия в стиле C с помощью сочетания P /Invoke, типов значений и возможности разбиения значений по границе машинного или управляемого кода.

Языки

Среда выполнения предназначена для поддержки нескольких языков программирования. Языки C#, F# и Visual Basic поддерживаются корпорацией Майкрософт и разрабатываются в сотрудничестве с сообществом.

  • C# — это современный, объектно-ориентированный и типобезопасный язык программирования. Он имеет свои корни в семействе языков C и сразу же знаком программистам C, C++, Java и JavaScript.

  • F# — это совместимый язык программирования для написания краткого, надежного и эффективного кода. Программирование на языке F# ориентировано на данные, где код включает преобразование данных с помощью функций.

  • Visual Basic использует более подробный синтаксис, который ближе к обычному человеческому языку. Это может быть более простой язык для людей, не знакомых с программированием.

Компиляция

Приложения .NET (как написаны на высокоуровневом языке, например C#), компилируются на промежуточный язык (IL). IL — это компактный формат кода, который можно поддерживать в любой операционной системе или архитектуре. Большинство приложений .NET используют API, поддерживаемые в нескольких средах, требуя выполнения только среды выполнения .NET.

Il необходимо скомпилировать в машинный код для выполнения на ЦП, например Arm64 или x64. .NET поддерживает как модели JIT-компиляции , так и JIT.

  • В Android, macOS и Linux JIT-компиляция используется по умолчанию, а AOT является необязательным (например, с ReadyToRun).
  • В iOS AOT является обязательным (за исключением запуска в симуляторе).
  • В средах WebAssembly (Wasm) AOT является обязательным.

Преимущество JIT заключается в том, что он может компилировать приложение (неизмененные) в инструкции по ЦП и соглашения о вызовах в заданной среде в соответствии с базовой операционной системой и оборудованием. Он также может компилировать код на более высоком или более низком уровне качества, чтобы повысить производительность пропускной способности запуска и устойчивого состояния.

Преимущество AOT заключается в том, что он обеспечивает лучший запуск приложения и может (в некоторых случаях) привести к меньшему развертыванию. Основной недостаток заключается в том, что двоичные файлы должны быть созданы для каждого отдельного целевого объекта развертывания (аналогично любому другому машинному коду). Код AOT несовместим с некоторыми шаблонами отражения.

Библиотеки среды выполнения.

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

Ниже приведены некоторые примеры типов, определенных в библиотеках среды выполнения .NET:

Подробнее см. в статье Общие сведения о библиотеках среды выполнения.

Диспетчер пакетов NuGet

NuGet — это диспетчер пакетов для .NET. Это позволяет разработчикам совместно использовать скомпилированные двоичные файлы друг с другом. NuGet.org предлагает множество популярных пакетов от сообщества.

Инструменты

Пакет SDK для .NET — это набор библиотек и инструментов для разработки и запуска приложений .NET. Он включает подсистему сборки MSBuild , компилятор Roslyn (C# и Visual Basic) и компилятор F# . Большинство команд выполняются с помощью dotnet команды. Средства CLI можно использовать для локальной разработки и непрерывной интеграции.

Семейство ПАРАМЕТРОВ разработки Visual Studio обеспечивает отличную поддержку языков .NET и C#, F# и Visual Basic.

Функции безопасности GitHub Codespaces и GitHub поддерживают .NET.

Записные книжки

.NET Interactive — это группа средств и интерфейсов командной строки, которые позволяют пользователям создавать интерактивные возможности в веб-приложениях, разметке и записных книжках.

Дополнительные сведения см. в следующих ресурсах:

CI/CD

MSBuild и .NET CLI можно использовать с различными средствами и средами непрерывной интеграции, например:

Дополнительные сведения см. в разделе "Использование пакета SDK для .NET" в средах непрерывной интеграции (CI).

Модели развертывания

Приложения .NET можно публиковать в двух разных режимах:

  • Автономные приложения включают среду выполнения .NET и зависимые библиотеки. Они могут быть одним или несколькими файлами. Пользователи приложения могут запустить его на компьютере, на котором не установлена среда выполнения .NET. Автономные приложения всегда нацелены на одну операционную систему и конфигурацию архитектуры.
  • Для приложений, зависящих от платформы, требуется совместимая версия среды выполнения .NET, обычно установленная глобально. Приложения, зависящие от платформы, могут быть опубликованы для одной операционной системы и конфигурации архитектуры или как переносимые, предназначенные для всех поддерживаемых конфигураций.

Приложения .NET запускаются с собственным исполняемым файлом по умолчанию. Исполняемый файл является операционной системой и архитектурой. Приложения также можно запустить с помощьюdotnet команды.

Приложения можно развернуть в контейнерах. Корпорация Майкрософт предоставляет образы контейнеров для различных целевых сред.

Журнал .NET

В 2002 году корпорация Майкрософт выпустила .NET Framework, платформу разработки для создания приложений Windows. Сегодня платформа .NET Framework находится в версии 4.8 и полностью поддерживается корпорацией Майкрософт.

В 2014 году корпорация Майкрософт начала создавать кроссплатформенный преемник платформы .NET Framework с открытым кодом. Эта новая реализация .NET носит имя .NET Core до версии 3.1. Следующая версия после .NET Core 3.1 — .NET 5.

Новые версии .NET продолжают выпускаться ежегодно, каждый основной номер версии выше. Они включают значительные новые функции и часто включают новые сценарии.

Экосистема .NET

Существует несколько вариантов .NET, каждый из которых поддерживает разные типы приложений. Причина нескольких вариантов — часть истории, часть технической.

Реализации .NET (исторический порядок):

  • платформа .NET Framework — предоставляет доступ к широким возможностям Windows и Windows Server. Также широко используется для облачных вычислений под управлением Windows. Исходная .NET.
  • Mono — кроссплатформенная реализация платформа .NET Framework. Исходное сообщество и открытый код .NET. Используется для приложений Android, iOS и Wasm.
  • .NET (Core) — кроссплатформенная и открытый код реализация .NET, переосмыслена для облачного возраста, оставаясь значительно совместимой с платформа .NET Framework. Используется для приложений Linux, macOS и Windows.

Дальнейшие действия