Старый ЭЛТ-монитор с кодом, ноутбук и смартфон, соединённые световой линией

.NET Conf 2026: .NET 11 переводит MAUI на CoreCLR. Как командам на VB.NET получить мобильный клиент

РубрикаМиграцияУровеньСредний Чтение5 минОпубликовано Теги.NET 11.NET MAUIVB.NETНовости

3 ноября Microsoft опубликовала программу .NET Conf 2026: конференция пройдёт онлайн с 10 по 13 ноября, а в первый день выйдет .NET 11. Для мобильной разработки главное изменение релиза уже известно: .NET MAUI на Android и iOS окончательно переходит со среды Mono на CoreCLR. Командам, у которых бизнес-логика написана на VB.NET, стоит понять, что из этого можно использовать.

Главное. MAUI в .NET 11 работает на CoreCLR, Mono для мобильных платформ больше не предлагается. Писать интерфейс MAUI на Visual Basic по-прежнему нельзя, но библиотеку с бизнес-логикой на VB.NET можно подключить к мобильному проекту на C# или вынести за API.

Вопрос «как дать сотрудникам или клиентам мобильный доступ к нашей системе на VB.NET» возникает постоянно. .NET 11 его не закрывает, но делает один из путей проще. Если своих мобильных разработчиков нет, обычно выбирают между MAUI с переносом интерфейса на C# и разработкой Android-приложения поверх API к существующей системе. Ниже — что объявлено и как выбрать.

Что объявила Microsoft

По анонсу в блоге .NET, 10 и 11 ноября — дни продуктовых команд Microsoft с запуском .NET 11, 12 и 13 ноября — доклады сообщества. Открывающий доклад 10 ноября в 8:00 по тихоокеанскому времени (19:00 по Москве) проведёт Скотт Хансельман: он расскажет о .NET 11 и о том, как Copilot и агенты встраиваются в разработку на .NET. В программе есть отдельные сессии по .NET MAUI, WinForms, ASP.NET Core и Blazor, C# и среде выполнения. Расписание и даты подтверждает Thurrott.

Переход MAUI на CoreCLR Microsoft описала в статье «.NET MAUI Moves to CoreCLR in .NET 11». CoreCLR стал средой по умолчанию для Android, iOS и Mac Catalyst в Preview 4, а с Preview 6 остался единственной. На iOS и Mac Catalyst приложения в целом работают быстрее, чем на Mono, на Android время запуска и размер пакета остаются в пределах 10 % от прежних. Blazor WebAssembly это не затрагивает: там по-прежнему Mono.

Почему VB.NET в MAUI не попадёт

Ответ записан в стратегии языка Visual Basic: язык развивается в режиме стабильного дизайна, а поддержку новых сценариев, «таких как веб-интерфейсы или кроссплатформенные UI-фреймворки», добавлять не планируют. Основные сценарии VB — WinForms и библиотеки. Поэтому экраны мобильного клиента придётся писать на C# с XAML или нативно, на Kotlin и Swift.

Зато библиотеки классов на VB.NET под современным .NET работают в любом процессе CoreCLR. Если в сборке с расчётами нет ссылок на WinForms, реестр и COM, её можно подключить к MAUI-проекту на C# как обычную зависимость. С переходом на CoreCLR такая схема стала понятнее: мобильное приложение исполняет код той же средой, что сервер и десктоп. Как отделить логику от форм, мы разбирали в статье о переносе десктопного приложения на VB в мобильное.

Calc.vbprojXML
<!-- Библиотека с бизнес-логикой на VB.NET для подключения к MAUI-проекту -->
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <!-- без -windows: никаких WinForms, реестра и COM -->
    <TargetFramework>net10.0</TargetFramework>
    <RootNamespace>Company.Calc</RootNamespace>
  </PropertyGroup>
</Project>
Библиотека под net10.0 подключается к проекту на .NET 11: более новый проект может ссылаться на сборку под более раннюю версию. Обратное не работает, поэтому общую логику держите на версии с долгим сроком поддержки.

Три пути к мобильному клиенту

MAUI с общей библиотекой. Интерфейс на C#, расчёты остаются в VB.NET-сборке. Подходит, если логика уже отделена от форм и в команде есть разработчик, готовый осваивать XAML. Плюс — один код для Android и iOS.

API и нативное приложение. Существующая система получает веб-API (часто на ASP.NET Core с той же VB.NET-библиотекой внутри), а мобильный клиент пишется отдельно. На старте путь дороже, зато мобильная часть не привязана к .NET и её проще поддерживать, если нужны камера, сканер, геолокация или работа без сети.

Веб-интерфейс. Если мобильный доступ нужен для просмотра данных и простых форм, адаптивное веб-приложение на Blazor решает задачу без публикации в магазинах приложений. Сравнение кроссплатформенных вариантов для WinForms есть в материале про запуск WinForms на Linux и macOS.

Что сделать до релиза

Короткий план: 1) найти в решении сборки, где бизнес-логика не зависит от WinForms, и перевести их на net10.0; 2) решить, кто будет писать мобильный интерфейс — своя команда на C# или подрядчик; 3) если выбираете MAUI, собрать прототип на .NET 11 RC и проверить свои NuGet-пакеты на CoreCLR; 4) посмотреть доклад по MAUI 10–11 ноября и не обновлять рабочие проекты в день релиза.

Напомним, что 10 ноября заканчивается поддержка .NET 8 и .NET 9. Что это значит для десктопных приложений, мы разобрали во вчерашней новости.

Вопросы и ответы

Можно ли писать приложение .NET MAUI на Visual Basic?

Нет. Шаблонов и поддержки VB в .NET MAUI нет, и Microsoft прямо пишет в стратегии языка, что добавлять Visual Basic в новые кроссплатформенные UI-фреймворки не планирует. Но проект MAUI на C# может ссылаться на библиотеку классов, написанную на VB.NET, если она нацелена на netstandard2.0 или современный .NET и не использует Windows-специфичные API.

Что меняет переход MAUI на CoreCLR для тех, кто только планирует мобильное приложение?

Мобильное приложение на MAUI теперь работает на той же среде выполнения, что ASP.NET Core и десктоп. Для новой разработки это снимает часть различий между платформами, а на iOS и Mac Catalyst приложения запускаются быстрее. Mono для мобильных платформ в .NET 11 больше не предлагается.

Что выбрать для мобильного клиента к legacy-системе на VB.NET: MAUI или нативную разработку?

Если серверная часть и бизнес-правила остаются на .NET и команда готова писать интерфейс на C#, MAUI даёт общий код для Android и iOS. Если приложение должно глубоко работать с устройством (сканер, камера, фоновые задачи) или в команде нет .NET-разработчиков под мобильные платформы, нативное приложение поверх API часто выходит предсказуемее. В обоих случаях сначала нужен API к существующей системе.

Читайте также