1 points par GN⁺ 2025-11-13 | 1 commentaires | Partager sur WhatsApp
  • Grâce à un backend basé sur Avalonia, les applications .NET MAUI peuvent désormais s’exécuter sur les postes Linux et dans le navigateur (WebAssembly)
  • En conservant la base de code MAUI existante tout en remplaçant la couche de rendu par Avalonia, le projet améliore à la fois les performances et l’extension multiplateforme
  • Le même moteur de rendu fonctionne sur Linux desktop comme Ubuntu, Debian et Fedora, sur Linux embarqué et en environnement WebAssembly
  • Sur Windows et macOS également, on observe une amélioration des performances de plus de 2x, avec une UI cohérente sans différences selon la plateforme
  • Le projet apporte aux développeurs MAUI la prise en charge de Linux et du web ainsi qu’un cycle de développement prévisible, tout en servant de base à l’expansion de l’écosystème Avalonia

Aperçu du backend Avalonia MAUI

  • Le backend Avalonia MAUI adopte une architecture qui conserve la base de code MAUI tout en remplaçant la couche de rendu par Avalonia
    • Les applications MAUI existantes peuvent ainsi être étendues à des plateformes supplémentaires comme Linux et le navigateur
    • Il permet à la fois d’améliorer les performances desktop et d’assurer une cohérence entre plateformes
  • La démo concrète est une application MAUI basée sur WebAssembly, exécutable dans le navigateur sans plugin
    • Il s’agit encore d’une build initiale, mais elle démontre que MAUI peut fonctionner sur les principaux OS desktop et dans le navigateur

Principales plateformes prises en charge

  • Prise en charge de Linux desktop
    • Exécution en tant qu’application desktop de premier plan sur Ubuntu, Debian, Fedora, etc.
    • Le moteur de rendu Avalonia permet d’offrir une qualité au niveau des applications desktop hautes performances
  • Prise en charge de Linux embarqué
    • Fonctionne avec le même backend qu’Avalonia sur des appareils embarqués comme des panneaux Raspberry Pi ou des IHM industrielles
  • Prise en charge de WebAssembly
    • Permet de créer des applications MAUI exécutables dans le navigateur sans dépendances natives
    • L’objectif est d’évoluer vers un niveau permettant une distribution via navigateur
  • Prise en charge de Windows et macOS
    • Intégration avec l’architecture de rendu desktop mature d’Avalonia
    • Sur macOS, une amélioration de performances de plus de 2x par rapport à Mac Catalyst a été observée

Efficacité de développement et cohérence

  • L’équipe Avalonia développe en ciblant une plateforme unique : Avalonia
    • Plus besoin d’implémentations séparées pour iOS, Android, Windows, macOS, Linux et WebAssembly
    • Réduction des bugs et des écarts de rendu entre plateformes
  • Comme le même moteur de rendu est utilisé, l’UI s’affiche de façon identique sur toutes les plateformes
    • Les ajouts de fonctionnalités et les corrections de bugs sont répercutés immédiatement sur toutes les plateformes
    • Cela raccourcit les cycles de développement et rend la qualité plus prévisible

Pourquoi Avalonia construit un backend pour MAUI

  • La priorité est de soutenir les développeurs clients .NET, afin que les utilisateurs de MAUI puissent bénéficier de la prise en charge de Linux et du navigateur ainsi que d’un gain de performances
  • Grâce à ce projet, Avalonia apprend sur la compatibilité mobile, les problèmes d’API et les améliorations de tooling
  • En permettant aux développeurs MAUI de découvrir le moteur de rendu et les fonctionnalités d’Avalonia, le projet devrait aussi favoriser l’adoption de l’écosystème
  • L’objectif n’est pas de remplacer MAUI, mais d’offrir plus de choix aux développeurs MAUI existants

Ce que cela signifie pour les développeurs MAUI

  • Les développeurs MAUI obtiennent la prise en charge de Linux qu’ils réclamaient de longue date, ainsi qu’un modèle d’UI cohérent basé sur le dessin
  • Avalonia apporte notamment :
    • rendu accéléré matériellement
    • système cohérent de layout et de styles
    • animations à haut taux de rafraîchissement
    • rendu personnalisé et effets visuels
    • large couverture de plateformes
    • plateforme bénéficiant d’investissements et d’un support continus
  • Déjà utilisé dans des environnements commerciaux par Unity, JetBrains, Schneider Electric, entre autres
  • Il devient possible de conserver le code MAUI existant tout en améliorant simultanément Linux, le web et les performances desktop

Performances et rendu de nouvelle génération

  • Une pile d’UI basée sur le dessin et pensée pour le GPU permet d’obtenir des performances supérieures à celles des toolkits natifs
  • En collaboration avec l’équipe Google Flutter, Avalonia est en train d’introduire le moteur de rendu GPU Impeller dans .NET
    • Une fois cette technologie appliquée, le backend MAUI héritera lui aussi d’une vitesse de rendu accrue, d’une consommation batterie réduite et d’animations plus fluides

Feuille de route

  • La qualité du backend continuera d’être améliorée en collaboration avec les ingénieurs MAUI
  • Lorsque la prise en charge de Linux et du navigateur arrivera à maturité, MAUI pourra devenir un véritable framework d’UI multiplateforme
  • Après stabilisation, le projet sera publié en open source sous licence MIT
  • L’avancement du développement, les benchmarks et les previews continueront d’être partagés régulièrement

1 commentaires

 
GN⁺ 2025-11-13
Avis Hacker News
  • C’est vraiment intéressant d’avoir ce genre de chose sur le web
    Mais quand on essaie la démo, on n’a pas l’impression d’être sur le web
    Impossible d’utiliser Ctrl+F pour rechercher, de sélectionner le texte ou de copier l’adresse d’un lien
    Sur mobile, on ne peut pas non plus faire un appui long sur une image pour la partager, et les lecteurs d’écran ne fonctionnent pas
    Tous ces points s’accumulent et donnent l’impression que « ce n’est pas vraiment le web »
    Ça rappelle les contenus riches isolés du navigateur, comme les applets Java de la fin des années 90 ou Flash et Silverlight du début des années 2000

    • Ce n’est pas du tout un détail
      Sans ces fonctions, par définition, on ne peut pas appeler ça le « vrai web »
      On finit par retomber sur la question philosophique : qu’est-ce que le web ?
      Est-ce un simple moyen de transmettre des médias, ou quelque chose de plus vaste ?
      Beaucoup de gens en ont assez du web transformé en app (app-lification) et regrettent l’ancien web ouvert
    • Si on n’utilise pas les fonctionnalités web standard, ça devient un cauchemar d’accessibilité
      J’ai essayé la démo avec un lecteur d’écran et rien ne fonctionnait du tout
    • MAUI n’est pas destiné au web à l’origine
      Ce n’est pas non plus la direction voulue par Microsoft
      C’est simplement qu’Avalonia prend en charge WASM, donc MAUI peut fonctionner au-dessus
      Mais au fond, cela revient juste à rendre en WASM une boîte à outils GUI de bureau
      C’est sympa, mais ça ressemble davantage à une version moderne de Silverlight qu’à une vraie web app
      Cela dit, pouvoir cibler le bureau Linux est un gros avantage
      Beaucoup préféreront sans doute, comme avec Avalonia, un rendu à l’apparence uniforme plutôt que des contrôles natifs propres à chaque plateforme
    • En tant que développeur .NET avec 20 ans d’expérience, je ne comprends pas pourquoi on tente encore ce genre de chose aujourd’hui
      Les CSS/JS/HTML des navigateurs modernes suffisent pour la plupart des cas
      J’aime bien XAML, mais JSX repose sur une idée similaire et compile en vrai HTML
      Je pensais déjà la même chose à l’époque de Silverlight — je ne comprends pas pourquoi on essaie sans cesse de recréer Flash
      Les builds Web de Unity sont déjà un meilleur « C# Flash »
    • Dès que j’ai vu que Ctrl+F et la sélection de texte ne fonctionnaient pas, tout mon intérêt est retombé
      Si ces fonctions de base ne marchent pas, pour moi c’est rédhibitoire
  • Un MAUI sans prise en charge du bureau Linux n’a jamais été une option pour moi
    Cet ajout améliore un peu la situation, mais je pense toujours qu’il vaut mieux utiliser Avalonia directement
    Cela dit, c’est bien d’avoir cette option pour les projets existants

  • Enfin, on va pouvoir créer sous Linux des applications à « UX style téléphone » lentes et aux animations bizarres, sans passer par Kotlin Multiplatform ou Electron
    Mais l’ensemble de widgets se limite à peu près à des boutons et des cases à cocher, ce qui est décevant
    Je me demande pourquoi les démos de toolkits UI d’aujourd’hui sont moins impressionnantes que celles de l’époque de Delphi 1

    • En fait, il suffit d’utiliser Avalonia en natif
      Ça prend déjà en charge Windows/Mac/Linux/WASM
      Ce travail semble surtout destiné à ceux qui veulent étendre des apps MAUI existantes vers Linux/WASM
    • Avalonia n’a pas encore de backend Wayland, mais il est en cours de développement en priorité
      L’avancement est visible sur le blog d’Avalonia
  • L’une des raisons pour lesquelles les gens évitent MAUI dans l’écosystème .NET, c’est que Microsoft ne l’utilise pas lui-même
    Même Teams repose sur Electron
    La question qui vient naturellement est : « si Microsoft ne l’utilise pas, pourquoi nous le ferions ? »

    • C’est pour des raisons historiques
      La division Windows gère WinUI/Win32, Office utilise React, et la division développeurs s’occupe de WPF et MAUI
      Chaque équipe avançant séparément, cela a conduit à une dispersion des toolkits UI
      Au final, tous les toolkits ne reçoivent qu’un support partiel
    • Aujourd’hui, beaucoup d’apps desktop de Microsoft utilisent directement WebView2 plutôt qu’Electron
      Teams a aussi pris cette direction lors de sa migration d’Angular vers React
      Cela dit, il est vrai qu’ils n’utilisent pas MAUI
      L’impression générale est qu’ils préfèrent des technologies éprouvées comme Avalonia ou WinForms
      On ne sait pas très bien ce que Microsoft poussera sur le long terme
      Il y a aussi Blazor, mais c’est plus proche d’un outil pour créer des applications internes que d’un remplaçant à React
      D’ailleurs, on peut aussi se demander dans quelle mesure Google utilise réellement Flutter dans ses propres apps
    • Si Teams repose sur Electron, c’est simplement parce que Teams est sorti avant MAUI
      Teams est arrivé en 2017, MAUI en 2022
      Et le passage à React a également eu lieu avant MAUI
      En revanche, le fait que Microsoft ne dogfoode pas suffisamment MAUI reste préoccupant
      Il y a aussi eu récemment des nouvelles de réduction d’effectifs autour de MAUI, ce qui donne l’impression d’une faible confiance en interne
      Il faut aussi tenir compte du fait que Flutter a cinq ans d’avance
      Malgré tout, il reste difficile de se défaire de l’impression que Microsoft ne s’investit pas vraiment dans MAUI
    • Je ne construirais jamais quoi que ce soit en frontend .NET
      Ça finit toujours par être abandonné
      Mieux vaut préserver sa santé mentale et rester sur les technologies web standard
    • Ce que Microsoft utilise aujourd’hui n’a pas vraiment grande valeur comme référence
      (ce n’est pas une défense de MAUI)
  • Pour éviter toute confusion
    .NET MAUI est à l’origine un framework pour créer, avec une seule base de code, des apps Android, iOS, macOS et Windows
    Cette fois, Linux et le navigateur s’y ajoutent
    J’ai essayé de créer une app Hello World sur Mac, et la configuration était assez compliquée
    Mais ça faisait quand même plaisir de réutiliser XAML après tout ce temps

    • C’est similaire à Flutter ?
  • Je cherchais un GUI cross-platform pour créer un logiciel de développement
    J’ai d’abord essayé MAUI, et rien que l’installation était un cauchemar
    Même les fonctions UI de base n’étaient pas prises en charge
    J’ai ensuite testé AvaloniaUI, et l’expérience a été complètement opposée
    L’installation était simple, et avec quelques recherches seulement j’ai pu implémenter facilement des choses comme une fenêtre transparente sans bordure
    L’intégration à Visual Studio laisse un peu à désirer, mais c’est très largement en avance sur MAUI

  • On dirait le retour de Silverlight
    Référence : Microsoft Silverlight wiki

  • Dans Chrome, la démo fonctionne à peine
    Le puzzle coulissant réagit lentement, et la flèche de retour se fige
    Si on recharge la page, on revient à l’écran d’accueil
    Les sélecteurs d’heure et de date sont aussi mal alignés et peu agréables à manipuler
    Globalement, c’est médiocre

    • Si on appuie sur retour pendant le mélange, toute l’application se bloque
      Fil connexe
  • J’ai lancé la démo « Word puzzle » dans la section « Launch MAUI in your browser »
    Quand on clique sur « Randomize », les tuiles se mélangent puis, si on revient avec la flèche du haut, l’écran se fige complètement
    Le puzzle reste en arrière-plan, le menu se superpose au-dessus, et plus rien n’est cliquable
    Ça se produit de la même manière dans plusieurs navigateurs
    Lien vers la démo

    • Si on attend la fin du mélange, on peut revenir, mais la sensation à la souris est étrange
      Le cliquer-glisser est instable et il n’y a aucun retour visuel
      Les tuiles ne se déplacent pas, elles se téléportent
      Un simple clic ou un déplacement animé aurait été préférable
      Un autre utilisateur signale le même problème
    • J’ai essayé la calculatrice, et 7/9 = 1
      La calculatrice RPN ne permet même pas d’empiler des nombres
  • On a vraiment besoin d’un toolkit UI capable de créer un vrai logiciel de CAO
    Les applications qui ressemblent à des webviews, ça commence à bien faire

    • Je suis totalement d’accord
      Je déteste profondément les tendances UI du web de ces dix dernières années
      Tout est devenu plus gros, pensé pour le tactile, avec beaucoup d’espace vide et des animations inutiles
      J’aimerais revenir aux anciennes interfaces centrées sur la densité d’information et l’utilisabilité
      C’est ce que j’apprécie sur de nombreux sites web japonais
    • En réalité, pour quelque chose comme la CAO, n’importe quel toolkit peut convenir tant qu’il offre une surface de rendu GPU
      Si on regarde la démo d’Avalonia, on voit qu’on peut aussi créer avec la pile GUI .NET des choses comme un éditeur vidéo ou un outil d’analyse cartographique
      Avalonia Showcase
    • Mon critère pour un toolkit GUI, c’est : permet-il de créer un logiciel de niveau Photoshop ?
      Si ça ne sert qu’à faire une appli météo ou une todo list, ça ne m’intéresse pas
    • Et Qt, dans tout ça ?
      WPF et WinForms existent toujours