Платформа .NET (произносится как « дот нет» ) — это бесплатная и управляемая программная среда с открытым исходным кодом для операционных систем Windows , Linux и macOS . [4] Проект в основном разрабатывается сотрудниками Microsoft с помощью .NET Foundation и выпускается под лицензией MIT . [3]
В конце 1990-х годов компания Microsoft начала разработку среды выполнения управляемого кода и языка программирования ( C# ), которые она представила как часть «платформы .NET», при этом основная среда выполнения и библиотеки программного обеспечения составляли .NET Framework .
В основе платформы .NET лежит .NET Framework — высокопроизводительная многоязыковая среда разработки и исполнения для создания и запуска веб-сервисов с такими важными функциями, как кросс-языковое наследование и отладка. [5]
Вскоре после анонса языка C# на конференции Professional Developers Conference в 2000 году и появления предварительных версий его программного обеспечения Microsoft начала стандартизацию через ECMA того, что она назвала Common Language Infrastructure . В то же время компания продолжала разрабатывать и поддерживать собственную реализацию в качестве закрытого программного обеспечения .
12 ноября 2014 года Microsoft представила .NET Core — кроссплатформенную [ 6] версию [7] .NET Framework с открытым исходным кодом — и выпустила исходный код для реализации .NET Core CoreCLR , исходный код для «всего стека [...] библиотек» для .NET Core, [8] и объявила о принятии обычной ( «базарной» ) модели разработки с открытым исходным кодом под руководством .NET Foundation . Мигель де Икаса описывает .NET Core как «переработанную версию .NET, основанную на упрощенной версии библиотек классов», [9] а Иммо Ландверт из Microsoft объяснил, что .NET Core станет «основой всех будущих платформ .NET». На момент объявления первоначальный выпуск проекта .NET Core был заполнен подмножеством исходного кода библиотек и совпал с повторным лицензированием существующего справочного исходного кода .NET Microsoft вдали от ограничений Ms -RSL . Ландверт признал недостатки ранее выбранной общей лицензии, объяснив, что она сделала кодовое имя Rotor «незапланированным» как проект с открытым исходным кодом, разработанный сообществом, поскольку он не соответствовал критериям лицензии, одобренной Open Source Initiative (OSI). [10] [11] [12]
.NET Core 1.0 был выпущен 27 июня 2016 года [13] вместе с Microsoft Visual Studio 2015 Update 3, который позволяет разрабатывать .NET Core. [14] .NET Core 1.0.4 и .NET Core 1.1.1 были выпущены вместе с .NET Core Tools 1.0 и Visual Studio 2017 7 марта 2017 года [15]
.NET Core 2.0 был выпущен 14 августа 2017 года вместе с Visual Studio 2017 15.3, ASP.NET Core 2.0 и Entity Framework Core 2.0. [16] .NET Core 2.1 был выпущен 30 мая 2018 года. [17] NET Core 2.2 был выпущен 4 декабря 2018 года. [18]
.NET Core 3 был выпущен 23 сентября 2019 года. [19] NET Core 3 добавляет поддержку разработки настольных приложений Windows [20] и значительно повышает производительность всей базовой библиотеки.
В ноябре 2020 года Microsoft выпустила .NET 5.0. [21] Брендинг «Core» был отменен, а версия 4.0 была пропущена, чтобы избежать смешения с .NET Framework, все последние выпуски которого использовали версию 4.x для всех значимых (не исправленных) выпусков с 2010 года.
В нем рассматриваются патентные проблемы, связанные с .NET Framework [ необходима ссылка ] .
В ноябре 2021 года Microsoft выпустила .NET 6.0, [22] в ноябре 2022 года выпустила .NET 7.0, [23] а в ноябре 2023 года выпустила .NET 8.0. [24]
Alpine Linux , который в первую очередь поддерживает и использует musl libc, [31] поддерживается начиная с .NET Core 2.1. [32]
Windows Arm64 изначально поддерживается, начиная с .NET 5. Ранее .NET на ARM означал приложения, скомпилированные для архитектуры x86 и работающие через уровень эмуляции ARM. [30]
.NET полностью поддерживает C# и F# (и C++/CLI с версии 3.1; включено только в Windows) и поддерживает Visual Basic .NET (для версии 15.5 в .NET Core 5.0.100-preview.4 и некоторых старых версий, поддерживаемых в старой версии .NET Core). [33]
VB.NET компилируется и работает на .NET, но с .NET Core 3.1 отдельная Visual Basic Runtime не реализована. Microsoft изначально объявила, что .NET Core 3 будет включать Visual Basic Runtime, но через два года сроки такой поддержки были обновлены до .NET 5. [34] [35]
.NET поддерживает следующие кроссплатформенные сценарии: веб-приложения ASP.NET Core , приложения командной строки/консольные приложения, библиотеки и приложения универсальной платформы Windows . До .NET Core 3.0 он не реализовывал Windows Forms или Windows Presentation Foundation (WPF), которые отображают стандартный графический интерфейс для настольного программного обеспечения в Windows. [36] Однако, начиная с .NET Core 3, он начал реализовывать их вместе с универсальной платформой Windows (UWP). [37] Также возможно писать кроссплатформенные графические приложения с использованием .NET с привязкой языка GTK# для набора виджетов GTK .
.NET поддерживает использование пакетов NuGet . В отличие от .NET Framework , который обслуживается с помощью Центра обновления Windows , .NET раньше полагался на свой менеджер пакетов для получения обновлений. [36] Однако с декабря 2020 года обновления .NET также начали доставляться через Центр обновления Windows. [38]
Двумя основными компонентами .NET являются CoreCLR и CoreFX, которые сопоставимы с Common Language Runtime (CLR) и Framework Class Library (FCL) реализации Common Language Infrastructure (CLI) .NET Framework . [ 39]
Как реализация CLI Virtual Execution System (VES), CoreCLR представляет собой полноценную среду выполнения и виртуальную машину для управляемого выполнения программ CLI и включает в себя компилятор JIT , называемый RyuJIT. [40] [a] .NET Core также содержит CoreRT, среду выполнения .NET Native, оптимизированную для интеграции в скомпилированные AOT собственные двоичные файлы . [42]
Как реализация стандартных библиотек CLI , [43] CoreFX использует подмножество API .NET Framework, однако он также поставляется со своими собственными API, которые не являются частью .NET Framework. [36] Вариант библиотеки .NET используется для UWP . [44]
Интерфейс командной строки .NET предлагает точку входа для выполнения операционных систем и предоставляет разработчикам такие услуги, как компиляция и управление пакетами. [45]
.NET Multi-platform App UI ( .NET MAUI , представленный в .NET 6) — это кроссплатформенная среда для создания собственных мобильных и настольных приложений с использованием C# и расширяемого языка разметки приложений (XAML) [46] , которая также поддерживает Android и iOS .
Официальным талисманом сообщества .NET является .NET Bot (стилизованный как «dotnet bot» или «dotnet-bot»). Dotnet bot служил в качестве разработчика-заполнителя для первоначальной проверки исходного кода .NET, когда он был открыт. [47] С тех пор он используется в качестве официального талисмана.