ASP.NET — фреймворк для веб-разработки на платформе Microsoft .NET. Существует в двух версиях: ASP.NET Framework (2002-н.в., только Windows) и ASP.NET Core (2016-н.в., кроссплатформенный, open-source). ASP.NET Core — рекомендованная платформа для новых проектов. Работает на .NET 8 (2023) — актуальная LTS-версия.
Компоненты ASP.NET Core
- ASP.NET Core MVC — Model-View-Controller для веб-приложений с HTML. Работает с PostgreSQL через Npgsql/EF Core и MySQL через Pomelo.
- ASP.NET Core Web API — REST API на C#. Поддерживает Swagger/OpenAPI автогенерацию.
- Minimal API (с .NET 6, 2021) — лёгкий синтаксис для небольших API без MVC-накладных расходов.
- Blazor — C# в браузере через WebAssembly или SignalR-рендеринг.
- SignalR — реализация WebSockets и long polling для real-time коммуникации.
- gRPC — поддержка gRPC-сервисов через Protocol Buffers.
Веб-сервер: Kestrel — кроссплатформенный HTTP-сервер, встроенный в ASP.NET Core. В production размещается за nginx или IIS как обратным прокси. Kestrel поддерживает HTTP/2, HTTP/3 (QUIC), gRPC.
История
ASP (Active Server Pages) появился в 1996 году как часть IIS. ASP.NET Framework 1.0 выпущен в 2002 году с .NET Framework 1.0. ASP.NET MVC (2009) принёс MVC-паттерн. ASP.NET Core 1.0 (2016) — полная переработка: модульная архитектура, кроссплатформенность, внедрение зависимостей (DI) как первоклассный гражданин. .NET 5 (2020) объединил .NET Core и .NET Framework под единым брендом «.NET». .NET 8 LTS (2023) — актуальная версия с улучшенным Native AOT.
ASP.NET Core в хостинге
На Linux ASP.NET Core работает нативно — VPS с Ubuntu/Debian + nginx + systemd. Для деплоя: .NET SDK не нужен на production-сервере — только runtime. Публикация через dotnet publish -c Release. В Docker: официальные образы mcr.microsoft.com/dotnet/aspnet. Managed PaaS: Azure App Service, AWS Elastic Beanstalk, Fly.io.
ASP.NET: миграция на .NET 6/7/8
.NET Framework (Windows-only) заменяется .NET 6/7/8 (кроссплатформенный). Миграция ASP.NET WebForms/MVC 5 на ASP.NET Core — не автоматическая: архитектурные различия требуют переработки. Microsoft Upgrade Assistant — инструмент для помощи в миграции. Для .NET Framework Web API → .NET Core Web API миграция проще: классы контроллеров практически идентичны.
Хостинг ASP.NET Core на Linux VPS: dotnet publish -c Release создаёт готовую к деплою папку. systemd service для автозапуска. nginx как reverse proxy перед Kestrel. Dockerfile для контейнеризации: mcr.microsoft.com/dotnet/aspnet:8.0 как base image. .NET 8 — LTS до 2026 года, поддерживается на RHEL, Debian, Ubuntu, Alpine. Производительность: ASP.NET Core в бенчмарках TechEmpower входит в топ-5 самых быстрых веб-фреймворков.
На что обращать внимание
ASP.NET Core значительно производительнее ASP.NET Framework и Python/Django по данным TechEmpower Benchmarks (топ-5 по throughput). Для Windows-хостинга с IIS: установите ASP.NET Core Hosting Bundle (включает Kestrel + IIS Module). При миграции с .NET Framework на .NET Core используйте .NET Upgrade Assistant. Blazor WebAssembly — для клиентской логики на C# без JavaScript, но требует загрузки 1-5 МБ WASM-рантайма.
Производительность и сравнение
TechEmpower Framework Benchmarks показывают ASP.NET Core в топ-5 по throughput среди всех веб-фреймворков — выше Python/Django, Ruby/Rails, PHP/Laravel. .NET 8 с AOT-компиляцией (Ahead-of-Time) приближается к производительности C++. Для HTTPS-сертификатов на ASP.NET Core используйте Let's Encrypt через Certbot или встроенный ACME-клиент Kestrel. Один VPS с 2 ГБ ОЗУ обрабатывает 50 000-100 000 запросов в секунду для простых API на ASP.NET Core.