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

.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 →