© thenatchdl/Shutterstock.com
Mit der Uno Platform 3.4 und .NET Core alle Geräte erreichen

Alle im Fokus


Die Uno Platform bietet die Möglichkeit, mit C#, XAML und .NET alle Devices und Systeme zu erreichen. Die Open-Source-Plattform entwickelt sich dynamisch weiter, kürzlich ist Version 3.4 erschienen. Dieser Artikel beleuchtet den aktuellen Stand.

Der Wunsch der Entwicklergemeinde, endlich den Traum zu verwirklichen, alle Geräte und Betriebssysteme aus einer Quellcodebasis zu erreichen, ist so alt wie Softwareentwicklung selbst (WORA: Write once, run anywhere). Für viele Zwecke sind Webapplikationen das Mittel der Wahl, denn ein Browser ist auf den meisten Geräten vorhanden. Muss man jedoch Software bereitstellen, die die Möglichkeiten der Geräte und Betriebssysteme besser nutzen bzw. mit der Hardware interagieren kann, muss man in Richtung nativer Entwicklung gehen. Die Cross-Platform-Entwicklung versucht den riesigen Aufwand zu minimieren, für jede Plattform separat zu entwickeln, indem man aus einer einzigen Quellcodebasis mehr oder weniger automatisch die Applikationen für die Zielsysteme generieren kann. Hier gibt es eine Reihe unterschiedlicher Ansätze und Technologien.

Die Uno Platform ist noch verhältnismäßig neu und stellt den Versuch dar, die Geräte- und Systemvielfalt mit Hilfe der Technologien aus dem Hause Microsoft, das heißt C# und XAML, in den Griff zu bekommen. Einen ersten Überblick über diese Plattform konnten Sie bereits im Artikel von Thomas Claudius Huber in Teil 4 der WinUI-3.0-Serie im Windows Developer [1] erhalten. In diesem Artikel beschäftigen wir uns nun nach einer kompakten Einführung mit den Details und werfen außerdem einen Blick auf die aktuelle Version 3.4.

Einordnung und Abgrenzung

Es gibt mehrere Ansätze, um mit C# und XAML Apps für die unterschiedlichen Zielsysteme zu erstellen. Am bekanntesten dürften Xamarin und Xamarin.Forms [2] sein. Xamarin bringt .NET Core und C# – also die Programmierlogik – auf unterschiedliche Zielsysteme, setzt jedoch beim User Interface weiterhin auf die nativen Plattformansätze. Xamarin.Forms geht hier einen deutlichen Schritt weiter und generiert aus einem generischen Code (XAML) den plattformspezifischen Code, beispielsweise für Android und iOS. Perspektivisch soll aus Xamarin das .NET Multi-Platform App UI (.NET MAUI) werden. Neu ist, dass .NET MAUI eine vereinfachte Projektstruktur aufweisen soll. Statt für jede Plattform ein eigenes Projekt zu erstellen, soll der gesamte Quellcode in ein einziges Projekt zusammengefasst werden. Man kann also die App mit einem Klick für jede gewünschte Zielplattform bereitstellen. Doch auch in .NET MAUI soll man stets Zugriff auf die nativen APIs der Betriebssysteme haben. Eine Übersicht zum Vergleich von Xamarin und .NET MAUI findet man unter [3].

Ein weiterer Ansatz ist Avalonia UI [4]. Mit dem Framework kann man ebenso Anwendungen für Windows, macOS und Linux erstellen. Experimentell ist noch die Unterstützung für die mobilen Systeme Android und iOS. Die Oberfläche wird mittels eines XAML-Dialekts definiert, der an WPF angelehnt ist. Über ein Plug-in steht ein grafischer Designer in Visual Studio zur Verfügung. Avalonia verwendet die plattformübergreifende Grafik-Library Skia [5], um das generisch definierte User Interface auf das Zielsystem von Windows, macOS und Linux zu transportieren.

In dieser Auflistung von Technologien muss auch Blazor [6] erwähnt werden, mit dem .NET-Code in den Browser gebracht wird. Das User Interface wird mit HTML definiert und das Styling erfolgt mit CSS. Die Programmlogik wird jedoch mit C# und nicht mit JavaScript programmiert. Mit der Extension Mobile Blazor Bindings [7] steht ein noch weitergehender Ansatz bereit, eine Blazor-Web-App auch auf die mobilen Systeme Android und iOS zu bringen. Das bedeutet, dass man das Blazor-Programmiermodell und die Razor-Syntax verwenden kann, um User-Interface-Komponenten und die Logik einer App zu definieren. Die enthaltenen User-Interface-Komponenten basieren auf der Benutzeroberfläche von Xamarin.Forms, die wiederum zu angepassten, systemeigenen mobilen Apps führt.

Bleibt also noch die Uno Platform [8]. Auch Uno ist eine Technologie zum Erstellen von nativen mobilen, Desktop- und WebAssembly-Apps (WASM) mit C#-Code und XAML. Es ist eine Brücke zur Universal Windows Platform (UWP), um Windows-10-Apps auf Smartphones und Tablets (Android und iOS), andere Desktopsysteme (macOS und Linux) und in den Browser zu bringen. Es gibt eine Menge Überschneidungen zu Xamarin.Forms bzw. .NET MAUI, aber auch einige Unterschiede. Insbesondere die Browserunterstützung über WASM ist hier anders. Ein weiterer Unterschied besteht darin, dass bei Xamarin.Forms bzw. .NET MAUI die erstellten Apps das native User Interface der Zielplattform verwenden. Bei Uno wird dagegen die App plattformübergreifend mit einem einheitlichen User Interface ausgerollt, was Vorteile, aber auch Nachteile hat. Die Übereinstimmung zwischen dem generischen und plattformübergreifenden Entwurf des User Interface zur Designzeit und das identische Rendering auf das Zielsystem führt ...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang