Por que C# não é só sobre Windows?
\n\nPor muito tempo, o C# foi associado exclusivamente ao ecossistema Microsoft e ao Windows. Desenvolvedores que queriam programar para Linux ou macOS olhavam para Java, Python ou JavaScript. Mas os tempos mudaram. Com o lançamento do .NET Core (e depois .NET 5/6/7/8), a Microsoft deu um passo decisivo em direção ao mundo do código aberto e da multiplataforma.
\n\nHoje, o C# é uma linguagem poderosa e moderna com a qual você pode criar de tudo: desde utilitários de console para servidores Linux até aplicativos móveis para iOS e Android. E tudo isso com uma única linguagem, uma única IDE (Rider ou VS Code) e, o mais importante, com uma lógica de negócios unificada.
\n\nNeste artigo, vamos explorar quais tecnologias permitem escrever aplicativos multiplataforma em C#, compará-las, mostrar código real e dar dicas práticas. Se você acha que C# é "só para Windows", prepare-se para se surpreender.
\n\nA evolução da multiplataforma no .NET
\n\nO caminho do C# para a multiplataforma foi longo. Vamos relembrar os principais marcos:
\n\n- \n
- Mono (2004) — a primeira implementação open-source do .NET Framework para Linux. Funcionava, mas com limitações. \n
- Xamarin (2011) — permitiu escrever aplicativos móveis em C# para iOS e Android. Um verdadeiro avanço. \n
- .NET Core (2016) — um framework totalmente reescrito, modular e multiplataforma. Código aberto. \n
- .NET 5+ (2020) — unificação de todos os ramos: .NET Framework, .NET Core e Xamarin se fundiram em um único .NET. \n
- .NET MAUI (2022) — a evolução do Xamarin.Forms para criar UIs nativas para todas as plataformas. \n
Agora, em 2024, temos um conjunto de ferramentas maduro para desenvolvimento em qualquer plataforma. Vamos dar uma olhada nas principais opções.
\n\nPrincipais tecnologias de desenvolvimento multiplataforma em C#
\n\nA escolha da tecnologia depende do que exatamente você está desenvolvendo. Vamos destacar quatro direções principais:
\n\n1. .NET MAUI — aplicativos móveis e desktop nativos
\n\n.NET MAUI (Multi-platform App UI) é um framework para criar interfaces de usuário que funcionam em Android, iOS, macOS, Windows e (experimentalmente) Linux. Você escreve a marcação XAML e a lógica C# uma vez e obtém aplicativos nativos como resultado.
\n\nExemplo de código: um aplicativo contador simples
\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="Olá, multiplataforma!"\n FontSize="32"\n HorizontalOptions="Center"/>\n <Label x:Name="CounterLabel"\n Text="0"\n FontSize="48"\n HorizontalOptions="Center"/>\n <Button Text="Clique em mim"\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á sem alterações em um iPhone, smartphone Android, MacBook e PC com Windows. Para Linux, será necessária uma configuração adicional, mas a comunidade está trabalhando ativamente nisso.
\n\n2. Avalonia UI — desktop para Windows, Linux e macOS com design único
\n\nAvalonia é um framework open-source inspirado no WPF, mas totalmente multiplataforma. Sua principal característica: ele não emula controles nativos, mas desenha sua própria interface através do SkiaSharp. Isso dá total