.NET — открытый кроссплатформенный фреймворк Microsoft для разработки веб-приложений, API, микросервисов, консольных программ и настольных приложений. До версии 5.0 (2020) назывался .NET Core. Работает на Windows, Linux и macOS.
ASP.NET Core
ASP.NET Core — веб-фреймворк на базе .NET. Поддерживает несколько парадигм разработки:
- Minimal API (.NET 6+) — минималистичные HTTP-эндпоинты без контроллеров.
- MVC / Razor Pages — традиционная архитектура Model-View-Controller.
- gRPC-сервисы — бинарный протокол на базе HTTP/2 для межсервисного взаимодействия.
- Blazor — компонентный фреймворк: Server (рендер на сервере) или WebAssembly (в браузере).
- SignalR — WebSocket и долгие HTTP-опросы для реалtime-приложений.
ASP.NET Core стабильно входит в топ-5 TechEmpower Framework Benchmarks по plaintext-запросам — выше Node.js Express и Django.
Версии .NET и LTS
| Версия | Год | Тип | EOL |
|---|---|---|---|
| .NET Core 3.1 | 2019 | LTS | Дек 2022 |
| .NET 6 | 2021 | LTS | Ноя 2024 |
| .NET 8 | 2023 | LTS | Ноя 2026 |
| .NET 9 | 2024 | STS | Май 2026 |
История
.NET Framework выпущен Microsoft в 2002 году и работал только на Windows. .NET Core 1.0 — июнь 2016 года, открытый код на GitHub. .NET 5 (ноябрь 2020) объединил .NET Core и Mono в единую платформу. С .NET 5 версионирование: нечётные номера — STS (18 месяцев поддержки), чётные — LTS (3 года).
.NET в хостинге
На Linux ASP.NET Core использует встроенный HTTP-сервер Kestrel, перед которым ставят Nginx как reverse proxy для SSL-терминации и отдачи статики:
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
}
Docker-образы публикует Microsoft: mcr.microsoft.com/dotnet/aspnet:8.0 — runtime (~200 МБ), mcr.microsoft.com/dotnet/sdk:8.0 — для сборки (~800 МБ). Multi-stage build: сборка в SDK-образе, копирование результата в runtime-образ.
На что обращать внимание
Деплой systemd-сервиса на VPS: dotnet publish -c Release создаёт публикуемые файлы, systemd управляет жизненным циклом процесса — аналог PM2 для Node.js. Для Windows-специфичной функциональности (.NET Framework API) .NET Core не подходит — нужен .NET Framework или Windows-специфичный .NET. CI/CD pipeline: dotnet test → dotnet publish → деплой.
Производительность и сравнение
ASP.NET Core последовательно входит в первую пятёрку TechEmpower Framework Benchmarks (plaintext, JSON serialization). В тестах 2023 года .NET 8 показывает 7 млн запросов/сек на стандартном железе — выше Node.js Express (~900 000 req/sec) и Django (~100 000 req/sec).
Контейнеризация .NET 8: образ mcr.microsoft.com/dotnet/aspnet:8.0-alpine — ~120 МБ (самый компактный из official). Multi-stage Docker-сборка уменьшает production-образ: только runtime, без SDK. Переменные окружения для конфигурации: ASPNETCORE_ENVIRONMENT=Production, ConnectionStrings__DefaultConnection. Health checks через /health endpoint — для Kubernetes readiness и liveness probes.