NET Core
NET Core — это кроссплатформенная модульная реализация платформы .NET с открытым исходным кодом, разработанная корпорацией Microsoft. NET Core предназначена для создания современных приложений, работающих на операционных системах Windows, Linux и macOS, и поддерживает разработку веб-приложений, микросервисов, консольных утилит, библиотек и облачных решений. В отличие от классической .NET Framework, .NET Core изначально спроектирована для кроссплатформенности, высокой производительности и модульной архитектуры, что позволяет использовать её в средах с ограниченными ресурсами и в контейнерных технологиях (например, Docker).
История
Предпосылки создания
До появления .NET Core основная платформа Microsoft — .NET Framework — была тесно привязана к операционной системе Windows и имела монолитную архитектуру. С развитием облачных вычислений, контейнеризации и ростом популярности Linux среди разработчиков возникла потребность в кроссплатформенной и лёгкой реализации .NET. В 2014 году Microsoft анонсировала проект .NET Core как часть стратегии открытого кода и кроссплатформенной разработки.
Основные версии
- .NET Core 1.0 (2016 год) — первая стабильная версия. Поддерживала Windows, Linux и macOS, но имела ограниченный набор API (в основном для веб-приложений ASP.NET Core и консольных утилит).
- .NET Core 2.0 (2017 год) — значительное расширение API, включение .NET Standard 2.0, что позволило использовать больше библиотек из .NET Framework.
- .NET Core 3.0 (2019 год) — добавлена поддержка Windows Forms, WPF (только для Windows), Entity Framework Core 3.0, а также улучшена производительность.
- .NET Core 3.1 (2019 год) — версия с долгосрочной поддержкой (LTS), рекомендованная для промышленного использования.
- .NET 5 (2020 год) — объединение .NET Core и .NET Framework в единую платформу .NET 5. Название «Core» было исключено, но технически это продолжение .NET Core.
- .NET 6 (2021 год) — LTS-версия, включающая поддержку ARM64, улучшенную работу с macOS и Linux, а также новые возможности для веб-разработки (Blazor, Minimal API).
- .NET 7 (2022 год) — улучшение производительности, поддержка ARM64 для macOS, новые API для работы с JSON и контейнерами.
- .NET 8 (2023 год) — LTS-версия, фокус на облачных приложениях, искусственном интеллекте и производительности.
Архитектура и ключевые особенности
Кроссплатформенность
.NET Core работает на Windows, Linux и macOS. Это достигается за счёт использования общей среды выполнения (CoreCLR) и базовых библиотек (CoreFX), которые адаптированы под разные операционные системы. Приложения, написанные на .NET Core, могут быть развёрнуты на серверах под управлением Linux (например, Ubuntu, CentOS, Debian) или Windows, а также на устройствах macOS.
Модульность
Платформа поставляется в виде набора NuGet-пакетов. Разработчик может включать только необходимые компоненты, что уменьшает размер приложения и время его загрузки. Например, для консольного приложения можно установить только базовые библиотеки, а для веб-приложения — добавить пакеты ASP.NET Core.
Производительность
.NET Core демонстрирует высокую производительность благодаря оптимизированному сборщику мусора, JIT-компилятору RyuJIT и поддержке Ahead-of-Time (AOT) компиляции (начиная с .NET 7). В тестах производительности (например, TechEmpower) .NET Core часто занимает лидирующие позиции среди веб-фреймворков.
Открытый исходный код
Исходный код .NET Core распространяется под лицензией MIT и доступен на GitHub. Это позволяет сообществу вносить изменения, исправлять ошибки и адаптировать платформу под свои нужды. Разработка ведётся публично, с участием как сотрудников Microsoft, так и сторонних разработчиков.
Поддержка контейнеров
.NET Core оптимизирована для работы в контейнерах Docker. Microsoft предоставляет официальные образы для разных версий .NET Core, которые можно использовать в средах Kubernetes и других оркестраторах.
Компоненты .NET Core
Среда выполнения (Runtime)
- CoreCLR — кроссплатформенная среда выполнения, включающая JIT-компилятор, сборщик мусора и управление потоками.
- CoreRT (экспериментальный, позже заменён на NativeAOT) — среда для AOT-компиляции, позволяющая создавать нативные исполняемые файлы без JIT.
Базовые библиотеки (Base Class Library, BCL)
Набор библиотек, реализующих основные функции: работа с файлами, сетью, коллекциями, потоками, сериализацией, криптографией и т.д. BCL реализована в проекте CoreFX.
Инструменты разработки
- .NET CLI — интерфейс командной строки для создания, сборки, тестирования и публикации проектов.
- Visual Studio и Visual Studio Code — интегрированные среды разработки с поддержкой .NET Core.
- NuGet — менеджер пакетов для управления зависимостями.
Применение
Веб-приложения и API
Основная область применения — разработка веб-приложений с использованием ASP.NET Core. Фреймворк поддерживает создание RESTful API, MVC-приложений, SignalR (реальное время) и Blazor (веб-интерфейсы на C#).
Микросервисы
.NET Core хорошо подходит для построения микросервисной архитектуры благодаря лёгкости, модульности и поддержке контейнеризации. Часто используется в сочетании с Docker, Kubernetes и облачными платформами (Azure, AWS, Google Cloud).
Консольные и фоновые приложения
Платформа позволяет создавать консольные утилиты, фоновые службы (Windows Service, systemd) и приложения для обработки данных.
Облачные решения
.NET Core является основной платформой для разработки приложений на Microsoft Azure, но также поддерживается на других облачных платформах.
Игры и графика
Хотя .NET Core не предназначена для высокопроизводительной графики, она используется в игровых движках (например, Unity) для написания скриптов и логики.
Сравнение с .NET Framework
| Характеристика | .NET Framework | .NET Core / .NET 5+ |
|---|---|---|
| Кроссплатформенность | Только Windows | Windows, Linux, macOS |
| Открытый код | Частично (с 2014 года) | Полностью (MIT) |
| Модульность | Монолитная | Модульная (NuGet) |
| Производительность | Средняя | Высокая |
| Поддержка контейнеров | Ограниченная | Полная |
| Размер приложения | Большой | Маленький (возможна AOT-компиляция) |
| Версии API | .NET Framework 4.8 (последняя) | .NET 8 (LTS) |
Интересные факты
- .NET Core была первой реализацией .NET, которая работала на Linux и macOS. До этого существовал проект Mono (сторонняя реализация).
- Название «Core» было исключено начиная с версии .NET 5, чтобы подчеркнуть объединение платформ.
- .NET Core поддерживает работу на процессорах ARM (включая Raspberry Pi и Apple Silicon).
- Microsoft использует .NET Core внутри себя для многих сервисов, включая Bing, Azure и Visual Studio Codespaces.
Критика и ограничения
- Неполная совместимость с .NET Framework — некоторые старые библиотеки и технологии (например, Windows Communication Foundation — WCF на серверной стороне) не поддерживаются.
- Сложность миграции — перенос крупных проектов с .NET Framework на .NET Core может потребовать значительных усилий из-за различий в API.
- Отсутствие некоторых Windows-специфичных функций — например, DirectX, Windows Forms (до .NET Core 3.0) и WPF (до .NET Core 3.0) были доступны только на Windows.
- Зависимость от Microsoft — хотя платформа открыта, её развитие в значительной степени контролируется Microsoft.
Источники
- Документация Microsoft по .NET Core (learn.microsoft.com)
- Исходный код .NET Core на GitHub (github.com/dotnet/core)
- Книга «.NET Core in Action» (Dustin Metzgar, 2018)
- Статья «A History of .NET Core» (Microsoft Developer Blog, 2020)
- Технические спецификации .NET Standard (dotnet.microsoft.com)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →