.NET: платформа разработки от Microsoft¶
.NET (произносится «дот-нет») — это совокупность технологий и программных компонентов для разработки и выполнения приложений, создаваемая корпорацией Microsoft. Платформа включает в себя среду выполнения (Common Language Runtime, CLR), библиотеку базовых классов (Base Class Library, BCL) и набор инструментов для разработчиков. Ключевой особенностью .NET является поддержка множества языков программирования, которые компилируются в промежуточный код (CIL), исполняемый средой CLR.
¶История
Разработка платформы началась в конце 1990-х годов как часть стратегии Microsoft по созданию конкурента технологиям Java от Sun Microsystems. Первоначальное кодовое название проекта — Next Generation Windows Services (NGWS). Официально платформа была анонсирована в 2000 году, а первая версия .NET Framework 1.0 вышла в 2002 году вместе с операционной системой Windows XP и средой разработки Visual Studio .NET.
На протяжении 2000-х годов выходили последовательные версии .NET Framework (1.1, 2.0, 3.0, 3.5, 4.x), каждая из которых добавляла новые библиотеки и возможности. Версия 3.0 привнесла Windows Communication Foundation (WCF) для построения сервисов и Windows Presentation Foundation (WPF) для создания графических интерфейсов.
Переломным моментом стал 2014 год, когда Microsoft объявила о кроссплатформенности и открытии исходного кода. Это привело к появлению .NET Core — полностью переписанной, модульной и кроссплатформенной версии платформы, работающей на Windows, Linux и macOS. В 2020 году Microsoft объединила .NET Core и классический .NET Framework в единую платформу .NET 5, отказавшись от приставки «Core». С тех пор выходит ежегодный релиз: .NET 6 (2021), .NET 7 (2022), .NET 8 (2023, LTS-версия с долгосрочной поддержкой) и .NET 9 (2024).
¶Архитектура и устройство
¶Среда выполнения (CLR)
Common Language Runtime — это виртуальная машина, которая управляет выполнением .NET-приложений. Она отвечает за загрузку сборок, JIT-компиляцию (Just-In-Time) промежуточного кода в машинный, управление памятью через сборщик мусора (Garbage Collector), обработку исключений и обеспечение безопасности типов. Любой код, написанный на поддерживаемом языке, компилируется в единый промежуточный язык CIL, что обеспечивает языковую интероперабельность.
¶Библиотека базовых классов (BCL)
BCL предоставляет разработчикам огромный набор готовых типов и API: работа с коллекциями, файловым вводом-выводом, сетью, XML и JSON, криптографией, рефлексией, многопоточностью и асинхронностью. Поверх BCL построены более специализированные фреймворки: ASP.NET Core для веб-приложений, Entity Framework Core для работы с базами данных, Windows Forms и WPF для десктопных приложений Windows, MAUI для кроссплатформенных мобильных и десктопных приложений.
¶Языки программирования
Основным языком экосистемы .NET является C#, разработанный специально для этой платформы под руководством Андерса Хейлсберга. Также широко используются F# (функциональный язык) и Visual Basic .NET. Платформа поддерживает и другие языки через механизм компиляторов: например, C++/CLI для интеграции с нативным кодом. С 2016 года компилятор Roslyn (для C# и VB.NET) является открытым и предоставляет API для создания собственных инструментов анализа кода.
¶Ключевые технологии и компоненты
¶ASP.NET Core
ASP.NET Core — кроссплатформенный фреймворк для создания веб-приложений, API и микросервисов. Он включает в себя MVC-паттерн, Razor Pages, минимальные API, поддержку WebSocket и SignalR для реального времени. ASP.NET Core отличается высокой производительностью и модульностью: разработчик подключает только необходимые компоненты через NuGet-пакеты.
¶Entity Framework Core
Entity Framework Core — объектно-реляционный маппер (ORM), позволяющий работать с базами данных через объекты .NET без написания SQL-запросов. Поддерживает большинство популярных СУБД: SQL Server, PostgreSQL, MySQL, SQLite, Oracle. Включает механизм миграций для синхронизации схемы базы данных с моделью данных приложения.
¶XAML-технологии
Для разработки пользовательских интерфейсов в .NET используются языки разметки XAML. На его основе построены WPF (десктопные приложения Windows), UWP (универсальные приложения Windows) и MAUI (кроссплатформенная разработка для Android, iOS, Windows и macOS). XAML позволяет декларативно описывать интерфейс, отделяя его от логики приложения.
¶NuGet
NuGet — менеджер пакетов для .NET, централизованное хранилище библиотек и инструментов. Пакеты NuGet содержат скомпилированные сборки, метаданные и зависимости. Это основной способ распространения сторонних библиотек и совместного использования кода внутри организаций.
¶Применение
Платформа .NET широко используется в корпоративной разработке для создания бизнес-приложений, банковских систем, CRM и ERP-решений. ASP.NET Core применяется для построения высоконагруженных веб-сервисов. С появлением кроссплатформенности .NET стал популярен в разработке микросервисов, разворачиваемых в контейнерах Docker и оркестраторах Kubernetes. Также платформа поддерживает разработку игр через игровой движок Unity, который использует C# как основной язык скриптов. В области интернета вещей (IoT) .NET может запускаться на устройствах с ограниченными ресурсами через специализированную редакцию .NET Nano Framework.
¶Открытый исходный код и сообщество
С 2014 года платформа развивается как открытый проект. Исходный код .NET (включая CLR, BCL и компиляторы) размещён на GitHub под лицензией MIT. Разработка ведётся при активном участии сообщества: сторонние разработчики могут вносить изменения, сообщать об ошибках и предлагать улучшения через механизм GitHub Issues. Ежегодные конференции (например, .NET Conf) и многочисленные локальные сообщества способствуют распространению технологий. Microsoft выпускает версии с долгосрочной поддержкой (LTS) раз в два года, обеспечивая обновления безопасности в течение трёх лет.
¶Критика и ограничения
В первые годы существования .NET критиковали за закрытость и привязку к Windows, а также за относительно низкую производительность по сравнению с нативным кодом. После перехода на открытую кроссплатформенную модель часть претензий была снята, однако остаются определённые замечания: высокая сложность экосистемы и частое появление новых версий создают нагрузку на поддержку легаси-кода. Классический .NET Framework (4.8) остаётся последней версией для Windows-only приложений и получает только исправления безопасности.
¶Источники
- Официальная документация Microsoft Learn по .NET
- Книга «C# в подробностях», Джон Скит
- Книга «CLR via C#», Джеффри Рихтер
- Репозиторий dotnet/core на GitHub
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →
