1 pontos por GN⁺ 2025-11-13 | 1 comentários | Compartilhar no WhatsApp
  • Com um backend baseado em Avalonia, aplicativos .NET MAUI agora podem ser executados em desktops Linux e no navegador (WebAssembly)
  • Mantendo a base de código existente do MAUI, a camada de renderização é substituída pelo Avalonia, alcançando ao mesmo tempo melhor desempenho e expansão de plataforma
  • Funciona com o mesmo mecanismo de renderização em Linux desktop como Ubuntu, Debian e Fedora, além de Linux embarcado e WebAssembly
  • Também foram observados ganhos de desempenho superiores a 2x no Windows e no macOS, com uma UI consistente sem diferenças entre plataformas
  • Um projeto que oferece aos desenvolvedores MAUI suporte a Linux e web, além de um ciclo de desenvolvimento previsível, servindo como base para a expansão do ecossistema Avalonia

Visão geral do backend MAUI do Avalonia

  • O backend MAUI do Avalonia é uma arquitetura que mantém a base de código do MAUI enquanto substitui a camada de renderização pelo Avalonia
    • Permite expandir apps MAUI existentes para plataformas adicionais, como Linux e navegador
    • Garante melhor desempenho em desktop e consistência entre plataformas
  • A demonstração real é um app MAUI baseado em WebAssembly, que pode ser executado no navegador sem plugins
    • Embora ainda seja uma build inicial, ela comprova que o MAUI pode funcionar nos principais sistemas operacionais de desktop e no navegador

Principais plataformas suportadas

  • Suporte a Linux desktop
    • Roda como um aplicativo desktop de primeira classe em Ubuntu, Debian, Fedora e outros
    • Usa o renderizador do Avalonia para entregar qualidade no nível de apps desktop de alto desempenho
  • Suporte a Linux embarcado
    • Roda com o mesmo backend do Avalonia em dispositivos embarcados, como painéis Raspberry Pi e HMIs industriais
  • Suporte a WebAssembly
    • Implementa apps MAUI que rodam no navegador sem dependências nativas
    • Deve evoluir para um nível que permita distribuição via navegador no futuro
  • Suporte a Windows e macOS
    • Integra-se à estrutura madura de renderização desktop do Avalonia
    • No macOS, foi observado desempenho mais de 2x superior em comparação com o Mac Catalyst

Eficiência de desenvolvimento e consistência

  • A equipe do Avalonia desenvolve visando apenas uma única plataforma (Avalonia)
    • Sem necessidade de implementações separadas para iOS, Android, Windows, macOS, Linux e WebAssembly
    • Reduz bugs específicos de plataforma e diferenças de renderização
  • Como usa o mesmo mecanismo de renderização, há a mesma representação de UI em todas as plataformas
    • Ao adicionar recursos ou corrigir bugs, as mudanças são refletidas imediatamente em todas as plataformas
    • Isso reduz o ciclo de desenvolvimento e garante qualidade previsível

Por que o Avalonia está construindo um backend para MAUI

  • A prioridade é apoiar desenvolvedores .NET client, permitindo que usuários do MAUI obtenham suporte a Linux e navegador, além de melhorias de desempenho
  • Com esse projeto, o Avalonia aprende sobre compatibilidade com mobile, problemas de API e pontos de melhoria em tooling
  • Espera-se um efeito de entrada no ecossistema à medida que desenvolvedores MAUI experimentem o renderizador e os recursos do Avalonia
  • O objetivo não é substituir o MAUI, mas oferecer opções mais amplas para desenvolvedores MAUI existentes

O que isso significa para desenvolvedores MAUI

  • Entrega o tão solicitado suporte a Linux e um modelo de UI baseado em drawing, consistente que desenvolvedores MAUI vêm pedindo continuamente
  • O Avalonia oferece recursos como:
    • Renderização acelerada por hardware
    • Sistema consistente de layout e estilos
    • Animações em alta taxa de atualização
    • Renderização customizada e efeitos visuais
    • Ampla cobertura de plataformas
    • Uma plataforma com investimento e suporte contínuos
  • Já é usado em ambientes comerciais por empresas como Unity, JetBrains e Schneider Electric
  • Mantendo o código MAUI existente, é possível obter ao mesmo tempo Linux, web e melhor desempenho em desktop

Desempenho e renderização de próxima geração

  • Com uma stack de UI baseada em drawing e amigável à GPU, alcança desempenho superior ao de toolkits nativos
  • Em colaboração com a equipe do Google Flutter, está trazendo o renderizador GPU Impeller para .NET
    • Quando essa tecnologia for aplicada, o backend MAUI também herdará maior velocidade de renderização, economia de bateria e animações mais suaves

Próximos passos

  • Continuar melhorando a qualidade do backend em colaboração com engenheiros do MAUI
  • Quando o suporte a Linux e navegador atingir maturidade, o MAUI poderá se completar como um verdadeiro framework de UI multiplataforma
  • Após estabilização, está prevista a publicação open source sob licença MIT
  • O progresso do desenvolvimento, benchmarks e previews continuarão sendo compartilhados

1 comentários

 
GN⁺ 2025-11-13
Comentários do Hacker News
  • É realmente interessante levar esse tipo de funcionalidade para a web
    Mas, ao usar a demo, não passa nem um pouco a sensação de “ser web”
    Não dá para pesquisar com Ctrl+F, selecionar texto nem copiar o endereço de links
    No celular, também não dá para pressionar uma imagem e compartilhar, e leitor de tela não funciona
    Esses detalhes se acumulam e passam a impressão de que “isso não é web de verdade”
    Parece um conteúdo rico isolado do navegador, como os applets Java do fim dos anos 90 ou Flash e Silverlight do começo dos anos 2000

    • Isso está longe de ser um problema pequeno
      Sem essas funcionalidades, por definição, não dá para chamar de “web de verdade”
      No fim, isso leva à pergunta filosófica: “o que é a web?”
      Faz pensar se ela é apenas um meio de distribuição de mídia ou algo maior
      Hoje em dia, muita gente está cansada da appificação da web e sente falta da web aberta de antigamente
    • Se você não usa os recursos padrão da web, vira um pesadelo de acessibilidade
      Tentei usar a demo com leitor de tela e não funcionou de jeito nenhum
    • O MAUI não foi feito originalmente para a web
      Também não é essa a direção pretendida pela Microsoft
      Só acontece que, como o Avalonia suporta WASM, o MAUI consegue rodar por cima disso
      Mas isso equivale a simplesmente renderizar um toolkit de GUI desktop em WASM
      É legal, mas parece mais uma versão moderna do Silverlight do que um web app
      Ainda assim, poder mirar no desktop Linux é uma grande vantagem
      Muita gente provavelmente vai preferir um rendering com aparência consistente como o do Avalonia, em vez de o MAUI usar controles nativos de cada plataforma
    • Como desenvolvedor .NET com 20 anos de experiência, não entendo por que tentar isso agora
      Só com CSS/JS/HTML dos navegadores modernos já dá para fazer a maior parte das coisas
      Eu gosto de XAML, mas JSX é uma ideia parecida e compila para HTML de verdade
      Eu já pensava isso na época do Silverlight — não entendo por que continuam tentando recriar o Flash
      O build web do Unity já é um “Flash em C#” melhor
    • Quando vi que não dava para usar Ctrl+F nem selecionar texto, perdi o interesse na hora
      Se nem essas funções básicas existem, para mim é inviável
  • MAUI sem suporte a desktop Linux nunca foi uma opção para começar
    Com essa adição, ficou um pouco melhor, mas ainda acho mais vantajoso usar Avalonia direto
    Mesmo assim, é bom ter essa opção para projetos existentes

  • Finalmente vai dar para fazer no Linux apps com “UX estilo celular” lentos e com animações esquisitas, sem precisar de Kotlin Multiplatform nem Electron
    Mas é decepcionante que o conjunto de widgets tenha basicamente só botão e checkbox
    Fico me perguntando por que as demos de toolkits de UI hoje em dia parecem piores do que demos da época do Delphi 1

    • Na prática, dá para simplesmente usar Avalonia de forma nativa
      Ele já suporta Windows/Mac/Linux/WASM
      Esse trabalho parece ser para quem quer expandir apps MAUI existentes para Linux/WASM
    • O Avalonia ainda não tem backend Wayland, mas isso está sendo desenvolvido como prioridade
      Dá para ver o andamento no blog do Avalonia
  • Um dos motivos de as pessoas evitarem o MAUI no ecossistema .NET é que a própria Microsoft não usa
    Até o Teams é baseado em Electron
    Isso levanta a pergunta: “se a própria MS não usa, por que nós deveríamos usar?”

    • Isso acontece por razões históricas
      A divisão do Windows cuida de WinUI/Win32, o Office usa React, e a divisão de desenvolvedores cuida de WPF e MAUI
      Como cada área anda por conta própria, o resultado é uma fragmentação dos toolkits de UI
      No fim, todos os toolkits acabam recebendo só um suporte pela metade
    • Hoje em dia, muitos apps desktop da MS usam WebView2 diretamente em vez de Electron
      O Teams também seguiu esse caminho ao migrar de Angular para React
      Ainda assim, é verdade que eles não usam MAUI
      A impressão é que preferem tecnologias já comprovadas, como Avalonia ou WinForms
      Não está claro o que a MS vai apoiar no longo prazo
      Existe também o Blazor, mas ele parece mais voltado para criar apps internos do que para substituir React
      Aliás, também é questionável se o Google usa Flutter com força nos próprios apps
    • O Teams ser baseado em Electron acontece simplesmente porque ele é mais antigo que o MAUI
      O Teams saiu em 2017, e o MAUI foi lançado em 2022
      A migração para React também aconteceu antes do MAUI
      Mesmo assim, é preocupante que a MS não faça dogfooding suficiente do MAUI
      Houve notícias recentes de redução de equipe ligada ao MAUI, e a confiança interna parece fraca
      Também é preciso considerar que o Flutter teve uma vantagem de 5 anos de antecedência
      Ainda assim, fica difícil afastar a impressão de que a MS não está realmente comprometida com o MAUI
    • Eu jamais faria frontend em .NET
      Sempre termina em descontinuação
      Usar tecnologias web padrão faz melhor para a saúde mental
    • Hoje em dia, o que a MS usa ou deixa de usar tem pouco valor como referência
      (não estou defendendo o MAUI)
  • Caso alguém esteja confuso, aqui vai um resumo
    O .NET MAUI é originalmente um framework para criar apps para Android, iOS, macOS e Windows com uma única base de código
    Agora foram adicionados Linux e navegador
    Fiz um app Hello World no Mac e a configuração foi bem complicada
    Ainda assim, foi bom voltar a usar XAML depois de tanto tempo

    • É parecido com o Flutter?
  • Eu estava procurando uma GUI multiplataforma para criar software de desenvolvimento
    Primeiro tentei usar MAUI, mas a instalação já foi um pesadelo
    Nem os recursos básicos de UI eram suportados
    Depois experimentei AvaloniaUI, e foi exatamente o oposto
    A instalação foi simples e, com uma pesquisada rápida, consegui implementar facilmente coisas como janela transparente sem borda
    A integração com o Visual Studio deixa um pouco a desejar, mas ainda está muito à frente do MAUI

  • Parece a volta do Silverlight
    Referência: Microsoft Silverlight wiki

  • No Chrome, a demo quase não funciona
    O quebra-cabeça deslizante responde devagar, e a seta de voltar trava
    Se atualizar a página, volta para a tela inicial
    O seletor de hora e o seletor de data também ficam desalinhados e difíceis de usar
    No geral, está bem ruim

    • Se você apertar voltar durante o embaralhamento, o app inteiro trava
      Thread relacionada
  • Executei a demo “Word puzzle” na seção “Launch MAUI in your browser”
    Ao clicar em ‘Randomize’, as peças começam a embaralhar, mas, se você voltar pela seta superior, a tela trava completamente
    O quebra-cabeça fica no fundo, o menu fica sobreposto por cima, e não dá para clicar em nada
    Isso acontece igual em vários navegadores
    Link da demo

    • Se esperar o embaralhamento terminar, dá para voltar, mas a sensação do controle com o mouse é estranha
      O clique-e-arraste é instável e não há feedback visual
      As peças não se movem; elas simplesmente teleportam
      Teria sido melhor usar um clique único ou um movimento com animação
      Outro usuário levantou o mesmo problema
    • Testei a calculadora e 7/9 = 1
      Na calculadora RPN, nem sequer dá para colocar números na pilha
  • Há uma necessidade enorme de um toolkit de UI capaz de criar um programa CAD de verdade
    Já cansei de apps que parecem uma webview

    • Concordo totalmente
      Odiei demais as tendências de UI web dos últimos 10 anos
      Tudo ficou grande por causa do foco em toque, com muito espaço em branco e animações inúteis
      Quero voltar às UIs antigas, focadas em densidade de informação e usabilidade
      Isso é algo que gosto em sites japoneses
    • Na verdade, para algo como CAD, qualquer toolkit serve desde que exista uma superfície de renderização por GPU
      Se você olhar a demo reel do Avalonia, dá para ver que a stack de GUI .NET também consegue criar coisas como editores de vídeo e ferramentas de análise de mapas
      Avalonia Showcase
    • Meu critério para um toolkit de GUI é: ele consegue criar um software no nível do Photoshop?
      Se só serve para app de clima ou lista de tarefas, então não tem utilidade
    • E o QT?
      WPF e WinForms também continuam existindo