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

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+
КроссплатформенностьТолько WindowsWindows, 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 →