1 puntos por GN⁺ 2025-11-13 | 1 comentarios | Compartir por WhatsApp
  • Un backend basado en Avalonia permite que las aplicaciones .NET MAUI se ejecuten en escritorio Linux y en el navegador (WebAssembly)
  • Manteniendo la base de código existente de MAUI, se reemplaza la capa de renderizado por Avalonia para lograr al mismo tiempo mejor rendimiento y expansión de plataformas
  • Funciona con el mismo motor de renderizado en Linux de escritorio como Ubuntu, Debian y Fedora, además de Linux embebido y entornos WebAssembly
  • También se observa una mejora de rendimiento de más del doble en Windows y macOS, con una UI consistente sin diferencias entre plataformas
  • Un proyecto que ofrece a los desarrolladores de MAUI soporte para Linux y web, además de un ciclo de desarrollo predecible, y que sirve como base para expandir el ecosistema de Avalonia

Resumen de Avalonia MAUI Backend

  • Avalonia MAUI Backend es una arquitectura que mantiene la base de código de MAUI mientras reemplaza la capa de renderizado por Avalonia
    • Permite ampliar las apps MAUI existentes a plataformas adicionales como Linux y el navegador
    • Mejora el rendimiento en escritorio y garantiza consistencia entre plataformas
  • La demo real es una app MAUI basada en WebAssembly, que puede ejecutarse en el navegador sin plugins
    • Aunque es una compilación inicial, demuestra que MAUI puede funcionar en los principales sistemas operativos de escritorio y en el navegador

Soporte principal de plataformas

  • Soporte para Linux de escritorio
    • Se ejecuta como una app de escritorio de primera clase en Ubuntu, Debian, Fedora y más
    • Usa el renderizador de Avalonia para ofrecer calidad al nivel de apps de escritorio de alto rendimiento
  • Soporte para Linux embebido
    • Se ejecuta con el mismo backend que Avalonia en dispositivos embebidos como paneles Raspberry Pi y HMI industriales
  • Soporte para WebAssembly
    • Hace posible una app MAUI que corre en el navegador sin dependencias nativas
    • Más adelante se espera que evolucione hasta permitir despliegue en navegador a nivel de producción
  • Soporte para Windows y macOS
    • Integración con la madura arquitectura de renderizado de escritorio de Avalonia
    • En macOS se observó una mejora de rendimiento de más del doble frente a Mac Catalyst

Eficiencia y consistencia en el desarrollo

  • El equipo de Avalonia desarrolla apuntando solo a una plataforma única (Avalonia)
    • No hace falta una implementación separada para iOS, Android, Windows, macOS, Linux y WebAssembly
    • Se reducen los bugs y las diferencias de renderizado entre plataformas
  • Como se usa el mismo motor de renderizado, hay una misma representación de UI en todas las plataformas
    • Al agregar funciones o corregir errores, los cambios se reflejan de inmediato en todas las plataformas
    • Se acorta el ciclo de desarrollo y se logra una calidad más predecible

Por qué Avalonia está construyendo un backend para MAUI

  • Prioriza el apoyo a los desarrolladores cliente de .NET, para que los usuarios de MAUI puedan obtener soporte para Linux y navegador, además de mejoras de rendimiento
  • A través de este proyecto, Avalonia aprende sobre compatibilidad móvil, problemas de API y mejoras de tooling
  • Se espera un efecto de incorporación al ecosistema al permitir que los desarrolladores de MAUI experimenten el renderizador y las funciones de Avalonia
  • El objetivo no es reemplazar MAUI, sino dar más opciones a los desarrolladores actuales de MAUI

Qué significa para los desarrolladores de MAUI

  • Ofrece el soporte para Linux y un modelo de UI consistente basado en drawing que los desarrolladores de MAUI han pedido de forma continua
  • Avalonia ofrece funciones como:
    • Renderizado con aceleración por hardware
    • Sistema consistente de layout y estilos
    • Animaciones de alta tasa de refresco
    • Renderizado personalizado y efectos visuales
    • Amplia cobertura de plataformas
    • Una plataforma con inversión y soporte continuos
  • Ya se usa en entornos comerciales como Unity, JetBrains y Schneider Electric
  • Manteniendo el código MAUI existente, permite conseguir al mismo tiempo mejoras de rendimiento en Linux, web y escritorio

Rendimiento y renderizado de próxima generación

  • Una pila de UI de drawing orientada a GPU permite obtener mayor rendimiento que los toolkits nativos
  • En colaboración con el equipo de Google Flutter, se está llevando el renderizador GPU Impeller a .NET
    • Cuando esta tecnología se aplique, el backend de MAUI también heredará más velocidad de renderizado, ahorro de batería y animaciones más fluidas

Próximos planes

  • Seguir mejorando la calidad del backend mediante colaboración con los ingenieros de MAUI
  • Cuando el soporte para Linux y navegador alcance madurez, MAUI podrá completarse como un verdadero framework de UI multiplataforma
  • Tras la estabilización, se planea publicar como open source bajo licencia MIT
  • Se seguirán compartiendo avances de desarrollo, benchmarks y previews

1 comentarios

 
GN⁺ 2025-11-13
Opiniones en Hacker News
  • Es realmente interesante llevar este tipo de funcionalidad a la web
    Pero al probar el demo, no se siente “como web”
    No funciona Ctrl+F, tampoco se puede seleccionar texto ni copiar la dirección de los enlaces
    En móvil tampoco se puede mantener presionada una imagen para compartirla, y los lectores de pantalla no funcionan
    Todo eso se acumula y deja la impresión de que “esto no es web de verdad”
    Se siente como contenido enriquecido aislado del navegador, como una isla, al estilo de los applets de Java de finales de los 90 o Flash y Silverlight de inicios de los 2000

    • No es un problema menor en absoluto
      Sin esas funciones, por definición no puede llamarse “web real”
      Al final lleva a la pregunta filosófica de “qué es la web”
      Hace pensar si es solo un medio de transmisión o algo más grande
      Hoy mucha gente está cansada de la appificación de la web y extraña la web abierta de antes
    • Si no usas funciones web estándar, se vuelve una pesadilla de accesibilidad
      Intenté usar el demo con lector de pantalla y no funcionó para nada
    • MAUI originalmente no es para la web
      Tampoco era esa la dirección que Microsoft pretendía
      Como Avalonia soporta WASM, si pones MAUI encima de eso, simplemente funciona
      Pero eso equivale a renderizar un toolkit de GUI de escritorio en WASM
      Es genial, pero se siente más como una versión moderna de Silverlight que como una app web
      Aun así, poder apuntar a escritorios Linux es una gran ventaja
      Seguramente habrá mucha gente que prefiera, como en Avalonia, un renderizado visual uniforme en lugar de usar los controles nativos de cada plataforma como hace MAUI
    • Como desarrollador de .NET con 20 años de experiencia, no entiendo por qué intentar esto en este momento
      Con solo CSS/JS/HTML de navegadores modernos ya se puede hacer casi todo
      Me gusta XAML, pero JSX es un concepto parecido y compila a HTML real
      Pensaba lo mismo en la época de Silverlight: no entiendo por qué siguen intentando recrear Flash
      Los builds web de Unity ya son un mejor “Flash en C#”
    • En cuanto vi que no se podía usar Ctrl+F ni seleccionar texto, se me quitaron las ganas
      Si ni siquiera tiene esas funciones básicas, para mí es un non-starter
  • Un MAUI sin soporte para escritorio Linux nunca fue una opción a considerar desde el inicio
    Con esto mejora un poco, pero sigo pensando que es mejor usar Avalonia directamente
    Aun así, da gusto que exista esta opción para proyectos ya existentes

  • Por fin ya se pueden hacer en Linux apps con “UX estilo teléfono” lentas y con animaciones raras, además de Kotlin Multiplatform o Electron
    Pero decepciona que el set de widgets sea poco más que botones y casillas de verificación
    Me pregunto por qué los demos de toolkits de UI hoy en día se ven peor que los demos de la época de Delphi 1

    • En realidad, basta con usar Avalonia de forma nativa
      Ya soporta Windows/Mac/Linux/WASM
      Parece que este trabajo está pensado para quienes quieren extender apps MAUI ya existentes hacia Linux/WASM
    • Avalonia todavía no tiene backend para Wayland, pero ya se está desarrollando como prioridad
      El progreso puede verse en el blog de Avalonia
  • Una de las razones por las que la gente evita MAUI en el ecosistema .NET es que ni Microsoft lo usa
    Incluso Teams está basado en Electron
    Surge la duda de “si MS ni lo usa, ¿por qué deberíamos usarlo nosotros?”

    • Eso es por razones históricas
      El área de Windows se encarga de WinUI/Win32, Office de React y el área de desarrolladores de WPF y MAUI
      Cada división se mueve por su lado y el resultado es una fragmentación de toolkits de UI
      Al final, todos los toolkits reciben solo soporte a medias
    • Hoy muchas apps de escritorio de MS usan WebView2 directamente en lugar de Electron
      Teams también terminó así al pasar de Angular a React
      Pero sigue siendo cierto que no usan MAUI
      Hay un ambiente de preferencia por tecnologías ya probadas como Avalonia o WinForms
      No está claro qué va a impulsar MS a largo plazo
      También está Blazor, pero eso se siente más orientado a crear apps internas que a reemplazar React
      Y, por cierto, también queda la duda de si Google realmente usa Flutter de forma agresiva en sus propias apps
    • Que Teams esté basado en Electron se debe simplemente a que salió antes que MAUI
      Teams se lanzó en 2017 y MAUI se presentó en 2022
      El cambio a React también ocurrió antes de MAUI
      Aun así, preocupa que MS no haga suficiente dogfooding con MAUI
      También ha habido noticias recientes de recortes de personal relacionado con MAUI, y eso hace ver poca confianza interna
      También hay que tomar en cuenta que Flutter arrancó 5 años antes
      Pero aun así es difícil quitarse la impresión de que MS no está realmente comprometido con MAUI
    • Yo jamás haría frontend en .NET
      Siempre termina en fin de soporte
      Usar tecnologías web estándar es mejor para la salud mental
    • Hoy en día ya no vale mucho la pena fijarse en lo que usa MS
      (No es una defensa de MAUI)
  • Por si alguien está confundido, lo resumo
    .NET MAUI es originalmente un framework para crear apps para Android, iOS, macOS y Windows con una sola base de código
    Esta vez se añadieron Linux y el navegador
    Probé hacer una app Hello World en Mac y la configuración fue bastante compleja
    Aun así, fue agradable volver a usar XAML después de tanto tiempo

    • ¿Es parecido a Flutter?
  • Estaba buscando una GUI multiplataforma mientras desarrollaba software para desarrollo
    Primero probé MAUI, pero la instalación fue una pesadilla desde el arranque
    Ni siquiera soportaba funciones básicas de UI
    Luego probé AvaloniaUI y fue una experiencia totalmente opuesta
    La instalación fue sencilla y, con una búsqueda mínima, pude implementar fácilmente cosas como una ventana transparente sin bordes
    La integración con Visual Studio queda un poco a deber, pero aun así está muy por delante de MAUI

  • Esto se siente como el regreso de Silverlight
    Referencia: Microsoft Silverlight wiki

  • En Chrome el demo casi no funciona
    El rompecabezas deslizante responde lento y la flecha de retroceso se congela
    Si recargas, vuelve a la pantalla inicial
    El selector de hora y el selector de fecha también están desalineados y son incómodos de usar
    En general está bastante mal

    • Si presionas atrás durante el shuffle, toda la app se congela
      Hilo relacionado
  • Probé el demo “Word puzzle” en la sección “Launch MAUI in your browser”
    Si presionas “Randomize”, las fichas se mezclan, pero si vuelves con la flecha superior, la pantalla queda completamente bloqueada
    El rompecabezas se queda en el fondo y el menú queda superpuesto arriba, sin que se pueda hacer clic en nada
    Pasa igual en varios navegadores
    Enlace al demo

    • Si esperas a que termine el shuffle, sí regresa, pero la sensación del control con mouse es rara
      El clic y arrastre es inestable y no hay retroalimentación visual
      Las fichas no se mueven, se teletransportan
      Habría sido mejor un solo clic o un movimiento animado
      Otro usuario señaló el mismo problema
    • Probé la calculadora y 7/9 da 1
      En la calculadora RPN ni siquiera se pueden meter números en la pila
  • Hace mucha falta un toolkit de UI con el que realmente se puedan hacer programas CAD
    Ya me cansé de apps que parecen webviews

    • Totalmente de acuerdo
      Odio mucho las tendencias de UI web de los últimos 10 años
      Todo se volvió más grande, centrado en touch, con demasiado espacio en blanco y animaciones inútiles
      Quiero volver a las interfaces de antes, centradas en la densidad de información y la usabilidad
      Eso es algo que me gusta de los sitios web japoneses
    • En realidad, cosas como CAD se pueden hacer con cualquier toolkit mientras tengas una superficie de renderizado por GPU
      Si ves el demo reel de Avalonia, también se pueden hacer cosas como editores de video o herramientas de análisis de mapas con el stack GUI de .NET
      Avalonia Showcase
    • Mi criterio para un toolkit GUI es si puede usarse para crear software al nivel de Photoshop
      Si solo sirve para apps simples del clima o de tareas, no tiene mucho sentido
    • ¿Qué tal QT?
      WPF y WinForms también siguen existiendo