.NET en Linux: Qué contraste

El .NET moderno ha madurado hasta convertirse en una plataforma multiplataforma sólida, y muchos desarrolladores informan que el desarrollo en C# ahora se siente casi idéntico en Windows y Linux, especialmente para trabajo de backend y web. Los comentaristas destacan herramientas mejoradas (VS Code con C# Dev Kit, JetBrains Rider, flujos de trabajo en contenedores) y motores de adopción importantes como Unity, mientras critican la estrategia inconsistente de Microsoft para marcos GUI nativos y UI web (MAUI, Blazor) y la falta de soporte de escritorio Linux de primera parte. Los marcos UI de terceros como Avalonia y Uno, junto con recuerdos de Mono y Delphi, subrayan cuánto de la innovación del ecosistema está ocurriendo fuera de la propia pila de UI de Microsoft.

.NET en el desarrollo de videojuegos

  • Unity se describe como un motor clave de adopción de C#/.NET fuera del uso “empresarial”, especialmente para desarrolladores que nunca tocan herramientas de Microsoft.
  • Se critica a Unity por seguir atascado en un viejo fork de Mono; algunos señalan el trabajo en curso para pasar a un runtime moderno de .NET y el soporte actual para C# 9 y .NET Standard 2.x.
  • IL2CPP se usa ampliamente (especialmente en móvil/consola), mejorando el rendimiento y el anti-cheat, pero un comentarista señala que en realidad puede facilitar el modding debido a los metadatos expuestos.
  • Se destacan alternativas como Godot con C# y la depuración en Visual Studio como beneficiadas por el runtime y las herramientas modernas de Microsoft.

GUI multiplataforma: MAUI, Avalonia, Uno, WPF

  • Varios comentarios califican la historia de GUI multiplataforma de Microsoft como débil o inestable con el tiempo.
  • MAUI es la solución oficial “más reciente”, pero se la critica: buggy, débil para escritorio y, de forma notable, sin soporte para Linux, algo que algunos ven como un desprecio simbólico hacia Linux como ciudadano de primera clase.
  • Avalonia y Uno se recomiendan repetidamente como marcos de UI multiplataforma de facto que realmente funcionan en Linux; a menudo se elogia a Avalonia por estar “muy por delante” de MAUI.
  • Algunos aún gustan de WPF; se cita Avalonia XPF (WPF en Linux/macOS) como algo atractivo.

Estado de .NET y las herramientas en Linux

  • Hay consenso en que la historia del runtime multiplataforma de .NET ahora es sólida, especialmente desde .NET Core 3.1 y con .NET 8.
  • VS Code con el C# Dev Kit se ve como “suficientemente bueno”, pero muchos sostienen que JetBrains Rider ofrece una experiencia C# significativamente mejor y más escalable en Linux y macOS.
  • La licencia del Dev Kit (gratis solo en escenarios tipo comunidad) se considera una desventaja.
  • Algunos sienten que Microsoft limita deliberadamente la paridad de VS Code para mantener a Visual Studio como producto insignia.

Blazor y posicionamiento de la pila web

  • Blazor recibe opiniones mixtas: algunos lo llaman un “desastre” frente a Next.js/Remix/Svelte; otros dicen que Blazor Server es excelente en escenarios específicos de “HTML over the wire” donde no tener una API separada es valioso.
  • Existe la preocupación de que la falta de una historia competitiva de front-end web en .NET esté empujando a los clientes hacia pilas JavaScript/TypeScript, alejándolos de IIS/Windows/SQL Server.

Migración y compatibilidad hacia atrás

  • Las experiencias de migración de ASP.NET Framework a ASP.NET Core están divididas: algunos informan transiciones relativamente fluidas salvo por ciertas bibliotecas y WCF; otros la describen como altamente no trivial, con grandes cambios de API y marcos ausentes (WebForms, OData antiguo, bundling).
  • Una perspectiva es que Microsoft “cerró en falso” grandes aplicaciones heredadas, obligando a reescrituras costosas y erosionando la confianza en comparación con su reputación histórica de compatibilidad hacia atrás.

WSL2, uso corporativo y flujo de trabajo del desarrollador

  • Se elogia WSL2 por hacer tolerable Windows y habilitar un buen flujo de trabajo de desarrollo basado en Linux (especialmente con VS Code y Docker), pero varios señalan que los entornos corporativos a menudo prohíben WSL2 y a veces Docker.
  • Algunos desarrolladores prefieren Linux puro para .NET por mejores herramientas de CLI y por incomodidad con PowerShell.

Ecosistema, licencias y expectativas de OSS

  • Varios comentarios sostienen que .NET en sistemas no Windows está impulsado principalmente por necesidades de Azure/nube más que por verdaderas ambiciones de escritorio de primera clase.
  • Se hacen comparaciones con ecosistemas Java: IDEs gratuitos y completos (IntelliJ Community, Eclipse, NetBeans) frente a las herramientas más comercializadas de .NET y las funciones “pro” restringidas en el C# Dev Kit de VS Code.
  • La ausencia de una GUI Linux de primera parte en MAUI se contrasta con esfuerzos FOSS como Avalonia/Uno, lo que lleva a afirmar un trato de “segunda clase” para Linux. Otros responden que muchos lenguajes (Go, Java) tampoco tienen GUIs oficiales potentes, pero no reciben la misma crítica.

Contexto histórico de Mono y nostalgia

  • Varios recuerdan con nostalgia la era de Mono, cuando ejecutar .NET en Linux era novedoso y comunitario, y señalan que las primeras reacciones de Microsoft y de parte de la comunidad fueron negativas.
  • Hay la sensación de que, a pesar de las mejoras técnicas actuales, persisten cierta desconfianza y escepticismo de la comunidad desde esa historia.