Uno Platform – der unbekannte .NET Schatz?

News-Bote

Ich bring die Post
Uno Platform – der unbekannte .NET Schatz?

Unbenannte-Zeichnung-720x360.png


Das Anfang 2018 ins Leben gerufene Framework Uno mausert sich seitdem zu einem noch recht unbekannten Schatz an neuen Möglichkeiten im .NET-Universum. Anders als beispielsweise Xamarin richtet sich Uno vermehrt an UWP- und WinUI-Entwickler, um mit C# und bekannten XAML-Elementen plattformunabhängige Applikationen zu entwickeln. Durch den Open Source Ansatz der Uno-Plattform zählen neben Windows, Mac, Linux, iOS und Android auch Web Assembly zu den erreichbaren Zielen. Selbst für Mehrbildschirmgeräte wie dem Microsoft Surface Duo lassen sich Uno Applikationen entwickeln.

Unterschied zu Xamarin.Forms​


Der markanteste Unterschied zu Xamarin.Forms ist mitunter der XAML-Dialekt. Uno hält sich hier sehr strikt an WinUI beziehungsweise an den selbigen XAML-Dialekt, mit welchem Entwickler aus Universal Windows Platform, kurz UWP, Berührungen haben.

Ein weiterer Punkt ist die Marktpositionierung. Xamarin.Forms sieht sich selbst stark im mobilen Sektor im Sinne von Android und iOS. Die Uno-Plattform hat hier einen mehr generalistischen Ansatz gewählt. Somit bringt es Linux- und Webunterstützung von Haus aus bereits mit.

Dem Lebensalter geschuldet verfügt Uno jedoch noch über einen merkbar kleineren Entwicklerkreis als der defacto Framework-Bruder aus Redmond.

Ob Uno nun ein Konkurrent zu Xamarin.Forms oder MAUI ist, muss jeder für sich selbst entscheiden. In meinen Augen sprechen beide Frameworks unterschiedliche Zielgruppen an.

Uno hingegen versucht WinUI/ UWP XAML Entwickler abzuholen und führt Microsofts WinUI3 Projekt “Reunion” pragmatisch weiter.

Gewisse Features von Xamarin oder MAUI wie unter anderem Hot Reload suchte ich vergebens unter Uno. Dies kann aber auch an anderen Umständen meines Feldversuchs gelegen haben.

Freiheit des Entwicklungssystems​


Neben der Freiheit, auf welchen Geräten man Uno Applikationen ausführen möchte, hat man auch die Freiheit, mit welchem Betriebssystem man diese entwickeln möchte als auch mit in welcher Entwicklungsumgebung.

Auf der Seite des Frameworks findet man eine Übersicht, gestaffelt nach Betriebssystem und Entwicklungsumgebung, mit welcher Kombination welche Zielplattformen möglich sind.

Offiziell unterstützt werden Plugins für Microsoft Visual Studio, VS for Mac und JetBrains Rider IDEs. Wer mit mehr manueller Terminalarbeit zurecht kommt, kann auch Visual Studio Code nutzen. Aufgrund einer starken Verzahnung mit der dotnet-CLI lassen sich Uno Apps in jeder Umgebung und mit jedem Editor entwickeln, welche .NET unterstützen.

Meine Meinung: Nichts für komplette Anfänger​


Dieser Punkt ist kontrovers. Für mich ist die Entwicklung mit dem Uno Framework nichts, mit welchem kompletten Anfänger ihre spannende Reise durch die Welt der Softwareentwicklung beginnen sollten.

Einerseits sollte man in meinen Augen die Zusammenhänge der einzelnen Bestandteile wie .NET, WinUI, Build Targets und Co. verstehen, als auch den Umgang mit dem Terminal in Hinsicht auf das dem Verständnis welche Befehle man ausführt, um beispielsweise Uno und dessen Templates zu installieren.

Dies bedeutet nicht, dass es Uno einen explizit schwer macht, nur ein “File -> New Project -> Uno” ist nicht vorhanden. In den Augen vieler erfahrener Entwickler ist dies eher einen Segen als ein Fluch.

Hilfe zum Start​


Ähnlich wie bei MAUI von Microsoft hat auch Uno ein kommandozeilenbasierendes Prüfwerkzeug, um das Betriebssystem und dessen Komponenten auf die Vollständigkeit der benötigten Bestandteile zur Verwendung des Uno Frameworks zu prüfen. Das kleine Tool “uno-check”, welches sich via dem „dotnet global“ –Befehl installieren lässt, hilft bei der Überprüfung der vorhandenen Komponenten auf dem System, auch gibt es Tipps, wie man etwaige Probleme beheben könnte. Das Werkzeug schlug auf meinen Systemen jedoch immer fehl beziehungsweise es installierte Versionen von .NET, welche sich noch in einem “Preview”-Zustand befanden. Wer sich nun mit den Zusammenhängen von .NET, GTK, Xamarin Tools for Android und anderen auskennt, kann diese wohl selbst per Hand lösen – für, wie oben beschrieben, Anfänger könnte hier jedoch Schluss sein.



Ich persönlich scheine auch noch hier zu viel Anfänger in mir zu haben, da die offizielle Anleitung unter MacOS als auch unter Windows nicht zu dem gewünschten Effekt geführt hat. Nichtsdestotrotz war es dennoch möglich, mittels Rider ein bau- und lauffähiges Uno Projekt anzulegen.

Was das Uno Framework alles leisten kann, wird einem bei einem Blick auf den eigenen Samples-Bereich der Webseite bewusst. Hier finden Interessierte eine kuratierte Liste mit Beispielanwendungen, welche mit dem Framework erstellt wurden, natürlich inklusive der dazugehörigen Quelltexte. Im Bereich „Showcases“ sind etliche kommerzielle Applikationen gelistet, welche ebenfalls auf der Plattform basieren.

Wer Uno einmal ausprobieren möchte, jedoch absolut keine Lust oder Möglichkeit hat es lokal zu installieren, kann dies auch im Web tun. Dank WASM-Support lässt sich mit Uno „Playground“ auch im Web experimentieren.

Native Oberflächendarstellungen (Themes)​


Anders als andere plattformunabhängige Möglichkeiten, Applikationen zu entwickeln bietet Uno dankenswerterweise verschiedene Themes, also Oberflächen, an, um die geschriebenen Programme wie aus einem Guss zum darunterliegenden Betriebssystem aussehen zu lassen.

Neben “Material”, was das Google Theme ist, existieren noch Fluent, was an Microsoft angelehnt ist, als auch Cupertino was der iOS Style ist.



Ein Austausch der Designs zur Laufzeit scheint für mich auf den ersten Blick weniger möglich, da jede plattformspezifische Darstellung sich in den Möglichkeiten der Konfiguration der einzelnen Komponenten stark unterscheiden kann. Hierfür bietet Uno eigene XAML-Attribute, um dennoch aus einem Stück Quellcode alle Zielplattformen bespielen zu können.

Ein Überblick, wie die jeweiligen Darstellungen der Komponenten aussehen, bietet die Webseite Uno Gallery.

Offene Community​


Die Entwicklung des Frameworks findet offen und transparent für jeden einsehbar auf GitHub statt.

Nicht nur zum anfänglichen Hineinschnuppern, sondern auch um Wissen auszutauschen, bietet Uno ebenfalls einen YouTube Kanal, einen Twitter Account als auch beispielsweise noch einen Discord Server an.

Somit stellt die Community etliche Ressourcen bereit, um den Start mit Uno zu wagen oder um dessen Zukunft aktiv mitzugestalten. Wer hingegen realen Menschen zum Folgen auf Social Media sucht, dem sei Sasha Krsmanovic (Twitter, LinkedIn) empfohlen. Sasha ist der Chief Marketing Office der Firma hinter dem Open Source Projekt und hat immer ein offenes Ohr.

Regelmäßig findet auch die hauseigene Messe „UnoConf“ statt. Aufzeichnungen und Informationen zu den vergangenen Jahren findet ihr auf der Seite unoconf.com.

Fazit​


All meine negativen Erfahrungen schiebe ich, wie erwähnt, auf meine Unerfahrenheit. Denn aus meiner Entwicklerblase wurde mir sehr oft ein positives Feedback zu Uno mitgeteilt. Wie erwähnt ist die Uno Platform vor allem für Entwickler interessant, welche bereits Wissen im Bereich UWP und WinUI aufgebaut haben. Uno ermöglicht es somit, dass diese erfahrenen Entwickler viele komplett neue und noch nicht bespielte Wiesen vor sich haben. Sei es nun Desktopsysteme außerhalb von Windows oder Mobile und Web via WASM.

Beachtenswert ist, dass, auch wenn im Hintergrund oft die branchenbekannte Firma Telerik zu sehen ist, all dies ein kleine kanadische Firma mit einem davorstehenden Open Source Community Projekt weit vor MAUI und ganz ohne Microsoft erreicht hat.

Aus diesem Grund ist für mich Uno der unbekannte Schatz im .NET Ökosystem – auch wenn ich diesen nicht ausgraben werde!

zum Artikel...
 
Oben