C# en todas partes: cómo escribir aplicaciones multiplataforma sin dolor

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Por qué C# no es solo para Windows?

\n\n

Durante 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\n

Hoy 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\n

En 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\n

Evolución de la multiplataforma en .NET

\n\n

El 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
\n\n

Ahora, en 2024, tenemos un conjunto de herramientas maduro para el desarrollo en cualquier plataforma. Veamos las principales opciones.

\n\n

Tecnologías principales para el desarrollo multiplataforma en C#

\n\n

La elección de la tecnología depende de qué estás escribiendo exactamente. Destacaremos cuatro direcciones principales:

\n\n

1. .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\n

Ejemplo 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\n

Este 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\n

2. Avalonia UI — escritorio para Windows, Linux y macOS con diseño único

\n\n

Avalonia 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

Blogs

Book Recommendations