В чём разница между .NET Core и .NET Framework

«В чём разница между .NET Core и .NET Framework» — вопрос из категории C# Core, который задают на 25% собеседований C# Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

.NET Core — это кроссплатформенная, открытая реализация .NET, работающая на Windows, Linux и macOS. Оптимизирована для облачных и микросервисных решений, поддерживает side-by-side установку версий.

.NET Framework — только для Windows, закрытый исходный код, тесно интегрирован с ОС (например, WPF, ASP.NET Web Forms).

Ключевые отличия:

Критерий .NET Core / .NET 5+ .NET Framework
Платформа Кроссплатформенный (Windows, Linux, macOS) Только Windows
Развертывание Автономное или зависимое от окружения Глобальная установка в систему
Производительность Выше, оптимизирован для контейнеров и микросервисов Ниже, более монолитный
Поддержка Активно развивается (.NET 6, 7, 8) В режиме обслуживания
Архитектура Модульный, включается только необходимое Монолитный пакет

Пример конфигурации хоста в .NET Core (современный .NET):

using Microsoft.Extensions.Hosting;

var host = Host.CreateDefaultBuilder(args)
    .ConfigureServices(services => services.AddHostedService<BackgroundWorker>())
    .Build();

await host.RunAsync();

Совет: Для всех новых проектов выбирайте современный .NET (.NET 6/7/8), который является преемником .NET Core.