¿Por qué C# no es solo para Windows?
\n\nDurante mucho tiempo, C# se asoció exclusivamente con el ecosistema de Microsoft y Windows. Los desarrolladores que querían escribir para Linux o macOS miraban hacia Java, Python o JavaScript. Pero los tiempos han cambiado. Con el lanzamiento de .NET Core (y luego .NET 5/6/7/8), Microsoft dio un paso decisivo hacia el mundo del código abierto y la multiplataforma.
\n\nHoy en día, C# es un lenguaje potente y moderno con el que se puede crear de todo: desde utilidades de consola para servidores Linux hasta aplicaciones móviles para iOS y Android. Y todo con un solo lenguaje, un solo IDE (Rider o VS Code) y, lo que es importante, con una lógica de negocio unificada.
\n\nEn este artículo, analizaremos qué tecnologías permiten escribir aplicaciones multiplataforma en C#, las compararemos, mostraremos código real y daremos consejos prácticos. Si crees que C# es "solo para Windows", prepárate para sorprenderte.
\n\nEvolución de la multiplataforma en .NET
\n\nEl camino de C# hacia la multiplataforma fue largo. Recordemos los hitos principales:
\n\n- \n
- Mono (2004) — la primera implementación open-source de .NET Framework para Linux. Funcionaba, pero con limitaciones. \n
- Xamarin (2011) — permitió escribir aplicaciones móviles en C# para iOS y Android. Un verdadero avance. \n
- .NET Core (2016) — un framework multiplataforma, modular y completamente reescrito. Código abierto. \n
- .NET 5+ (2020) — unificación de todas las ramas: .NET Framework, .NET Core y Xamarin se fusionaron en un solo .NET. \n
- .NET MAUI (2022) — la evolución de Xamarin.Forms para crear interfaces de usuario nativas para todas las plataformas. \n
Ahora, en 2024, tenemos un conjunto de herramientas maduro para el desarrollo en cualquier plataforma. Veamos las principales opciones.
\n\nTecnologías principales para el desarrollo multiplataforma en C#
\n\nLa elección de la tecnología depende de qué estás escribiendo exactamente. Destacaremos cuatro direcciones principales:
\n\n1. .NET MAUI — aplicaciones nativas móviles y de escritorio
\n\n.NET MAUI (Multi-platform App UI) es un framework para crear interfaces de usuario que funcionan en Android, iOS, macOS, Windows y (experimentalmente) Linux. Escribes el marcado XAML y la lógica C# una vez, y obtienes aplicaciones nativas.
\n\nEjemplo de código: una aplicación contadora simple
\n\n<!-- MainPage.xaml -->\n<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"\n xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"\n x:Class="MauiApp1.MainPage">\n <VerticalStackLayout Padding="30" Spacing="25">\n <Label Text="¡Hola, multiplataforma!"\n FontSize="32"\n HorizontalOptions="Center"/>\n <Label x:Name="CounterLabel"\n Text="0"\n FontSize="48"\n HorizontalOptions="Center"/>\n <Button Text="Púlsame"\n Clicked="OnCounterClicked"\n HorizontalOptions="Center"/>\n </VerticalStackLayout>\n</ContentPage>\n\n// MainPage.xaml.cs\nnamespace MauiApp1;\n\npublic partial class MainPage : ContentPage\n{\n private int _count = 0;\n\n public MainPage()\n {\n InitializeComponent();\n }\n\n private void OnCounterClicked(object sender, EventArgs e)\n {\n _count++;\n CounterLabel.Text = _count.ToString();\n }\n}\n\nEste código funcionará sin cambios en un iPhone, un smartphone Android, un MacBook y una PC con Windows. Para Linux se requiere configuración adicional, pero la comunidad está trabajando activamente en ello.
\n\n2. Avalonia UI — escritorio para Windows, Linux y macOS con diseño único
\n\nAvalonia es un framework open-source inspirado en WPF, pero completamente multiplataforma. Su principal característica: no emula controles nativos, sino que dibuja su propia interfaz a través de SkiaSharp. Esto da un control