WPF или что-то другое (для сложного UI) - C# WPF - Ответ 15357643

Появился в 'preview', появились первые обзоры и примеры (можно скачать и попробовать). И пока оно выглядит немного сомнительно.

Если очень поверхностно, то MAUI - это апгрейд Xamarin.Forms до возможности на общей кодовой базе и разметке собирать приложения под андроид, ios, винду (поверх WinUI3) и макос. Под линукс официальной поддержки не предусмотрено, но теоретически это может быть реализовано сообществом.

И вопрос, больше риторический, а будет ли оно вообще востребовано? Особенно учитывая тот факт, что вот именно под MAUI сомнительны шансы появления сильных паков коммерческих компонентов (devexpress, telerik). Под чисто виндовый WinUI3 да, будет, под нынешний Xamarin.Forms (ios+android) есть, как и под UWP/WPF, под Блазор тоже. Но это всё фреймворки, заточенные под конкретные платформы (да, Xamarin.Forms умеет UWP, но поддержка компонентов там не полная и, вроде, это вообще мало кто использует). А вот под кроплатформенные Uno или Avalonia с коммерическими компонентами как-то негусто, и приложения эти требуют либо особых усилий по стилизации и написанию собственных компонентов, либо выглядят совсем уныло, т.е. для простенького приложения подойдут, или для админки какой-нибудь, а вот попытки построить на них реально насыщенный десктоп со сложными многофункциональными датагридами (типа devexpress), графиками и прочими красотами, может оказаться чересчур трудозатратным.

Ещё момент - пок не ясно, будут ли там (MAUI) реально удобные инструменты для реализации полноценной адаптивной разметки, которая одновременно покроет и потребности сверхнасышенного десктопного приложения, и компактного варианта под мобильную платформу. Т.е. именно из одной кодовой базы (model + viewmodel) и единой разметки (xaml + стили). Т.е. что-то наподобии грида из Bootstrap.

Но даже если и будут, будет ли это удобно с точки зрения организации единого проекта десктоп+мобильный, учитывая, что там разница не только в разметке, ещё и логика UI может очень отличаться. Сейчас, если возникает потребность портировать часть функционала полноценного десктопного приложения на мобильную платформу, то никто не страдает в попытках сделать общую адаптивную разметку, просто реализуется самостоятельная мобильная версия, со своей моделью, своей логикой UI, своими VM и даже частью серверного API под специфику именно мобильного UI. Потому как это проще в разработке/поддержке, хоть и более трудозатратно в плане объёма частично дублирующегося кода. Ну или выбирается веб-решение, если он приемлемо под конкретный проект.

Как вариант - MAUI продолжат использовать так же, как Xamarin.Forms, т.е. чисто для iOS+Android разработки.

Вот у WinUi3, по мне так, шансы закрепиться куда больше, т.к. это, по сути, замена WPF, ориентированная чисто на виндовый десктоп. Хотя на данный момент версия очень куцая, но первый релиз обещают уже осенью, да и разработчики комерческих компонентов, судя по форумам/статьям у них на сайтах, на неё уже ориентируются.

Итого, в ближайшее время ожидается:

1. WinUi3 + Reunion (NET6, осень).

2. MAUI (NET6, осень), для винды поверх WinUi3.

3. Дальнейшее развитие Blazor, в т.ч., вероятно, под нативную компиляцию в десктоп (но он сейчас уже в wasm упаковывается, так что может и нет особого смысла). Хотя, последнее время не удаётся нагуглить планов развития этого фреймворка на 21-22. Как-то подутих хайп. Но при этом появились хорошие паки коммерческих компонентов.

Вернуться к обсуждению:

WPF или что-то другое (для сложного UI) C# WPF