Открыть сервис

Microsoft .NET

Microsoft .NET — это программная платформа (фреймворк) для разработки, развертывания и выполнения приложений, созданная корпорацией Microsoft. Платформа предоставляет единую среду исполнения (Common Language Runtime, CLR) и обширную библиотеку классов (Framework Class Library, FCL), поддерживающую множество языков программирования, включая C#, F#, Visual Basic .NET и C++/CLI. .NET позволяет создавать приложения для различных операционных систем (Windows, Linux, macOS), мобильных устройств, веб-серверов, игровых консолей и встраиваемых систем.

История

Предпосылки и создание

Разработка платформы началась в конце 1990-х годов под кодовым названием Next Generation Windows Services (NGWS). Ключевой целью было создание унифицированной среды, которая бы упростила разработку распределенных веб-приложений и интеграцию с COM-компонентами. Первая публичная версия .NET Framework 1.0 была выпущена 13 февраля 2002 года. Она включала в себя среду выполнения CLR, библиотеку классов, а также языки C# и Visual Basic .NET.

Эволюция .NET Framework

С 2002 по 2019 год .NET Framework развивался как проприетарная платформа для Windows. Основные вехи:

Появление .NET Core и переход к открытой модели

В 2014 году Microsoft объявила о создании кроссплатформенной версии платформы под названием .NET Core. Этот шаг был связан с необходимостью поддержки Linux и macOS, а также с желанием сделать платформу модульной и открытой. Первый стабильный релиз .NET Core 1.0 состоялся 27 июня 2016 года. Ключевые особенности: открытый исходный код (лицензия MIT), модульная архитектура через NuGet-пакеты, поддержка контейнеризации (Docker) и высокая производительность.

Унификация в .NET 5 и далее

В ноябре 2020 года Microsoft выпустила .NET 5, объединив .NET Core и .NET Framework в единую платформу. С этого момента все новые версии (6, 7, 8, 9) носят общее название .NET (без суффиксов Core или Framework). Платформа стала полностью кроссплатформенной, поддерживает долгосрочные (LTS) и краткосрочные (STS) релизы. .NET Framework 4.8 (выпущен в 2019 году) остался последней версией классической платформы, которая поддерживается только в составе Windows.

Архитектура

Common Language Runtime (CLR)

CLR — это виртуальная машина, отвечающая за выполнение управляемого кода. Она обеспечивает:

Framework Class Library (FCL)

FCL — это обширная библиотека классов, содержащая типы для работы с:

  • Файловой системой и вводом/выводом (System.IO).
  • Сетью (System.Net).
  • Базами данных (ADO.NET, Entity Framework).
  • Веб-приложениями (ASP.NET Core).
  • Графическим интерфейсом (Windows Forms, WPF, MAUI).
  • XML и JSON (System.Xml, System.Text.Json).
  • Безопасностью (System.Security).
  • Многопоточностью (System.Threading).

Common Type System (CTS) и Common Language Specification (CLS)

CTS определяет, как типы данных объявляются, используются и управляются в среде выполнения. CLS — это подмножество правил, которые должны соблюдать все языки, совместимые с .NET, чтобы обеспечить их взаимодействие.

Сборки (Assemblies)

Исходный код компилируется в сборки — файлы с расширением .exe (исполняемые) или .dll (библиотеки). Каждая сборка содержит метаданные (манифест) и код на промежуточном языке (CIL). Сборки могут быть частными (для одного приложения) или общими (Global Assembly Cache, GAC).

Версии и поддержка

ВерсияДата выходаТип поддержкиКроссплатформенность
.NET 510.11.2020STS (завершена)Да
.NET 608.11.2021LTS (завершена)Да
.NET 708.11.2022STS (завершена)Да
.NET 814.11.2023LTS (активна)Да
.NET 912.11.2024STS (активна)Да

Языки программирования

Основными языками для платформы .NET являются:

  • C# — наиболее популярный, объектно-ориентированный язык с поддержкой функционального программирования.
  • F# — функциональный язык с элементами ООП.
  • Visual Basic .NET — язык с синтаксисом, близким к классическому Visual Basic.
  • C++/CLI — расширение C++ для работы с управляемым кодом.

Также существуют сторонние реализации, позволяющие использовать на .NET языки Python (IronPython), Ruby (IronRuby) и другие.

Применение

Веб-разработка

Платформа ASP.NET Core (в составе .NET) используется для создания веб-приложений, REST API и микросервисов. Она поддерживает модели MVC (Model-View-Controller), Razor Pages, Blazor (для клиентской части на WebAssembly) и gRPC.

Десктопные приложения

Для Windows-приложений используются Windows Forms (WinForms) и Windows Presentation Foundation (WPF). Для кроссплатформенных приложений — .NET MAUI (Multi-platform App UI), позволяющий создавать интерфейсы для Windows, macOS, Android и iOS.

Мобильные приложения

.NET MAUI и Xamarin (предшественник MAUI) позволяют разрабатывать нативные мобильные приложения на C#.

Игровая индустрия

Платформа используется для создания игр через игровые движки, такие как Unity (основной язык — C#) и Godot (поддержка C#).

Облачные и серверные решения

.NET широко применяется в облачных средах Microsoft Azure, а также для разработки высоконагруженных серверных систем, контейнеризированных приложений (Docker, Kubernetes) и бессерверных функций (Azure Functions).

Промышленность и IoT

Благодаря поддержке ARM-архитектуры и малому потреблению ресурсов, .NET используется в системах Интернета вещей (IoT) на платформах Raspberry Pi и других одноплатных компьютерах.

Открытый исходный код и сообщество

С 2014 года исходный код платформы .NET (включая CLR, библиотеки классов и компиляторы) доступен на GitHub под лицензией MIT. Разработка ведется открыто, с участием сообщества. Крупнейшие проекты сообщества: .NET Foundation, NuGet Gallery (менеджер пакетов), Roslyn (компилятор C# и VB.NET), ASP.NET Core, Entity Framework Core.

Критика

Основные претензии к платформе в разные годы:

  • Привязка к Windows (до появления .NET Core).
  • Закрытый исходный код (до 2014 года).
  • Высокое потребление памяти по сравнению с нативными приложениями.
  • Сложность миграции с .NET Framework на .NET Core/.NET 5+.
  • Фрагментация версий в период сосуществования .NET Framework и .NET Core.

См. также

  • Common Language Runtime
  • C#
  • ASP.NET Core
  • Mono (платформа)
  • .NET MAUI

Источники

  • Официальная документация Microsoft .NET (learn.microsoft.com/dotnet)
  • «.NET Book Zero» (Charles Petzold)
  • «CLR via C#» (Jeffrey Richter)
  • «Pro .NET 5» (Andrew Troelsen, Philip Japikse)
  • Статья «A History of .NET» (Microsoft Developer Blogs)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →