Microsoft выпустила .NET 11: что меняется для веб- и мобильной разработки

10 ноября 2026 года Microsoft выпустила .NET 11. Это STS-релиз с поддержкой два года. Главные изменения: union types в C# 15, CoreCLR как рантайм по умолчанию в .NET MAUI, асинхронная валидация и OpenAPI 3.2 в ASP.NET Core. Продакшен с длинным циклом разумнее держать на .NET 10 LTS, а новые проекты стоит оценить уже на .NET 11.
Релиз задевает обе части типового продукта на C#: серверную часть, то есть бэкенд и API, и клиент, если команда ведёт разработку мобильных приложений на .NET MAUI. Для мобильной части перемена самая крупная: приложения переезжают на тот же рантайм, что и серверный .NET.
Релиз представили в первый день .NET Conf 2026, конференция идёт с 10 по 13 ноября. Продуктовые сессии команды Microsoft — 10 и 11 ноября, затем два дня докладов сообщества.
Что вошло в .NET 11
- C# 15. Union types, закрытые иерархии классов, аргументы в collection expressions, индексаторы-расширения и метки для
break/continue. Предварительная версия языка для этих возможностей не нужна. - Быстрее SDK. CLI по умолчанию стартует через Native AOT-хост, а сервер MSBuild остаётся «тёплым» между вызовами. Команды вроде справки и запроса версии больше не поднимают управляемый CLI.
- Рантайм. Сотни оптимизаций JIT: меньше лишних проверок границ массивов, лучше девиртуализация, быстрее вызовы через интерфейсы. Runtime Async пока остаётся в превью.
- Библиотеки и EF Core 11. Встроенное сжатие Zstandard, упрощённый запуск процессов, поддержка union types в System.Text.Json. EF Core генерирует меньше лишних JOIN и получил экспериментальный векторный поиск для SQL Server.
- ИИ-стек. Шаблон MCP-сервера теперь входит в SDK (
dotnet new mcpserver), рядом Microsoft.Extensions.AI и Microsoft Agent Framework для агентов.
Что получают веб-команды на ASP.NET Core и Blazor
В ASP.NET Core валидация научилась быть асинхронной: правило может дождаться запроса в базу или внешний сервис и не блокировать поток. Работает это в Minimal APIs и в формах Blazor. Генерация документации по умолчанию переходит на OpenAPI 3.2, причём 3.2 умеет описывать события server-sent events. Если клиентский генератор кода её ещё не понимает, версию документа можно указать явно.
Union types из C# 15 поддерживаются в JSON-телах запросов и ответов. API может честно вернуть «товар или ошибку “не найден”», а OpenAPI опишет оба варианта. SignalR обновляет аутентификацию без переподключения.
В Blazor появился компонент CacheView: он кэширует отрисованное поддерево при статическом серверном рендеринге. Ещё одна новинка — пауза серверного соединения для неактивной вкладки, она освобождает память сервера, но включается только явно.
Отдельный экспериментальный пакет Microsoft.AspNetCore.Components.AI добавляет компоненты для чат-интерфейсов с ИИ-агентами по протоколу AG-UI. В .NET 11 он останется prerelease, и строить на нём продакшен пока рано.
.NET MAUI переходит на CoreCLR: что это значит для мобильных приложений
До сих пор MAUI-приложения на iOS и Android работали на отдельном рантайме Mono. В .NET 11 по умолчанию работает CoreCLR, тот же рантайм, что у серверного .NET. На платформах Apple, где JIT запрещён, используются заранее скомпилированный код и интерпретатор. Native AOT остаётся опцией, а для Android он пока экспериментальный.
- XAML Incremental Hot Reload обновляет живые страницы и контролы без перехода «назад-вперёд». В Debug-сборках он включён по умолчанию.
- Неявные пространства имён XAML убирают повторяющиеся объявления в корне каждого файла.
- Android Shell переходит на архитектуру хендлеров.
- Пакет Microsoft.Maui.Controls.Compatibility больше не поставляется. Приложениям, которые на него ссылаются, придётся с него уйти.
Сама Microsoft называет это значимыми изменениями рантайма и хендлеров и советует отдельно проверить навигацию, кастомные хендлеры и сборку с триммингом. Для команды это значит одно: обновление MAUI-приложения на .NET 11 — отдельная задача с регрессом на реальных устройствах, а не смена цифры в файле проекта.
Обновляться сейчас или ждать: STS против LTS
Короткий ответ: работающий продакшен держите на .NET 10 LTS, а новые проекты и MAUI-приложения стартуйте на .NET 11. .NET 11 поддерживается 24 месяца, .NET 10 LTS — до ноября 2028 года. Качество и политика сервисных обновлений у STS и LTS одинаковые, разница только в сроке. Практическое правило для продуктовой команды такое:
- Продакшен на .NET 10 — оставайтесь на LTS, если нет конкретной причины вроде union types в публичном API или ускорения сборки в CI.
- Продакшен на .NET 8 или 9 — их поддержка закончилась 10 ноября, и переходить нужно в любом случае. Подробнее об этом мы писали в новости про конец поддержки .NET 8 и .NET 9.
- Новый проект или MAUI-приложение — имеет смысл стартовать на .NET 11: переезд на CoreCLR всё равно предстоит, и проще сделать его в начале.
Если вы ещё выбираете стек для клиента, сравните MAUI с альтернативами: в блоге есть разбор, что выбрать — кроссплатформенную или нативную разработку.
Часто задаваемые вопросы
Когда вышел .NET 11 и сколько он поддерживается? Релиз состоялся 10 ноября 2026 года. Это STS-версия, поддержка — два года.
Что такое union types в C# 15? Тип, значение которого — один из заранее объявленных типов. Компилятор проверяет, что switch обработал все варианты.
Нужно ли переписывать MAUI-приложение под CoreCLR? Переписывать не нужно, но нужен регресс: Microsoft советует проверить навигацию, кастомные хендлеры и сборку с триммингом, а от пакета Compatibility отказаться.
Какая среда нужна для разработки? Visual Studio 2026 или VS Code с расширением C# Dev Kit.
Источники
- .NET Blog (Microsoft) — Announcing .NET 11, 10 ноября 2026 (первоисточник).
- Visual Studio Magazine — .NET 11 Ships with C# 15 Unions, Faster Tools and CoreCLR for MAUI, 10 ноября 2026.
- Microsoft Learn — What's new in C# 15.
- The Register — Union types coming to C# in November, 2 сентября 2026.
Мобильное приложение на .NET MAUI?
Переведём приложение на .NET 11 и CoreCLR: уберём зависимость от пакета Compatibility, проверим навигацию и кастомные хендлеры, прогоним регресс на реальных iOS- и Android-устройствах.