Ответ
.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.