Перейти к содержимому

Net core runtime что это

  • автор:

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

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

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

  • Полностью облачные приложения
  • .NET Aspire
  • Консольные приложения
  • Бессерверные функции в облаке
  • Веб-приложения, веб-API и микрослужбы

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

  • Классические приложения
  • Игры
  • Мобильные приложения.

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

  • Классические приложения Windows
    • Windows Forms
    • Windows WPF
    • Универсальная платформа Windows (UWP)

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

    • Машинное обучение
    • Интернет вещей (IoT)

    Функции

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

    • Асинхронный код
    • Атрибуты
    • Отражение
    • Анализаторы кода
    • Делегаты и лямбда-выражения
    • События
    • Исключения
    • Сборка мусора
    • Универсальные типы
    • LINQ (языковой интегрированный запрос).
    • Параллельное программирование и управляемое потоки
    • Вывод типов — C#, F#, Visual Basic.
    • Система типов
    • Небезопасный код

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

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

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

      Exe net8.0   
    Console.WriteLine("Hello, World!"); 

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

    dotnet run Hello, World! 

    Двоичные дистрибутивы

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

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

    • Сайт загрузки Майкрософт.
    • Контейнеры.
    • Диспетчеры пакетов Linux.

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

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

    Поддержка

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

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

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

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

    Параметры выполнения

    Среда 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 поддерживает модели компиляции «Заранее» (AOT) и JIT.

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

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

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

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

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

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

    • Каждый тип .NET является производным от System.Object типа.
    • Примитивные типы значений, например System.Boolean и System.Int32.
    • Коллекции, такие как System.Collections.Generic.List и System.Collections.Generic.Dictionary .
    • Типы данных, такие как System.Data.DataSet и System.Data.DataTable.
    • Служебные сетевые типы, такие как System.Net.Http.HttpClient.
    • Служебные типы файлов и потоков ввода-вывода, такие как System.IO.FileStream и System.IO.TextWriter.
    • Служебные типы сериализации, такие как System.Text.Json.JsonSerializer и System.Xml.Serialization.XmlSerializer.
    • Высокопроизводительные типы, такие как System.Span , System.Numerics.Vector и Pipelines.

    Диспетчер пакетов 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 — это группа средств и интерфейсов командной строки, которые позволяют пользователям создавать интерактивные возможности в веб-приложениях, разметке и записных книжках.

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

    • Учебник по .NET в браузере
    • Использование записных книжек .NET с Jupyter на компьютере
    • Документация по .NET Interactive

    CI/CD

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

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

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

    • Автономные приложения включают среду выполнения .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 упала часть «Core» имени и была названа .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.

    Следующие шаги

    • Выбор учебника по .NET
    • Попробовать .NET в браузере
    • Обзор языка C#
    • Обзор языка F#

    Совместная работа с нами на GitHub

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

    Установка .NET в Windows

    В этой статье описано, как установить .NET в Windows. .NET состоит из среды выполнения и пакета SDK. Среда выполнения используется для запуска приложения .NET и может быть включена в приложение. Пакет SDK используется для создания приложений и библиотек .NET. Среда выполнения .NET всегда устанавливается вместе с пакетом SDK.

    Последняя версия .NET — 8.0.

    Существует два типа поддерживаемых выпусков: выпуски долгосрочной поддержки (LTS) и выпуски стандартной поддержки терминов (STS). Качество всех выпусков одинаково. Единственное различие заключается в продолжительности поддержки. Выпуски LTS получают бесплатную поддержку и исправления в течение трех лет. Выпуски STS получают бесплатную поддержку и исправления в течение 18 месяцев. Дополнительные сведения см. в статье о политике поддержки .NET.

    В следующей таблице перечислены сведения о состоянии поддержки каждой версии .NET (и .NET Core):

    ✔️ Поддерживается ❌ Не поддерживается
    8 (LTS) 5
    7 (STS) 3.1
    6 (LTS) 3.0
    2.1
    2.0
    1,1
    1.0

    Установка с помощью Диспетчер пакетов Windows (winget)

    Вы можете установить и управлять .NET через службу Диспетчер пакетов Windows с помощью средства winget. Дополнительные сведения об установке и использовании winget см. в разделе «Использование средства winget«.

    Если вы устанавливаете .NET на уровне системы, установите с правами администратора.

    Установка пакета SDK

    Пакет SDK для .NET позволяет разрабатывать приложения с помощью .NET. При установке пакета SDK для .NET не требуется устанавливать соответствующие среды выполнения. Чтобы установить пакет SDK для .NET, выполните приведенную ниже команду.

    winget install Microsoft.DotNet.SDK.8 

    Установка среды выполнения

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

    Включает среду выполнения .NET Включает среду выполнения рабочего стола .NET Включает ASP.NET базовую среду выполнения
    Среда выполнения .NET Да No No
    Среда выполнения рабочего стола .NET Да Да Нет
    ASP.NET базовая среда выполнения No No Да

    В следующем списке содержатся сведения о каждой среде выполнения вместе с командами winget для их установки:

      Среда выполнения рабочего стола .NET Эта среда выполнения поддерживает приложения Windows Presentation Foundation (WPF) и Windows Forms, созданные с помощью .NET. Это не то же самое, что и платформа .NET Framework, который поставляется с Windows. Эта среда выполнения включает среду выполнения .NET, но не включает ASP.NET Core Runtime, которая должна быть установлена отдельно.

    winget install Microsoft.DotNet.DesktopRuntime.8 
    winget install Microsoft.DotNet.Runtime.8 
    winget install Microsoft.DotNet.AspNetCore.8 

    Вы можете установить предварительные версии среды выполнения, заменив номер версии, например 6 словом Preview . В следующем примере устанавливается предварительная версия среды выполнения рабочего стола .NET:

    winget install Microsoft.DotNet.DesktopRuntime.Preview 

    Установка вместе с Visual Studio Code

    Visual Studio Code — это эффективный и облегченный редактор исходного кода, который работает на компьютере. Visual Studio Code доступен для Windows, macOS и Linux.

    Хотя Visual Studio Code не поставляется с автоматическим установщиком .NET Core, таким как Visual Studio, добавление поддержки .NET Core не вызывает затруднений.

    1. Скачайте и установите Visual Studio Code.
    2. Скачайте и установите пакет SDK для .NET.
    3. Установите расширение C# из Marketplace для Visual Studio Code.

    Расширение C# для Visual Studio Code включает последнюю версию пакета SDK для .NET, и вам не нужно устанавливать среду выполнения .NET отдельно.

    Установка с помощью установщика Windows

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

    Включает среду выполнения .NET Включает среду выполнения рабочего стола .NET Включает ASP.NET базовую среду выполнения
    Среда выполнения .NET Да No No
    Среда выполнения рабочего стола .NET Да Да Нет
    ASP.NET базовая среда выполнения No No Да

    Пакет SDK для .NET позволяет создавать приложения .NET и содержать все среды выполнения.

    Страница загрузки для .NET содержит исполняемые файлы установщика Windows.

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

    • /install
      Устанавливает .NET.
    • /quiet
      Предотвращает отображение любого пользовательского интерфейса и запросов.
    • /norestart
      Подавляет попытки перезапуска.
    dotnet-sdk-8.0.100-win-x64.exe /install /quiet /norestart 

    Установщик возвращает код выхода 0 для успешного выполнения и код выхода 3010, чтобы указать, что требуется перезапуск. Любое другое значение обычно является кодом ошибки.

    Установка с помощью функции автоматизации PowerShell

    Сценарии dotnet-install используются для автоматизации непрерывной интеграции и ее осуществления без прав администратора. Вы можете скачать сценарий со страницы справочника по сценариям dotnet-install.

    Сценарий по умолчанию используется для установки последней долгосрочной версии поддержки (LTS), которая является .NET 8. Вы можете выбрать конкретный выпуск, указав параметр Channel . Включите параметр Runtime для установки среды выполнения. В противном случае сценарий устанавливает пакет SDK.

    Следующая команда устанавливает среды выполнения Desktop и ASP.NET Core для обеспечения максимальной совместимости.

    dotnet-install.ps1 -Channel 8.0 -Runtime windowsdesktop dotnet-install.ps1 -Channel 8.0 -Runtime aspnetcore 

    Установите пакет SDK, опустив параметр -Runtime . Этот -Channel параметр устанавливается в этом примере STS , который устанавливает последнюю версию поддержки терминов «Стандартный», которая является .NET 7.

    dotnet-install.ps1 -Channel STS 

    Установка с помощью Visual Studio

    Если вы используете Visual Studio для разработки приложений .NET, в следующей таблице указана минимальная требуемая версия Visual Studio на основе целевой версии пакета SDK для .NET.

    Версия пакета SDK для .NET Версия Visual Studio
    8 Visual Studio 2022 версии 17.8 или более поздней.
    7 Visual Studio 2022 версии 17.4 или выше.
    6 Visual Studio 2022 версии 17.0 или более поздней
    5 Visual Studio 2019 версии 16.8 или более поздней.
    3.1 Visual Studio 2019 версии 16.4 или более поздней.
    3.0 Visual Studio 2019 версии 16.3 или более поздней.
    2,2 Visual Studio 2017 версии 15.9 или более поздней.
    2.1 Visual Studio 2017 версии 15.7 или более поздней.

    Если среда Visual Studio уже установлена, вы можете проверить ее версию, выполнив указанные ниже действия.

    1. Откройте Visual Studio.
    2. Выберите Справка>О Microsoft Visual Studio.
    3. Считайте номер версии из диалогового окна О программе.

    Visual Studio может установить последнюю версию пакета SDK для .NET и среды выполнения .NET.

    Выбор рабочей нагрузки

    При установке или изменении Visual Studio выберите одну или несколько из следующих рабочих нагрузок в зависимости от типа создаваемого приложения:

    • рабочая нагрузка Кроссплатформенная разработка .NET Core в разделе Другие наборы инструментов;
    • Рабочая нагрузка ASP.NET и веб-разработкив разделе «Веб-облако&«.
    • Рабочая нагрузка разработкиAzure в разделе «Веб-облако&«.
    • Рабочая нагрузка разработкиклассических приложений .NET в разделе «Мобильный компьютер».&

    Windows Visual Studio 2019 with .NET Core workload

    Поддерживаемые выпуски

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

    Даты окончания жизненного цикла версий Windows 10 зависят от выпуска. В следующей таблице рассматриваются только выпуски Домашняя, Профессиональная, Pro для образовательных учреждений и Pro для рабочих станций. Дополнительные сведения см. в справочных материалах по жизненному циклу поддержки Windows.

    Символ + представляет минимальную версию.

    Операционная система .NET 8 .NET 7 .NET 6
    Windows 11 ✔️ ✔️ ✔️
    Windows Server 2022 ✔️ ✔️ ✔️
    Windows Server, версия 1903 или более поздняя ✔️ ✔️ ✔️
    Windows 10 версии 1607 или более поздней ✔️ ✔️ ✔️
    Windows 8.1 ✔️
    Windows 7 с пакетом обновления 1 (SP1), ESU ✔️
    Windows Server 2019
    Windows Server 2016
    Windows Server 2012 R2
    Windows Server 2012
    ✔️ ✔️ ✔️
    Windows Server Core 2012 R2 ✔️ ✔️ ✔️
    Windows Server Core 2012 ✔️ ✔️ ✔️
    Nano Server, версия 1809 и выше ✔️ ✔️ ✔️
    Nano Server, версия 1803

    Дополнительные сведения о поддерживаемых операционных системах, дистрибутивах и политике жизненного цикла .NET 8 см . в поддерживаемых версиях ОС .NET 8.

    Неподдерживаемые выпуски

    Следующие версии .NET больше не поддерживаются (❌).

    • .NET 5
    • .NET Core 3.1.
    • .NET Core 3.0
    • .NET Core 2.2
    • .NET Core 2.1
    • .NET Core 2.0;

    Проверка скачанных двоичных файлов

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

    При скачивании установщика или двоичного файла с официальной страницы скачивания отображается проверка sum для файла. Нажмите кнопку «Копировать«, чтобы скопировать значение проверка sum в буфер обмена.

    The .NET download page with checksum

    С помощью PowerShell или командной строки можно проверить проверка sum файла, который вы скачали. Например, следующая команда сообщает проверка sum файла dotnet-sdk-8.0.100-win-x64.exe:

    > certutil -hashfile dotnet-sdk-8.0.100-win-x64.exe SHA512 SHA512 hash of dotnet-sdk-8.0.100-win-x64.exe: 248acec95b381e5302255310fb9396267fd74a4a2dc2c3a5989031969cb31f8270cbd14bda1bc0352ac90f8138bddad1a58e4af1e56cc4a1613b1cf2854b518e CertUtil: -hashfile command completed successfully. 
    > (Get-FileHash .\dotnet-sdk-8.0.100-win-x64.exe -Algorithm SHA512).Hash 248acec95b381e5302255310fb9396267fd74a4a2dc2c3a5989031969cb31f8270cbd14bda1bc0352ac90f8138bddad1a58e4af1e56cc4a1613b1cf2854b518e 

    Сравните проверка sum со значением, предоставленным сайтом скачивания.

    Проверка с помощью PowerShell и файла проверка sum

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

    The github release notes version table for .NET

    1. Страница заметок о выпуске для .NET 8 на сайте GitHub https://github.com/dotnet/core/tree/main/release-notes/8.0 содержит раздел с именем «Выпуски«. Таблица в этом разделе ссылается на скачиваемые файлы и файлы проверка sum для каждого выпуска .NET 8:
    2. Выберите ссылку для скачаемой версии .NET. Предыдущий раздел использовал пакет SDK для .NET 8.0.100, который находится в выпуске .NET 8.0.0.

    Совет Если вы не уверены, какой выпуск .NET содержит файл проверка sum, изучите ссылки, пока не найдете его.

    The download table with checksums for .NET

  • На странице выпуска можно увидеть версию пакета SDK для .NET и .NET, а также ссылку на файл проверка sum:
  • Скопируйте ссылку на файл проверка sum.
  • Используйте следующий скрипт, но замените ссылку, чтобы скачать соответствующий файл проверка sum:

    Invoke-WebRequest https://dotnetcli.blob.core.windows.net/dotnet/checksums/8.0.0-sha.txt -OutFile 8.0.0-sha.txt 
    > (Get-Content .\8.0.0-sha.txt | Select-String "dotnet-sdk-8.0.100-win-x64.exe").Line -like (Get-FileHash .\dotnet-sdk-8.0.100-win-x64.exe -Algorithm SHA512).Hash + "*" True 

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

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

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

    Включает среду выполнения .NET Включает среду выполнения рабочего стола .NET Включает ASP.NET базовую среду выполнения
    Среда выполнения .NET Да No No
    Среда выполнения рабочего стола .NET Да Да Нет
    ASP.NET базовая среда выполнения No No Да

    В следующем списке содержатся сведения о каждой среде выполнения:

    • Среда выполнения рабочего стола
      Используется для запуска классических приложений .NET WPF и Windows Forms для Windows. Включает среду выполнения .NET.
    • ASP.NET базовая среда выполнения
      Используется для запуска приложений ASP.NET Core.
    • Среда выполнения .NET
      Простейшая среда выполнения, в состав которой не входят какие-либо другие среды выполнения. Установите ASP.NET Core Runtime и Desktop Runtime для обеспечения оптимальной совместимости с приложениями .NET.

    Сведения о пакете SDK

    Пакет SDK используется для создания и публикации приложений и библиотек .NET. Установка пакета SDK включает все три среды выполнения: ASP.NET Core, Desktop и .NET.

    Компьютеры Windows на базе ARM

    В следующих разделах описываются аспекты, которые следует учитывать при установке .NET на компьютере Windows на базе ARM.

    Поддерживаемые возможности

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

    Версия .NET Архитектура SDK Параметры выполнения Конфликт путей
    8 Arm64 Да Да Нет
    8 x64 Да Да Нет
    7 Arm64 Да Да Нет
    7 x64 Да Да Нет
    6 Arm64 Да Да Нет
    6 x64 Да Да Нет
    5 Arm64 Да Да Да
    5 x64 No Да Да

    Версии пакета SDK для .NET 64 и Arm64 существуют независимо друг от друга. Если выпущена новая версия, необходимо обновить каждую установку архитектуры.

    Различия в путях

    На компьютере с Windows на основе Arm все версии Arm64 .NET устанавливаются в обычную папку C:\Program Files\dotnet\ . Однако версия пакета SDK для .NET установлена в папку C:\Program Files\dotnet\x64\.

    Конфликты путей

    Пакет SDK для x64 .NET устанавливается в собственный каталог, как описано в предыдущем разделе. Это позволяет существовать на одном компьютере версии пакета SDK для .NET для Arm64 и x64. Однако любой пакет SDK x64 до 6 не поддерживается и устанавливается в то же расположение, что и версия Arm64 , папка C:\Program Files\dotnet\ . Если вы хотите установить неподдерживаемый пакет SDK x64, сначала необходимо удалить версию Arm64. Наоборот, необходимо удалить неподдерживаемый пакет SDK x64 для установки версии Arm64.

    Переменные пути

    Переменные среды, добавляющие .NET в системный PATH путь, например переменную, могут быть изменены, если установлены версии пакета SDK для .NET для x64 и Arm64. Кроме того, некоторые средства полагаются на DOTNET_ROOT переменную среды, которая также должна быть обновлена, чтобы указать соответствующую папку установки пакета SDK для .NET.

    Зависимости

    В .NET 8 поддерживаются следующие версии Windows:

    Символ + представляет минимальную версию.

    ОС Версия Архитектуры
    Windows 11 22000+ x64, x86, ARM64
    Клиент Windows 10 1607+ x64, x86, ARM64
    Windows Server 2012+ x64, x86
    Windows Server Core 2012+ x64, x86
    Nano Server 1809+ x64

    Дополнительные сведения о поддерживаемых операционных системах, дистрибутивах и политике жизненного цикла .NET 8 см . в поддерживаемых версиях ОС .NET 8.

    В .NET 7 поддерживаются следующие версии Windows:

    Символ + представляет минимальную версию.

    ОС Версия Архитектуры
    Windows 11 21H2+ x64, ARM64
    Клиент Windows 10 1607+ x64, x86, ARM64
    Windows Server 2012+ x64, x86
    Windows Server Core 2012+ x64, x86
    Nano Server 1809+ x64

    Дополнительные сведения о поддерживаемых операционных системах, дистрибутивах и политике жизненного цикла .NET 7 см . в поддерживаемых версиях ОС .NET 7.

    .NET 6 поддерживает следующие версии Windows:

    Символ + представляет минимальную версию.

    ОС Версия Архитектуры
    Windows 11 21H2+ x64, ARM64
    Клиент Windows 10 1607+ x64, x86, ARM64
    Клиент Windows 7 с пакетом обновления 1 и более поздних версий (SP1+), 8.1 x64, x86
    Windows Server 2012+ x64, x86
    Windows Server Core 2012+ x64, x86
    Nano Server 1809+ x64

    Дополнительные сведения об операционных системах, дистрибутивах и политике жизненного цикла, поддерживаемых .NET 6, см. в статье Поддерживаемые .NET 6 версии ОС.

    Автономная установка для Windows 7

    Этот раздел относится только к .NET Core 2.1.

    При автономной установке для .NET Core 2.1 в Windows 7 убедитесь, что на целевом компьютере установлен последний корневой центр сертификации Майкрософт 2011 .

    Средство certmgr.exe позволяет автоматизировать установку сертификата и его получение из Visual Studio или Windows SDK. Следующая команда используется для установки сертификата перед запуском установщика платформы .NET Core 2.1:

    certmgr.exe /add MicRooCerAut2011_2011_03_22.crt /s /r localMachine root 

    Обязательно ознакомьтесь с зависимостями ниже, необходимыми для Windows 7.

    Windows 7 / 8.1 / Server 2012

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

    Операционная система Необходимые компоненты
    Windows 7 с пакетом обновления 1 (SP1), ESU – Распространяемый компонент Microsoft Visual C++ 2015–2019, 64-разрядный / 32-разрядный
    – Обновление KB3063858, 64-разрядное / 32-разрядное
    — Центр корневой сертификации Microsoft 2011 (только удаленный установщик .NET Core 2.1)
    Windows 8.1 Распространяемый компонент Microsoft Visual C++ 2015–2019, 64-разрядный / 32-разрядный
    Windows Server 2012 Распространяемый компонент Microsoft Visual C++ 2015–2019, 64-разрядный / 32-разрядный
    Windows Server 2012 R2 Распространяемый компонент Microsoft Visual C++ 2015–2019, 64-разрядный / 32-разрядный

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

    • api-ms-win-crt-runtime-l1-1-0.dll
    • api-ms-win-cor-timezone-l1-1-0.dll
    • hostfxr.dll

    Docker

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

    .NET можно выполнять в контейнере Docker. Официальные образы Docker для .NET публикуются в реестре контейнеров Microsoft (MCR), и доступ к ним можно получить в репозитории Microsoft .NET Docker Hub. Каждый репозиторий содержит рабочие образы для разных сочетаний .NET (пакета SDK или среды выполнения) и операционной системы.

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

    Дополнительные сведения об использовании .NET в контейнере Docker см. в статьях Введение в .NET и Docker и Примеры.

    Устранение неполадок

    После установки пакета SDK для .NET могут возникнуть проблемы, связанные с выполнением команд .NET CLI. В этом разделе собираются распространенные проблемы и предоставляются решения.

    Пакет SDK для .NET не найден

    Скорее всего, вы установили версии x86 (32-разрядная версия) и x64 (64-разрядная версия пакета SDK для .NET). Это приводит к конфликту, так как при выполнении dotnet команды она разрешается в версию x86, когда она должна разрешаться в версию x64. Обычно это исправлено путем настройки переменной %PATH% , чтобы сначала разрешить версию x64.

      Убедитесь, что установлены обе версии, выполнив where.exe dotnet команду. Если это сделать, вы увидите запись для папок Program Files\ и Program Files (x86)\ . Если папка Program Files (x86)\ является первой, как показано в следующем примере, это неправильно, и вы должны продолжить переход к следующему шагу.

    > where.exe dotnet C:\Program Files (x86)\dotnet\dotnet.exe C:\Program Files\dotnet\dotnet.exe 

    Если это правильно, и program Files\ первый, у вас нет проблемы, которую обсуждает этот раздел, и вы должны создать проблему с запросом справки .NET на GitHub

  • Нажмите кнопку Windows и введите «Изменить системные переменные среды» в поиск. Выберите «Изменить системные переменные среды». Windows start menu with edit environment variable
  • Откроется окно «Свойства системы» на вкладке «Дополнительно». Выберите переменные среды. The Windows system properties panel open.
  • В окне «Переменные среды» в группе системных переменных выберите строку Path* и нажмите кнопку «Изменить«. The environment variables window with user and system variables.
  • Используйте кнопки перемещения вверх и вниз, чтобы переместить запись C:\Program Files\dotnet\ выше C:\Program Files (x86)\dotnet\. The environment variables list for the system.
  • Следующие шаги

    • Проверка того, установлена ли платформа .NET.
    • Руководство. Руководство по Hello World.
    • Руководство. Создание приложения с помощью Visual Studio Code.
    • Руководство. Контейнеризация приложения .NET Core.

    Совместная работа с нами на GitHub

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

    В чем отличие между .NET Core SDK и .NET Core Runtime?

    В чем отличие между .NET Core SDK и .NET Core Runtime и что нужно ставить разработчику и пользователю моей программы?

    Отслеживать
    задан 15 янв 2018 в 17:53
    user233225 user233225

    1 ответ 1

    Сортировка: Сброс на вариант по умолчанию

    • SDK (Software Developer Kit) — для разработки ПО и т.д.
    • Runtime — для запуска ПО.

    Пользователю вашей программы нужно ставить Runtime (как не странно).

    Отслеживать
    ответ дан 15 янв 2018 в 18:08
    Volodymyr Rets Volodymyr Rets
    2,417 14 14 серебряных знаков 26 26 бронзовых знаков

    Вообще по идеи, да, но я решил проверить прав ли я в Гугле, но ответа не нашел. А нужно ли мне ставить Runtime? (я разработчик)

    – user233225
    15 янв 2018 в 18:10
    @Editaw5, github.com/dotnet/cli/issues/7235 .Если ты установишь SDK то получишь сразу и Runtime
    15 янв 2018 в 18:13

      Важное на Мете
    Похожие

    Подписаться на ленту

    Лента вопроса

    Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

    Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.8.3130

    Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

    Возможности .NET Core

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

    Что это такое

    netcore-1.jpg

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

    Именно по этой причине начались поиска способа унифицировать среду для запуска приложений. И одной из наиболее успешных попыток в этой области можно назвать «Дот Нет», которая была разработана более 20 лет назад компанией Microsoft.

    Главная идея ее создания заключалась в том, чтобы добавить специальную программную «прослойку», которая располагалась бы между операционкой и приложением. Именно на эту прослойку были возложены функции сглаживания особенностей конкретной конфигурации ОС, тем самым упрощая запуск программы в имеющейся среде.

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

    • веб-API и микрослужбы;
    • классические и мобильные приложения;
    • web-приложения;
    • службы «Виндоус»;
    • консольные программы и т. д.

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

    Помимо Windows ОС, платформа dot NET Core также доступна в различных дистрибутивах Linux. Разработчики публикуют новый выпуск практически для всех дистрибутивов «Линукса», почти всегда в них имеется диспетчер пакетов для установки. По этой причине платформа становится все более популярной у программистов и постепенно вытесняет схожие решения.

    Начиная с 2016 года было выпущено более 10 версий дополнения. Первые из них назывались .NET Core, однако начиная с 2019 года это название было сокращено до .NET.

    Архитектура

    .NET Core базируется на архитектуре .NET Framework. Однако есть и несколько кардинальных отличий: например, платформа имеет возможность использования облачных технологий, функционал для кроссплатформенности и модульности. Также в версии Core произошло отделение среды выполнения от библиотеки.

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

    Дополнение было разработано корпорацией Microsoft, поэтому является ее собственностью. Однако инструмент был и остается бесплатным для использования.

    Удаленный офис
    и онлайн-продажи
    За 1 день.
    С бесплатным тестовым периодом.
    Конфигуратор удаленных рабочих мест
    Рабочие места для команды за 1 день

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

    Одно из основных характеристик «Дот Нет» является гибкое развертывание. Вы можете устанавливать платформу как часть приложения, так и отдельно. При использовании FDD удается уменьшить пакет развертывания, минимизировать использование памяти и дискового пространства.

    Развертывание приложений на платформе осуществляется в нескольких режимах:

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

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

    Общий код для .NET Core и других платформ

    oblaka-vidy-IT.jpg

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

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

    На сегодня «Дот Нет» поддерживает несколько языков программирования, в том числе C#, F# и Visual Basic .NET.

    Кроссплатформенность

    Как все знают, в мире существует множество разнообразных ОС, поэтому разработчики заинтересованы в том, чтобы их приложения распространялись в разных операционках. И случаев, когда запустить программу, разработанную для другой операционной системы, невозможно, становится все больше и больше. В этом случае для запуска требуется «портировать» приложение и только потом пытаться установить его в текущей ОС.

    В ряде случаев этого можно добиться простым перекомпилированием исходного текста программы. Однако чаще всего это не помогает, а это значит, что программу придется переписывать практически с нуля.

    Однако Microsoft учли этот момент при разработке .NET Core. По сути платформа стала играть роль «стандартизирующей» прослойки, которая позволила добиться адаптации исходного кода под среду ОС. Это значит, что приложение для одной операционки без труда будет запускаться в другой.

    Такой подход позволил избежать портирования отдельных программ, а портировать только программную прослойку. Для достижения цели Microsoft решили портировать один из компонентов модели .NET, в результате чего и появилась платформа «Дот Нет». Ее функциональность практически полностью совпадает с исходной версией и в чем-то даже стала намного шире.

    Сегодня .NET Core активно применяется в трех операционных системах: помимо Windows, это еще Linux и macOS. Это позволяет запускать новые приложения во всех ОС без дополнительных изменений. Именно это качество платформы называется кроссплатформенностью.

    Конечно, нужно понимать, что добиться 100% совместимости программ с любыми ОС практически нереально. Даже сейчас на платформе .NET не реализованы WebForms и Windows Forms.

    В рамках кросс-совместимости платформа включает в себя и модульную инфраструктуру. Это позволяет получить доступ к пакетным данным и функциям. Благодаря этому значительно упрощается процесс создания ПО, повышается производительность и безопасность процессов.

    Кроме этого, модульная инфраструктура помогает быстрее обновлять платформу, так как модули выпускаются и обновляются по отдельности.

    Выводы

    Характер платформы .NET делает ее незавершенной, поэтому она находится в постоянной доработке и обновлении. Если ранние версии инструмента использовались для приложений с большой функциональностью, то на современных этапах сделан акцент на развитие поддержки API и поддержку Visual Basic.

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

    Надеемся, что вы разобрались в том, что такое .NET Core и для чего эта платформа используется в программировании. Если у вас остались вопросы, то задайте их специалистам нашей компании Xelent!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *