.NET — платформа Microsoft¶
.NET (читается «дотнет») — это бесплатная, кроссплатформенная платформа с открытым исходным кодом для разработки приложений, созданная корпорацией Microsoft. Она объединяет набор инструментов, библиотек и среду выполнения (runtime), позволяющих создавать веб-приложения, облачные сервисы, десктопные программы, игры, мобильные приложения и микросервисы на языках C#, F# и Visual Basic .NET. Платформа поддерживает операционные системы Windows, Linux и macOS.
¶История
Первая версия .NET Framework была выпущена Microsoft в 2002 году и изначально была доступна только для Windows. Платформа включала среду выполнения CLR (Common Language Runtime) и обширную классическую библиотеку классов (Base Class Library). В течение 2000-х годов .NET Framework развивался, достигнув версии 4.8.
В 2016 году Microsoft представила новое поколение платформы — .NET Core, которое стало кроссплатформенным и с открытым исходным кодом (лицензия MIT). В 2020 году вышел .NET 5, объединивший .NET Core и .NET Framework в единую платформу. С этого момента название «.NET» без суффикса «Core» используется для обозначения современной платформы. Релизы выходят раз в год, а каждая LTS-версия (с длительной поддержкой) поддерживается три года.
¶Архитектура
Платформа состоит из нескольких ключевых компонентов:
- CLR (Common Language Runtime) — среда выполнения, управляющая памятью, потоками, безопасностью и компиляцией IL-кода (Intermediate Language) в машинный код.
- Библиотека классов (BCL) — набор базовых API для работы с файлами, сетью, коллекциями, многопоточностью и др.
- ASP.NET — фреймворк для построения веб-приложений и API.
- Entity Framework — ORM для доступа к базам данных.
- CLI (Common Language Infrastructure) — стандарт, описывающий среду выполнения, что позволяет использовать на платформе различные языки программирования.
Код на C#, F# или VB.NET компилируется в промежуточный IL-код, который выполняется в CLR. При запуске JIT-компилятор преобразует IL в машинный код конкретной платформы.
¶Основные технологии и фреймворки
| Технология | Назначение |
|---|---|
| ASP.NET Core | Веб-приложения, Web API, Blazor |
| MAUI | Кроссплатформенные десктопные и мобильные приложения |
| Entity Framework Core | ORM для работы с БД |
| WPF / WinForms | Нативные Windows-приложения |
| .NET MAUI | Единый код для Android, iOS, macOS, Windows |
| gRPC, SignalR | Микросервисы и реальное время |
| ML.NET | Машинное обучение |
¶Языки
Основной язык платформы — C#, один из самых используемых языков в мире по данным Stack Overflow и TIOBE. Также поддерживаются F# (функциональное программирование) и Visual Basic .NET. Благодаря системе CLI возможна интеграция кода на разных языках в одном проекте.
¶Применение
.NET применяется в широком спектре задач:
- Веб-разработка — ASP.NET Core является одним из самых производительных фреймворков по бенчмаркам TechEmpower.
- Облачные сервисы — платформа тесно интегрирована с Microsoft Azure, но работает и в AWS, Google Cloud, Яндекс Облаке.
- Игры — движок Unity использует C# как основной язык скриптов.
- Десктопные приложения — WPF, WinForms, MAUI.
- Микросервисы и контейнеризация — поддержка Docker, Kubernetes.
- Машинное обучение — библиотека ML.NET.
¶.NET в России
В российской разработке .NET традиционно занимает заметное место, особенно в корпоративном сегменте и финансовой сфере. Ряд крупных российских компаний, включая банки и телекоммуникационные операторы, использует платформу для построения высоконагруженных систем. Одновременно в рамках курса на импортозамещение часть организаций мигрирует с .NET на альтернативные стеки, хотя поддержка кроссплатформенных версий на Linux снижает зависимость от Microsoft.
¶Открытый исходный код
Начиная с .NET Core, вся платформа развивается как open source-проект на GitHub. Исходный код доступен под лицензией MIT. Ежегодно платформу поддерживают тысячи внешних контрибьюторов, включая разработчиков из России и других стран.
¶Сравнение с альтернативами
| Платформа | Язык | Кроссплатформенность |
|---|---|---|
| .NET | C#, F#, VB.NET | Windows, Linux, macOS, Android, iOS |
| Java (JVM) | Java, Kotlin | Windows, Linux, macOS, Android |
| Node.js | JavaScript, TypeScript | Windows, Linux, macOS |
| Go | Go | Windows, Linux, macOS |
По производительности современные версии .NET конкурируют с Java и Go, часто превосходя их в отдельных бенчмарках, особенно в асинхронных сценариях и работе с памятью.
Источники:
- Официальная документация Microsoft Learn — раздел .NET (learn.microsoft.com/ru-ru/dotnet)
- Релизные заметки .NET (dotnet.microsoft.com)
- Сайт проекта с открытым исходным кодом (github.com/dotnet/runtime)
- Stack Overflow Developer Survey — ежегодные статистические данные по использованию языков и платформ
