Warum C# nicht nur Windows bedeutet?
\n\nLange Zeit wurde C# ausschließlich mit dem Microsoft-Ökosystem und Windows assoziiert. Entwickler, die für Linux oder macOS schreiben wollten, schauten in Richtung Java, Python oder JavaScript. Aber die Zeiten haben sich geändert. Mit der Veröffentlichung von .NET Core (und später .NET 5/6/7/8) hat Microsoft einen entscheidenden Schritt in die Welt von Open Source und Plattformunabhängigkeit gemacht.
\n\nHeute ist C# eine leistungsstarke, moderne Sprache, mit der man alles erstellen kann: von Konsolen-Dienstprogrammen für Linux-Server bis hin zu mobilen Anwendungen für iOS und Android. Und das mit einer Sprache, einer IDE (Rider oder VS Code) und, was wichtig ist, einer einheitlichen Geschäftslogik.
\n\nIn diesem Artikel werden wir uns ansehen, welche Technologien es ermöglichen, plattformübergreifende Anwendungen in C# zu schreiben, sie vergleichen, echten Code zeigen und praktische Tipps geben. Wenn Sie denken, dass C# "nur für Windows" ist, machen Sie sich auf Überraschungen gefasst.
\n\nDie Entwicklung der Plattformunabhängigkeit in .NET
\n\nDer Weg von C# zur Plattformunabhängigkeit war lang. Erinnern wir uns an die wichtigsten Meilensteine:
\n\n- \n
- Mono (2004) — die erste Open-Source-Implementierung des .NET Framework für Linux. Es funktionierte, aber mit Einschränkungen. \n
- Xamarin (2011) — ermöglichte das Schreiben mobiler Anwendungen in C# für iOS und Android. Ein echter Durchbruch. \n
- .NET Core (2016) — ein komplett neu geschriebenes, modulares, plattformübergreifendes Framework. Open Source. \n
- .NET 5+ (2020) — Vereinheitlichung aller Zweige: .NET Framework, .NET Core und Xamarin wurden zu einem einzigen .NET zusammengeführt. \n
- .NET MAUI (2022) — die Weiterentwicklung von Xamarin.Forms zur Erstellung nativer Benutzeroberflächen für alle Plattformen. \n
Im Jahr 2024 haben wir nun ein ausgereiftes Toolkit für die Entwicklung für beliebige Plattformen. Werfen wir einen Blick auf die wichtigsten Optionen.
\n\nWichtigste Technologien für die plattformübergreifende Entwicklung mit C#
\n\nDie Wahl der Technologie hängt davon ab, was genau Sie entwickeln. Wir heben vier Hauptrichtungen hervor:
\n\n1. .NET MAUI — native mobile und Desktop-Anwendungen
\n\n.NET MAUI (Multi-platform App UI) ist ein Framework zur Erstellung von Benutzeroberflächen, die auf Android, iOS, macOS, Windows und (experimentell) Linux funktionieren. Sie schreiben XAML-Markup und C#-Logik einmal und erhalten native Anwendungen.
\n\nCodebeispiel: Einfache Zähler-Anwendung
\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="Hallo, plattformübergreifend!"\n FontSize="32"\n HorizontalOptions="Center"/>\n <Label x:Name="CounterLabel"\n Text="0"\n FontSize="48"\n HorizontalOptions="Center"/>\n <Button Text="Drück mich"\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\nDieser Code funktioniert unverändert auf einem iPhone, Android-Smartphone, MacBook und Windows-PC. Für Linux ist eine zusätzliche Konfiguration erforderlich, aber die Community arbeitet aktiv daran.
\n\n2. Avalonia UI — Desktop für Windows, Linux und macOS mit einzigartigem Design
\n\nAvalonia ist ein Open-Source-Framework, das von WPF inspiriert ist, aber vollständig plattformübergreifend ist. Seine Hauptstärke: Es emuliert keine nativen Steuerelemente, sondern zeichnet seine eigene Oberfläche über SkiaSharp. Dies gibt volle