Maui linux: jsuarezruiz/maui-linux: .NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.

Содержание

Пишем GUI на .NET для Linux




Полезности |

создано:
9/18/2022
|
опубликовано:
9/18/2022
|
обновлено:
12/18/2022
|
просмотров:
3167

Довольно часто возникает вопрос «как можно писать приложения для linux используя .NET». Кажется пришло время ответить на этот вопрос. Тем более, выход в MAUI лишь добавил непонятностей в эту тему.

Довольно часто возникает вопрос «как можно писать приложения для Linux используя .NET». Кажется, пришло время ответить на этот вопрос. Тем более, выход в MAUI лишь добавил непонятностей в эту тему.

Вариантов, на самом деле, не один, и даже не два, а немного больше. Я насчитал четыре: Avalonia, Uno, MAUI, Blazor. Причем, некоторые из перечисленных вариантов представляют собой «полноценные» приложения, которые очень похожи на Windows-приложения, то есть графическим интерфейсом (GUI). Другие — это Single Page Application (SPA), то есть работают как frontend + backend. Где frontend это и есть SPA на базе Blazor (Blazor WebAssembly или Blazor Server). А роли backend может выступать, например, Web API, опять же написанный на C#.NET.

Не могу не отменить, что в роли frontend может выступать любой SPA-фреймворк, такие как React, Vue.js, AngularJS, BackBoneJS, Aurelia, EmberJS, Svelte и т.д. и т.п. Просто если мы говорим о возможности писать на C#, то я не беру JavaScript-фреймворки во внимание.

А теперь, давайте про каждый немного подробнее.

Это самый интересный, на мой взгляд, вариант, потому что он очень похож на WPF. Вот как описан этот фреймворк на сайте производителя

Avalonia — это кроссплатформенный фреймворк пользовательского интерфейса для dotnet, обеспечивающий гибкую систему стилизации и поддерживающий широкий спектр операционных систем, таких как Windows, Linux, macOS. Авалония зрелая и готова к производству. У нас также есть поддержка бета-версии для iOS, Android и на ранних стадиях поддержка браузера через WASM.

Avalonia поддерживается Visual Studio через плагин, а также можно использовать Rider.

Еще один вариант, писать под Linux, используя C# — это платформа Uno. Вот про нее говорится на сайте разработчика.

https://platform.uno/ — Платформа пользовательского интерфейса с открытым исходным кодом для создания приложений с одной кодовой базой для Windows, iOS, Android, WebAssembly, macOS и Linux

Зрелый, готовый к применению фреймворк и даже, наверное, платформа.

Изначально предполагалось, что MAUI даст возможность писать код на .NET, а значит и на C# и для платформы linux. MAUI станет следующей вехой в развитии Xamarin.Forms, которые после выхода MAUI должны были перейти в режим «поддержки и исправления ошибок». То есть MAUI была призвана заменить Xamarin.Forms.

Но, когда вышла финальная версия MAUI, оказалось, что поддержки Linux просто нет. Более того, насколько я понял, поддержка платформы Linux не планируется. Печально…

Но мир не без добрых людей. Существует .NET Multi-platform App UI (.NET MAUI), которая создана и поддерживается сообществом разработчиков и доступна в виде Open-source. Вот что про нее написано в github.com:

NET Multi-platform App UI (.NET MAUI) — это кроссплатформенная платформа для создания собственных мобильных и классических приложений на C# и XAML. Используя .NET MAUI, вы можете разрабатывать приложения, которые могут работать на Android, iOS, iPadOS, macOS и Windows из одной общей кодовой базы.

Это, как я уже говорил ранее, не совсем GUI. Это уже другой тип разработки основанный на Web-разработке. То есть когда есть frontend и backend

В качестве заключения хочется ответить, что возможность писать для Linux на .NET платформе не ограничивается перечисленными мной вариантами. Существуют и другие менее распространенные способы, например, GtkSharp, Qml.Net, mono, ImGui.NET и даже ElectronJs (хотя это уже снова не .NET, а JavaScript).

Писать под Linux на NET можно! Выбирать вам!

.NET MAUI: разработайте приложение и заставьте его работать даже в Linux

Проблема, с которой сталкиваемся мы, пользователи Linux, заключается в том, что многие разработчики немного отказываются от нас. Когда им нужно создать что-то для системы, они создают это для Windows, так как она используется примерно на 4 из 5 компьютеров. И дело в том, что разработка для большего количества операционных систем требует дополнительных усилий, но Microsoft обновила информацию о своем .НЕТТО МАУИ и направлен на то, чтобы упростить жизнь создателям приложений.

Что такое .NET MAUI? Как мы читаем в Документация Microsoft, его название происходит от пользовательского интерфейса многоплатформенного приложения .NET, что в переводе на испанский означает пользовательский интерфейс для кроссплатформенных приложений. .NET — это тот же самый фреймворк, который на несколько лет опередил свою инфраструктуру, и все это представляет собой кроссплатформенную инфраструктуру для создания собственных настольных и мобильных приложений с помощью C# и XAML.

Индекс

  • 1 .NET MAUI больше предназначен для мобильных приложений, но…
  • 2 Это хорошая новость? Есть ли у этого будущее?
  • 3 Пусть никто не думает, что .NET MAUI все изменит… или изменит?

.NET MAUI больше предназначен для мобильных приложений, но…

Хотя они не говорят об этом прямо, кажется, что цель ясна: создайте приложение, немного настройте его и сделайте его пригодным для использования на любом устройстве. В основном это немного похоже на PWA (прогрессивные веб-приложения), но для мобильных приложений, которые можно использовать на рабочем столе. К такому выводу мы приходим, когда читаем страница поддерживаемых платформ, где Android и iOS упоминаются перед macOS. И это то, что для macOS это будет через Catalyst, что делает приложения для iPad совместимыми с macOS.

На странице поддерживаемых платформ читаем:

  • Android 5.0 (API 21) или выше. Для приложений .NET MAUI blazor требуется Android 6 (API 23) или выше.
  • iOS 10 или выше. Для приложений .NET MAUI blazor требуется iOS 11 или более поздней версии.
  • macOS 10.13 или выше, используя Mac Катализатор.
  • Windows 11 и Windows 10 версии 1809 или более поздней версии с библиотекой пользовательского интерфейса Windows (WinUI) 3.

И почему мы говорим об этом в Linux Addicts? Ну, потому что дальше написано, что он также будет совместим с Tizen, поддерживается Samsung и Linux, поддерживаемый сообществом. На исходной странице на английском языке используется слово «поддерживается», несовместимо, и я думаю, что перевод должен быть таким, что Samsung и сообщество Linux должны будут внести последние штрихи, чтобы приложение, разработанное из . NET MAUI быть совместимым с Tizen и Linux соответственно.

Это хорошая новость? Есть ли у этого будущее?

Нельзя сказать, что новости плохие. Для начала .NET MAUI с открытым исходным кодом, но это эволюция Xamarin. Forms, поэтому мы можем сказать, что это будет король, поставленный после мертвого короля. В новом предложении элементы управления пользовательским интерфейсом перекомпилированы с нуля для повышения производительности и расширяемости.

Что касается производительности, Microsoft объясняет:

.NET MAUI объединяет API-интерфейсы Android, iOS, macOS и Windows в единый API-интерфейс, который позволяет разработчикам выполнять однократную запись в любом месте, обеспечивая при этом глубокий доступ ко всем аспектам каждой собственной платформы.

.NET 6 предоставляет ряд специфичных для платформы платформ для создания приложений: версии библиотек для Android, iOS, macOS и Windows UI 3 (WinUI 3). Все эти платформы имеют доступ к одной и той же библиотеке базовых классов (BCL) .NET 6. Эта библиотека абстрагирует детали базовой платформы от кода. BCL зависит от среды выполнения .NET, чтобы обеспечить среду выполнения кода. Для Android, iOS и macOS mono реализует среду, реализацию среды выполнения . NET. В Windows Win32 обеспечивает среду выполнения.

Пусть никто не думает, что .NET MAUI все изменит… или изменит?

Когда мне впервые об этом сказали, моей первой мыслью было, что «Мауи» — это слово, которое уже существует в Linux, поэтому я был удивлен. Затем, почитав еще немного, я пришел к выводу, который, как мне кажется, будет правильным: в лучшем случае, вероятно, у пользователей Linux может быть, например, официальное нативное приложение Twitter или приложение типа Photoshop для ОС iPad, но не Photoshop, который мы все хотели бы иметь.

О будущем никто не знает. Процессоры с архитектурой ARM никуда не денутся, y
Apple имеет право голоса во всем этом. Нельзя исключать два противоположных варианта: один — это никуда не денется; другой был бы почти утопическим будущим, в котором разработчики решили создать все с помощью .NET MAUI, и в конце концов у нас могли бы быть все виды приложений и для Linux, хотя и было ясно, что последние штрихи должны быть сделаны сообществом. А если случится второе?

Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Вы можете быть заинтересованы

.NET 6 приходит в Ubuntu — но где же MAUI для Linux? • DEVCLASS

Microsoft и Canonical интегрировали .NET 6, последнюю версию кросс-платформенного .NET, а также выпуск с долгосрочной поддержкой (LTS) с Ubuntu 22.04 (Jammy), также LTS-версию. Уже можно было запускать .NET 6 на Ubuntu, но в сообщении руководителя программы Ричарда Ландера есть два ключевых изменения.

. NET в контейнере Chiselled Ubuntu

Во-первых, несколько пакетов .NET теперь создаются Canonical, поддерживаются Canonical и устанавливаются с помощью простой команды apt install. Варианты включают полный пакет SDK для .NET, либо только среду выполнения ASP.NET Core, либо только среду выполнения .NET. Теперь это рекомендация Microsoft для .NET в Ubuntu, хотя разработчикам, отказывающимся от самых последних сборок, следует придерживаться пакетов Microsoft.

Вторая и наиболее интересная часть новостей с точки зрения разработчиков — это введение оптимизированного .NET в контейнерах Ubuntu, называемых Chiseled Ubuntu Containers. Идея состоит в том, что если все, что требуется, — это минимальный контейнер для запуска приложения ASP.NET Core, то он точно подойдет для этой цели и будет меньше по размеру и более безопасным, чем общий контейнер Ubuntu.

По словам Ландера, «эти образы на 100 МБ меньше, чем образы Ubuntu, которые мы предлагали до сих пор, и не включают пользователя root».

По умолчанию эти образы не имеют оболочки и пользователя root. «Это означает, что невозможно использовать возможности и операции, требующие root», — сказал Ландер.

Все это приветствуется, но есть один очевидный пробел в работе Microsoft и Canonical для .NET на Ubuntu, а именно отсутствие какого-либо официального решения для кроссплатформенного настольного приложения, работающего в Linux. Недавно выпущенный .NET MAUI (многоплатформенный пользовательский интерфейс приложения) работает на Windows, Mac, iOS и Android, но не на Linux.

«Все еще жду, когда MAUI/Xamarin.Forms будет работать с Linux», — сказал один из разработчиков в ответ на сообщение Ландера. «Понял. Я позабочусь о том, чтобы ребята из MAUI это увидели», — сказал Ландер в дипломатическом ответе, но без каких-либо признаков прогресса. С аналогичными просьбами откликнулись и другие.

Имеет ли значение? Лишь незначительное меньшинство настольных компьютеров работает под управлением Linux, но среди тех, кто работает, много разработчиков, что делает его несколько стратегическим. Существует несоответствие между Windows, доминирующей на настольных компьютерах, и веб-разработкой, которая в основном основана на Linux. Microsoft проделала замечательную работу с подсистемой Windows для Linux, но по этой причине Linux становится все более привлекательным в качестве рабочего стола для разработчиков. Еще одна интересная платформа — Google Chrome OS, на которой можно запускать настольные приложения Linux.

Частично проблема заключается в том, что стратегия Microsoft в отношении настольных приложений (даже для Windows) была запутанной и непоследовательной, огромные усилия были направлены на UWP (универсальную платформу Windows), которая так и не набрала обороты.

Теперь есть MAUI, но, отвечая на вопрос о поддержке Linux, менеджер программы Microsoft Иммо Ландверт сказал в прошлом году, что: «Когда мы инвестируем в Linux, мы склонны делать это на сервере, потому что именно там кажется больше всего импульса для Linux. быть. Вы можете сказать: «Нет, вы делаете это из-за Azure», но все наоборот: Linux очень актуален для Azure, потому что Linux очень актуален для сервера и облака».

Конечно, есть неофициальные решения этой проблемы. Одним из них является Avalonia, которая представляет собой версию Windows Presentation Foundation, работающую на разных платформах и предназначенную для поддержки iOS, Android и в браузере через WASM. Существуют также форки MAUI, которые добавляют поддержку Linux.

Возможно, наиболее интересными являются перспективы Blazor, гибридной технологии, которая работает в браузере через WebAssembly, а также в MAUI. Уже можно создать настольное приложение с помощью Blazor и Electron, где Electron — это набор инструментов, который также используется Microsoft Visual Studio Code.

Стив Сандерсон из Microsoft, изобретатель Blazor, спросил в 2019 году: «Вы были бы рады использовать Blazor с Electron или считаете необходимым иметь что-то более «голое железо»?» Возможно, если Microsoft сможет заставить себя инвестировать в эту идею, Blazor с MAUI или без него может стать решением.

Maui Project — бесплатная платформа пользовательского интерфейса с открытым исходным кодом

Maui Project — бесплатная платформа пользовательского интерфейса с открытым исходным кодом

MauiKit — UI Framework

Бесплатный модульный фреймворк для разработки пользовательского интерфейса.

MauiKit представляет собой набор шаблонных элементов управления и инструментов, основанных на QQC2, изначально использующих Kirigami, общий для набора приложений Maui. MauiKit помогает быстро создавать пользовательские интерфейсы, соответствующие Maui HIG, и предоставляет готовые инструменты для различных платформ, таких как Android и Linux.

Maui расшифровывается как Multi-Adaptable User Interface и позволяет любому приложению Maui работать на различных платформах и устройствах, таких как рабочий стол Linux и телефоны, Android или Windows.

Nitrux Latinoamericana S.C. разрабатывает его с ❤ и кофеином.

Convergent

Легко создавайте приложения, которые работают на мобильных устройствах и настольных компьютерах.

Кроссплатформенный

Компоненты, готовые к использованию в Linux, Android, Windows, Mac OS и iOS.

Powered by FOSS

MauiKit лучше всего работает при использовании сред KDE и Qt Quick Controls 2.

Создавайте потрясающие приложения для всех

Mauikit предлагает разнообразный набор элементов пользовательского интерфейса. Приложения MauiKit адаптируются не только к устройствам, на которых мы их используем, всегда предлагая оптимальную компоновку в зависимости от того, как вы их используете.

Самый быстрый способ разработки красивых настольных и мобильных приложений.

Испытайте оптимизированную разработку с нулевой установкой времени, используя технологии, которые вы уже знаете и любите — Qt, QML и C++.

Блестящий внешний вид благодаря большому количеству готовых к использованию компонентов и стилей.

Широкий выбор компонентов пользовательского интерфейса, специально разработанных для мобильных и настольных приложений. MauiKit предоставляет множество компонентов. Все они имеют поддержку Linux и Android. С MauiKit вы действительно можете поддерживать Android и Linux с одним и тем же исходным кодом.

Почему МауиКит?

Отправляйте приложения быстрее с меньшим количеством кода.

За несколько строк выполните то, на что в противном случае ушли бы сотни, от концепции до экрана конечного пользователя — самый быстрый способ создания конвергентных приложений.

Создавайте лучшие приложения для любого устройства.

Используйте один и тот же код при разработке для Android или ПК. Hot push предлагает новые функции, не заставляя пользователей загружать новое приложение.

Интегрируйте используемые инструменты.

Используйте готовые популярные платформы и инструменты. Сосредоточьтесь на построении функций, а не на самостоятельном соединении разрозненных компонентов.

Загрузите MauiKit

Загрузите последнюю версию и начните сборку!.

Загрузить

Приложения, созданные с помощью MauiKit

Плавный переход между мобильными и настольными технологиями — граница между настольными и мобильными устройствами размыта. Использование одной и той же кодовой базы Maui Apps предоставляет пользователям одно приложение для различных форм-факторов.

Все приложения, представленные в этом обзоре, созданы с учетом философии Мауи. Они просты в использовании и имеют последовательный дизайн. Естественно, это бесплатное программное обеспечение. Эти приложения идеально интегрируются с вашим Plasma Desktop.

Обзор приложений Maui

Присоединяйтесь

Мы стремимся стать частью гостеприимного и дружелюбного сообщества.

KDE Maui Project@Telegram

https://t.me/mauiproject

Если вы заинтересованы в разработке своего приложения с помощью MauiKit, присоединяйтесь к нашему сообществу в Telegram.

Присоединяйтесь

Сообщите о проблемах

https://invent.kde.org/groups/maui/-/issues

Всякий раз, когда у вас возникают проблемы с приложениями Maui или MauiKit, пожалуйста, создайте проблему в нашем трекере ошибок.

Сообщить о проблеме

Maui Project@Mastodon

https://floss.social/@mauiproject

Вы можете следить за проектом Maui в Mastodon, федеративной бесплатной социальной сети с открытым исходным кодом.

Подпишитесь на

Maui Project@Twitter

Если хотите, вы также можете следить за проектом Maui на более популярной социальной платформе, такой как Twitter.

Follow

Открытый исходный код

MauiKit — это платформа с открытым исходным кодом, позволяющая улучшить внешний вид приложений.
Создайте свои стили и откройте для себя неограниченные возможности использования MauiKit.

Лицензия LGPL 3

MauiKit — это бесплатный проект с открытым исходным кодом, и вы можете использовать, копировать, объединять, публиковать и распространять платформу без существенных ограничений.