какие средства не включает среда разработки net
.NET — это бесплатная платформа разработки с открытым исходным кодом для создания различных типов приложений, таких как следующие:
Для совместного использования функциональных возможностей различных приложений и типов приложений используются библиотеки классов.
Кроссплатформенные
Поддерживаемые архитектуры процессоров:
.NET позволяет использовать специальные возможности платформы, такие как API операционной системы. Примерами являются Windows Forms и WPF в Windows и собственные привязки к каждой мобильной платформе из Xamarin.
Открытый исходный код
Поддержка
Инструменты и производительность
.NET предоставляет возможность выбора языков, интегрированных сред разработки (IDE) и других средств.
Языки программирования
C# (произносится как «си шарп») — современный объектно-ориентированный и типобезопасный язык программирования. C# относится к широко известному семейству языков C, и покажется хорошо знакомым любому, кто работал с C, C++, Java или JavaScript.
Язык F# поддерживает функциональные, объектно-ориентированные и императивные модели программирования.
Интегрированные среды разработки
Онлайн-среда Visual Studio Code, которая в настоящее время доступна в виде бета-версии.
Пакет SDK и среды выполнения
Загружаемый пакет SDK содержит следующие компоненты.
Загружаемая среда выполнения содержит следующие компоненты.
Дополнительные сведения см. в следующих ресурсах:
Система проектов и MSBuild
И вот один для веб-приложения:
NuGet
Дополнительные сведения см. в документации NuGet.
.NET Interactive — это группа средств и интерфейсов командной строки, которые позволяют пользователям создавать интерактивные возможности в веб-приложениях, разметке и записных книжках.
Дополнительные сведения см. в следующих ресурсах:
Модели выполнения.
.NET CLR — это кроссплатформенная среда выполнения, которая включает поддержку Windows, macOS и Linux. Среда CLR обрабатывает выделение памяти и управление ей. Среда CLR также является виртуальной машиной, которая не только выполняет приложения, но и создает, а также компилирует код с помощью JIT-компилятора.
Для получения дополнительной информации см. Common Language Runtime.
JIT-компилятор и промежуточный язык
Так как JIT-компиляция происходит во время выполнения приложения, время компиляции является частью времени выполнения. Таким образом, JIT-компиляторы должны поддерживать баланс между временем оптимизации кода и экономии, к которой может привести результирующий код. Но JIT-компилятор знает фактическое оборудование и может освободить разработчиков от поставки различных реализаций для различных платформ.
Компилятор AOT
Автоматическое управление памятью
Сборщик мусора (GC) управляет выделением и освобождением памяти для приложений. Каждый раз, когда код создает новый объект, среда CLR выделяет память для объекта из управляемой кучи. Пока в управляемой куче есть доступное адресное пространство, среда выполнения продолжает выделять пространство для новых объектов. Когда остается недостаточное свободное пространство адресов, сборщик мусора проверяет наличие объектов в управляемой куче, которые больше не используются приложением. Затем эта память освобождается.
GC — это одна из служб CLR, которая помогает обеспечить безопасность памяти. Программа является безопасной по памяти, если она обращается только к выделенной памяти. Например, среда выполнения гарантирует, что приложение не обращается к невыделенной памяти за пределами границ массива.
Дополнительные сведения о сборке мусора см. в статьях Автоматическое управление памятью и Основы сборки мусора.
Работа с неуправляемыми ресурсами
Дополнительные сведения см. в разделе Очистка неуправляемых ресурсов.
Модели развертывания
Можно установить несколько версий среды выполнения параллельно, чтобы запускать зависящие от платформы приложения, предназначенные для разных версий среды выполнения. Дополнительные сведения см. в разделе Целевые платформы.
Исполняемые файлы создаются для конкретных целевых платформ, которые указываются с помощью идентификатора среды выполнения (RID).
Библиотеки среды выполнения.
.NET имеет обширный стандартный набор библиотек классов, известный как библиотеки среды выполнения, библиотеки платформы или библиотеки базовых классов (BCL). Эти библиотеки предоставляют реализации для многих общих и зависящих от рабочей нагрузки типов, а также функциональные возможности.
Расширения библиотек среды выполнения
Библиотеки для некоторых часто используемых функциональных возможностей приложения не включены в библиотеки среды выполнения, но доступны в пакетах NuGet, как показано ниже.
Пакет NuGet | Документация |
---|---|
Microsoft.Extensions.Hosting | Управление жизненным циклом приложения (универсальный узел) |
Microsoft.Extensions.DependencyInjection | Внедрение зависимостей |
Microsoft.Extensions.Configuration | Конфигурация |
Microsoft.Extensions.Logging | Logging |
Microsoft.Extensions.Options | Шаблон параметров |
Доступ к данным
.NET предоставляет объектно-реляционный модуль сопоставления (ORM) и способ написания SQL-запросов в коде.
Entity Framework Core
LINQ позволяет писать декларативный код для работы с данными. Данные могут быть представлены разными формами (например, объектами в памяти, содержимым базы данных SQL или XML-документом), но обычно создаваемый код LINQ не отличается для каждого из источников данных.
Уточнение терминологии
Среда выполнения
платформа
Пакет SDK
platform
Сложные сценарии
Взаимодействие на уровне машинного кода
Основным способом осуществления взаимодействия с собственными API является «вызов неуправляемого кода» или сокращенно P/Invoke. P/Invoke поддерживается на платформах Linux и Windows. Способ, который подходит только для Windows, называется «COM-взаимодействием» и используется для работы с COM-компонентами в управляемом коде. Он основан на инфраструктуре P/Invoke, но работает иначе.
Небезопасный код
Дополнительные сведения см. в разделе Небезопасный код и указатели.
Все программы, за исключением средства просмотра кэша сборок (Shfusion.dll), запускаются из командной строки. Доступ к Shfusion.dll осуществляется из проводника.
Лучший способ запуска программ командной строки — использовать одну из оболочек разработчика, устанавливаемых Visual Studio. Эти служебные программы позволяют запустить средства легко, без необходимости перемещения в папку установки. Дополнительные сведения см. в статье о командной строке разработчика и PowerShell для разработчиков.
Некоторые средства относятся либо к 32-разрядным компьютерам, либо к 64-разрядным компьютерам. Обязательно проверьте, подходит ли запускаемая версия программы для локального компьютера.
Содержание раздела
Al.exe (компоновщик сборок)
Создает файл, обладающий манифестом сборки из модулей или файлов ресурсов.
Aximp.exe (программа импорта элементов ActiveX в Windows Forms)
Преобразует определения типов для элемента управления ActiveX из библиотеки типов COM в элемент управления Windows Forms.
Cert2spc.exe (средство проверки сертификата издателя программного обеспечения)
Создает сертификат издателя программного обеспечения (SPC) из одного или более сертификатов X.509. Этот инструмент предназначен только для тестирования.
Certmgr.exe (средство диспетчера сертификатов)
Управляет сертификатами, списками доверенных сертификатов (CTL) и списками отзыва сертификатов (CRL).
Clrver.exe (средство проверки версий среды CLR)
Выводит отчет обо всех установленных на компьютере версиях среды CLR.
CorFlags.exe (средство преобразования CorFlags)
Позволяет настраивать раздел CorFlags заголовка переносимого исполняемого (PE) образа.
Gacutil.exe (программа глобального кэша сборок)
Позволяет просматривать содержимое глобального кэша сборок и кэша загрузки и выполнять различные операции с этим содержимым.
Ilasm.exe (ассемблер IL)
Создает переносимый исполняемый файл (PE) из файла промежуточного языка (IL). Можно запустить полученный исполняемый файл, чтобы проверить, выполняется ли код IL так, как ожидалось.
Ildasm.exe (дизассемблер IL)
Принимает входной исполняемый файл (PE), содержащий код на языке IL, и создает на его основе текстовый файл, который может быть входным для ассемблера IL (Ilasm.exe).
Installutil.exe (установщик)
Позволяет устанавливать и удалять ресурсы сервера, выполняя компоненты установщика в указанной сборке. (Работает с классами в пространстве имен System.Configuration.Install.)
Lc.exe (компилятор лицензий)
Считывает текстовые файлы, содержащие сведения о лицензиях, и создает файл с расширением .licenses, который может быть внедрен в исполняемый файл среды CLR в качестве ресурса.
Mage.exe (средство создания и редактирования манифеста)
Позволяет создавать, редактировать и подписывать манифесты приложения и развертывания. Как средство командной строки Mage.exe можно запустить из пакетных сценариев и других приложений Windows, включая приложения ASP.NET.
MageUI.exe (средство создания и редактирования манифестов, графический клиент)
Поддерживает те же функциональные возможности, что и средство командной строки Mage.exe, однако использует интерфейс пользователя на основе Windows. Поддерживает те же функциональные возможности, что и средство командной строки Mage.exe, но использует пользовательский интерфейс на основе Windows.
Mgmtclassgen.exe (генератор строго типизированных классов управления)
Позволяет создавать управляемый класс с ранней привязкой для заданного класса инструментария управления Windows (WMI).
Ngen.exe (генератор образов в машинном коде)
Повышает производительность управляемых приложений за счет использования образов в машинном коде (файлов, содержащих скомпилированный для конкретного процессора машинный код). Среда выполнения может использовать образы в машинном коде, находящиеся в кэше, вместо использования JIT-компилятора для компиляции исходной сборки.
Peverify.exe (средство PEVerify)
Помогает проверить, удовлетворяет ли код на языке MSIL и связанные с ним метаданные требованиям безопасности типа.
Resgen.exe (генератор файлов ресурсов)
Преобразует текстовые файлы ( .txt или .restext) и файлы ресурсов на основе XML ( .resx) в двоичные файлы среды CLR ( .resources), которые могут быть внедрены в двоичный исполняемый файл среды выполнения или скомпилированы во вспомогательные сборки.
SignTool.exe (программа подписывания)
Добавляет в файлы цифровую подпись, проверяет подписи файлов и создает отметки времени для файлов.
Sn.exe (средство строгих имен)
Позволяет создавать сборки со строгими именами. Это средство предусматривает параметры для управления ключами, генерации подписи и ее проверки.
SOS.dll (расширение отладки SOS)
Помогает отлаживать управляемые программы в отладчике WinDbg.exe и в Visual Studio, предоставляя информацию о внутренней среде CLR.
Storeadm.exe (средство изолированного хранилища)
Управляет изолированным хранилищем; предоставляет возможности для получения списка пользовательских сохранений и их удаления.
Tlbexp.exe (программа экспорта библиотек типов)
Создает библиотеку типов, описывающую типы, определенные в сборке среды CLR.
Tlbimp.exe (программа импорта библиотек типов)
Выполняет преобразование определений типов, имеющихся в библиотеке типов COM, в эквивалентные определения сборки среды CLR.
Winres.exe (редактор ресурсов Windows Forms)
Помогает выполнять локализацию ресурсов пользовательского интерфейса (файлы с расширением .resx или .resources), используемых в Windows Forms. Можно перевести строки, а затем изменять размеры элементов управления, перемещать их и скрывать, чтобы вместить в них локализованные строки.
Связанные разделы
Средства WPF Включают такие инструменты, как средство соответствия isXPS (isXPS.exe) и средства профилирования производительности.
Средства Windows Communication Foundation
Включает средства, упрощающие создание, развертывание и управление приложениями Windows Communication Foundation (WCF).
Обеспечение согласованной объектно-ориентированной среды программирования для локального сохранения и выполнения объектного кода, для локального выполнения кода, распределенного в Интернете, либо для удаленного выполнения.
Предоставление среды выполнения кода, в которой:
сведена к минимуму вероятность конфликтов в процессе развертывания программного обеспечения и управления его версиями;
гарантируется безопасное выполнение кода, включая код, созданный неизвестным или не полностью доверенным сторонним изготовителем;
исключаются проблемы с производительностью сред выполнения скриптов или интерпретируемого кода;
обеспечиваются единые принципы разработки для разных типов приложений, таких как приложения Windows и веб-приложения;
Например, ASP.NET размещает среду выполнения и обеспечивает масштабируемую среду для управляемого кода на стороне сервера. ASP.NET работает непосредственно со средой выполнения, чтобы обеспечить выполнение приложений ASP.NET и веб-служб XML, обсуждаемых ниже в этой статье.
Обозреватель Internet Explorer может служить примером неуправляемого приложения, размещающего среду выполнения (в виде расширений типов MIME). Размещение среды выполнения в обозревателе Internet Explorer позволяет внедрять управляемые компоненты или элементы управления Windows Forms в HTML-документы. Такое размещение среды позволяет выполнять управляемый мобильный код и пользоваться его существенными преимуществами, в частности выполнением в условиях неполного доверия и изолированным хранением файлов.
На следующем рисунке демонстрируется взаимосвязь среды CLR и библиотеки классов с пользовательскими приложениями и всей системой. На рисунке также показано, как управляемый код работает в пределах более широкой архитектуры.
Возможности среды CLR
Среда CLR управляет памятью, выполнением потоков, выполнением кода, проверкой безопасности кода, компиляцией и другими системными службами. Эти средства являются внутренними для управляемого кода, который выполняется в среде CLR.
По соображениям безопасности управляемым компонентам присваиваются разные степени доверия, зависящие от ряда факторов, в число которых входит их происхождение (например, Интернет, сеть предприятия или локальный компьютер). Это означает, что управляемый компонент может или не может выполнять операции доступа к файлам, операции доступа к реестру или другие важные функции, даже если он используется в одном и том же активном приложении.
Кроме того, управляемая среда выполнения исключает многие часто возникающие проблемы с программным обеспечением. Например, среда выполнения автоматически управляет размещением объектов и ссылками на объекты, освобождая их, когда они больше не используются. Автоматическое управление памятью исключает две наиболее часто возникающие ошибки приложений: утечки памяти и недействительные ссылки на память.
Хотя среда выполнения разрабатывалась для будущего программного обеспечения, она также поддерживает сегодняшнее и вчерашнее программное обеспечение. Взаимодействие управляемого и неуправляемого кодов позволяет разработчикам использовать необходимые компоненты COM и библиотеки DLL.
Среда выполнения разработана для повышения производительности. Хотя общеязыковая среда выполнения предоставляет многие стандартные службы времени выполнения, управляемый код никогда не интерпретируется. Средство компиляции по требованию (JIT) позволяет выполнять весь управляемый код на машинном языке компьютера, где он запускается. Между тем диспетчер памяти устраняет возможность фрагментации памяти и увеличивает объем адресуемой памяти для дополнительного повышения производительности.
Наконец, среда выполнения может размещаться в высокопроизводительных серверных приложениях, таких как Microsoft SQL Server и службы IIS (Internet Information Services). Такая инфраструктура позволяет использовать управляемый код для написания собственной логики программ, пользуясь при этом высочайшей производительностью лучших производственных серверов, которые поддерживают размещение среды выполнения.
Приложения с графическим интерфейсом Windows (Windows Forms). См. статью Windows Forms.
Приложения Windows Presentation Foundation (WPF). См. статью Windows Presentation Foundation.
Сервисноориентированные приложения, использующие Windows Communication Foundation (WCF). См. статью Разработка сервисноориентированных приложений с помощью WCF.
Приложения, поддерживающие бизнес-процессы Windows Workflow Foundation (WF). См. Windows Workflow Foundation.
.NET 5.0 является последней версией.
Поддерживаемые выпуски
Даты окончания жизненного цикла версий Windows 10 зависят от выпуска. В следующей таблице рассматриваются только выпуски Домашняя, Профессиональная, Pro для образовательных учреждений и Pro для рабочих станций. Дополнительные сведения см. в справочных материалах по жизненному циклу поддержки Windows.
Символ + представляет минимальную версию.
Операционная система | .NET Core 2.1 | .NET Core 3.1 | .NET 5 |
---|---|---|---|
Windows 11 | ❌ | ✔️ | ✔️ |
Windows Server 2022 | ❌ | ✔️ | ✔️ |
Windows 10, версия 21H1 | ✔️ | ✔️ | ✔️ |
Windows 10 или Windows Server версии 20H2 | ✔️ | ✔️ | ✔️ |
Windows 10 или Windows Server версии 2004 | ✔️ | ✔️ | ✔️ |
Windows 10 или Windows Server версии 1909 | ✔️ | ✔️ | ✔️ |
Windows 10 или Windows Server версии 1903 | ✔️ | ✔️ | ✔️ |
Windows 10, версия 1809 | ✔️ | ✔️ | ✔️ |
Windows 10, версия 1803 | ✔️ | ✔️ | ✔️ |
Windows 10, версия 1709 | ✔️ | ✔️ | ✔️ |
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 | ✔️ | ✔️ | ❌ |
Неподдерживаемые выпуски
Сведения о среде выполнения
В Windows можно установить три различные версии среды выполнения:
Сведения о пакете SDK
Зависимости
.NET 5.0 поддерживает следующие версии Windows:
Символ + представляет минимальную версию.
Операционная система | Version | Архитектуры |
---|---|---|
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 Core 3.1 поддерживает следующие версии Windows:
Символ + представляет минимальную версию.
Операционная система | Version | Архитектуры |
---|---|---|
Windows 11 | 21H2 | x64, ARM64 |
Клиент Windows 10 | 1607+ | x64, x86 |
Клиент Windows | 7 с пакетом обновления 1 и более поздних версий (SP1+), 8.1 | x64, x86 |
Windows Server | 2012+ | x64, x86 |
Nano Server | 1803+ | x64, ARM32 |
.NET Core 3.0 поддерживает следующие версии Windows:
Символ + представляет минимальную версию.
Операционная система | Version | Архитектуры |
---|---|---|
Клиент Windows | 7 с пакетом обновления 1 и более поздних версий (SP1+), 8.1 | x64, x86 |
Клиент Windows 10 | Версия 1607+ | x64, x86 |
Windows Server | 2012 R2+ | x64, x86 |
Nano Server | Версия 1803+ | x64, ARM32 |
.NET Core 2.2 поддерживает следующие версии Windows:
Символ + представляет минимальную версию.
Операционная система | Version | Архитектуры |
---|---|---|
Клиент Windows | 7 с пакетом обновления 1 и более поздних версий (SP1+), 8.1 | x64, x86 |
Клиент Windows 10 | Версия 1607+ | x64, x86 |
Windows Server | 2008 R2 с пакетом обновления 1 или более поздней версии (SP1+) | x64, x86 |
Nano Server | Версия 1803+ | x64, ARM32 |
.NET Core 2.1 поддерживает следующие версии Windows:
Символ + представляет минимальную версию.
Операционная система | Version | Архитектуры |
---|---|---|
Клиент Windows | 7 с пакетом обновления 1 и более поздних версий (SP1+), 8.1 | x64, x86 |
Клиент Windows 10 | Версия 1607+ | x64, x86 |
Windows Server | 2008 R2 с пакетом обновления 1 или более поздней версии (SP1+) | x64, x86 |
Nano Server | Версия 1803+ | x64, |
Автономная установка для Windows 7
Обязательно ознакомьтесь с зависимостями ниже, необходимыми для Windows 7.
Windows 7 / Vista / 8.1 / Server 2008 R2 / Server 2012 R2
Приведенные выше требования также применяются, если возникает ошибка, связанная с любой из следующих библиотек DLL:
Установка с помощью функции автоматизации PowerShell
Сценарии dotnet-install используются для автоматизации непрерывной интеграции и ее осуществления без прав администратора. Вы можете скачать сценарий со страницы справочника по сценариям dotnet-install.
Установка с помощью Visual Studio
Если среда Visual Studio уже установлена, вы можете проверить ее версию, выполнив указанные ниже действия.
Выбор рабочей нагрузки
При установке или изменении Visual Studio выберите одну или несколько из следующих рабочих нагрузок в зависимости от типа создаваемого приложения:
Установка вместе с Visual Studio Code
Visual Studio Code — это эффективный и облегченный редактор исходного кода, который работает на компьютере. Visual Studio Code доступен для Windows, macOS и Linux.
Установщик Windows
/quiet
Предотвращает отображение любого пользовательского интерфейса и запросов.
norestart
Предотвращает все попытки перезапуска.
В случае успешной установки установщик возвращает код 0; если требуется перезагрузка, установщик возвращает код 3010. Любое другое значение обычно является кодом ошибки.
Скачивание и установка вручную
Такой подход позволяет установить несколько версий в отдельные расположения, а затем явно выбрать расположение установки, которое должно использовать приложение, запустив приложение с переменными среды, указывающими на это расположение.
Docker
Контейнеры обеспечивают простой способ изоляции приложения от остальной части основной системы. Контейнеры на одном компьютере совместно использую только ядро, а также используют ресурсы, которые передаются в приложение.
Корпорация Майкрософт предоставляет образы, которые предназначены для конкретных сценариев. Например репозиторий ASP.NET Core содержит образы, которые предназначены для запуска приложений ASP.NET Core в рабочей среде.