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 Framework 2.0 (2005): добавлены обобщенные типы (generics), частичные классы и улучшенная поддержка веб-сервисов.
- .NET Framework 3.0 (2006): включены Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), Windows Workflow Foundation (WF) и Windows CardSpace.
- .NET Framework 3.5 (2007): добавлена поддержка LINQ (Language Integrated Query), ASP.NET AJAX и Entity Framework.
- .NET Framework 4.0 (2010): введена динамическая диспетчеризация, параллельные вычисления (Task Parallel Library, PLINQ) и улучшенная совместимость с COM.
- .NET Framework 4.5 и выше (2012–2019): оптимизация производительности, поддержка асинхронного программирования (async/await), улучшенная работа с HTTP/2 и контейнерами.
Появление .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 — это виртуальная машина, отвечающая за выполнение управляемого кода. Она обеспечивает:
- Загрузку и верификацию сборок (проверка типов, безопасности).
- JIT-компиляцию (Just-In-Time) — преобразование промежуточного языка (CIL) в машинный код во время выполнения.
- Управление памятью (сборщик мусора, Garbage Collector, GC).
- Обработку исключений и межъязыковую интеграцию.
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 5 | 10.11.2020 | STS (завершена) | Да |
| .NET 6 | 08.11.2021 | LTS (завершена) | Да |
| .NET 7 | 08.11.2022 | STS (завершена) | Да |
| .NET 8 | 14.11.2023 | LTS (активна) | Да |
| .NET 9 | 12.11.2024 | STS (активна) | Да |
Языки программирования
Основными языками для платформы .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 →