Sie sind hier:
Lexikon/Glossar
Telefon (Mo-Fr 9-16 Uhr):
+49 (0)201 649590-50
|
Kontaktformular
Buy me a coffee
MENU
Start
Hauptseite
Angebote im Überblick
Kernkompetenzen
Softwareentwicklung
Beratung
Firmen-Schulungen
Offene Seminare
Online-Maßnahmen
Vorträge
Coaching
Support
Fachbücher
Fachartikel
Konditionen
Themen
Kernkompetenzen
Aktuelle Themen
Web & Cloud
Apps / Mobilplattformen
Benutzeroberflächen / User Experience
.NET
JavaScript / TypeScript
Java
Programmiersprachen
Entwicklungswerkzeuge
Scripting
Softwareengineering
Datenbanken / Reporting / BI
Betriebssysteme & Virtualisierung
Microsoft Server-Produkte
Windows & Office für Anwender
Soft Skills & IT-Recht
Beratung
Beratungsthemen
Coaching
Softwareentwicklung
Technischer Support
Unsere Top-Berater
Referenzkunden
Angebotsanfrage
Individuelle Schulungen
1026 Schulungsthemen
Agendakonfigurator
Weiterbildungsphilosophie
Didaktische Konzepte
Vor Ort oder online
Unsere Top-Trainer
Referenzkunden
Teilnehmerfeedback
Angebotsanfrage
Offene Seminare
.NET-Akademie
.NET/C#-Basisseminar
WPF
WinUI
.NET MAUI
Blazor
ASP.NET WebAPI & gRPC
Entity Framework Core
Unit Testing / TDD
PowerShell
Infotage
Wissen
Übersicht
Fachbücher
Fachartikel
Konferenzvorträge
Konferenzen/Events
Spickzettel
Lexikon/Glossar
Programmcodebibliothek
Versionshistorie
Weblog
Downloads
Newsletter
Community-/Leserportal
Registrierung
.NET/C#/Visual Studio
.NET 10.0
.NET 9.0
.NET 8.0
ASP.NET (Core)/Blazor
PowerShell
Über uns
Kontakt
Selbstdarstellung
Kernkompetenzen
Dr. Holger Schwichtenberg
Top-Experten
Leitung & Kundenteam
Referenzkunden
Kundenaussagen
Referenzprojekte
Partner
Konditionen
Stellenangebote
Weitere Websites
Impressum
Datenschutzerklärung, Haftung, Urheberrecht, Barrierefreiheit
Suche
Themenkatalog
Tag Cloud
Volltextsuche
Site Map
FAQs
Erklärung des Begriffs: Uno Platform
Zur Stichwortliste unseres Lexikons
Was ist
Uno Platform
?
Uno Platform ist ein Framework zur Entwicklung von
Cross-Platform
-Lösungen auf Basis .NET, C# und
XAML
.
Open Source
, kostenfrei; Beratung, Support und Training kosten aber.
Die Oberflächenbeschreibung erfolgt mit der
XML
-basierten "
eXtensible Application Markup Language
" (
XAML
)
Der eingesetzte
XAML
-Dialekt ist UWP-
XAML
(WinUI 2) oder WinUI3.
Plattformen
Windows 10
iOS
Android
macOS
Webbrowser
auf Basis von
WebAssembly
Linux
(seit v3, 12.8.2020)
Aussagen von Uno über Uno
"
Universal Windows Platform
Bridge"
"pixel-perfect UI and UX"
"It provides the full API definitions of the UWP
Windows 10
2004 (19041), and the implementation of parts of the UWP API, such as Windows.UI.Xaml, to enable UWP applications to run on these platforms. "
"Uno is not meant to be a complete replacement of all the native UI frameworks."
Details zur Uno Platform
Die Uno Platform ist ein weiteres
Cross-Platform
-GUI-Framework für .NET und der direkte Mitbewerber von Avalonia. Die Uno Platform gibt es seit dem Jahr 2018 als ein
Open Source
-Projekt der gleichnamigen kanadischen Firma mit Sitz in Montréal mit 30 Mitarbeitern
https://platform.uno/about-us.
Uno-Anwendungen laufen auf Windows (ab
Windows 7
),
Linux
Desktop (alle
Linux
-Distributionen, auf denen
.NET 7.0
oder höher läuft), macOS (Desktop und Catalyst, ab Version 10.15),
iOS
(ab Version 11),
Android
(ab Version 5) und im Browser (in allen
WebAssembly
-fähigen Browsern) sowie Tizen. Tizen erscheint jedoch weder in der Plattform-
Liste
auf
https://github.com/unoplatform/uno
noch
https://platform.uno/docs/articles/getting-started/requirements.html
, obwohl es ein aktuelles NuGet-Paket dazu vom Uno-Team gibt:
https://www.nuget.org/packages/Uno.WinUI.Runtime.Skia.Tizen
Uno basiert wie die
Windows Presentation Foundation
(WPF), die
Windows UI Library
(WinUI), WinUI3,
.NET Multi-Platform App UI
(
MAUI
) und Avalonia/
Avalonia XPF
auf der
eXtensible Application Markup Language
(
XAML
). Die Syntax orientiert sich aber nicht an WPF, sondern streng an WinUI. Entwicklerinnen und Entwickler haben bei Uno die Wahl, dabei zwischen der Kompatibilität zu UWP mit WinUI2 im Namensraum Windows.UI.Xaml oder WinUI3 im Namensraum Microsoft.UI.Xaml zu sein. Daher gibt es zwei Uno-Pakete: Uno.UI für UWP-
XAML
https://www.nuget.org/packages/Uno.UI
und Uno.WinUI für WinUI3-
XAML
https://www.nuget.org/packages/Uno.WinUI.
Da das Uno-Entwicklungsteam Uno.WinUI automatisiert aus Uno.UI erzeugt, sind die Funktionen beider Pakete nahezu identisch.
In beiden Fällen ist Uno aber nicht zu 100% identisch zu Microsofts Oberflächen. Es fehlen in Uno zum Beispiel die
Steuerelement
e
ListBox
, MapControl, Hub, SemanticZoom, RichTextBlock, VirtualizingStack
Panel
, ParallaxView und AnnotatedScrollBar. Eine vollständige Abweichungsliste findet man unter
https://platform.uno/docs/articles/implemented-views.html.
Auch bei der
XAML
-Syntax gibt es marginale Unterschiede
https://platform.uno/docs/articles/api-differences.html.
So ist DependencyObject in Uno eine Schnittstelle statt einer Klasse wie bei Microsoft. Auf
Android
,
iOS
und macOS weicht die
Vererbung
sfolge für die Basisklasse UIElement ab von der Implementierung von Microsoft.
Das Rendering in Uno basiert wie bei Avalonia auf der Skia Graphics Library von
Google
https://skia.org
via SkiaSharp aus dem Mono-Projekt
https://github.com/mono/SkiaSharp.
Auf Windows steht alternativ auch das
Windows App SDK
zur Verfügung, dann läuft die Anwendung aber erst ab
Windows 10
(Version 19041). Auf Windows verwendet Uno eine WPF-Anwendung als Shell. Das bedeutet, dass die in Uno mögliche
Native AOT
-Kompilierung nicht auf Windows funktioniert, da die verwendete WPF-Shell nicht kompatibel zu NativeAOT ist. Im Browser wird
XAML
nach HTML und
CSS
umgesetzt inklusive einer
JavaScript
-Bibliothek für die Brücke zwischen
WebAssembly
und DOM.
Die Migration von WinUI3 auf Uno ist in vielen Fällen einfach. Aufrufe von Windows-spezifischen APIs (z.B. Microsoft.UI.Win32Interop) müssen dann durch plattformspezifische Kompilierung behandelt werden (#if WINDOWS … #endif). Die Dokumentation von Uno bietet neben Hinweisen zum Umstieg von UWP/WinUI2 und WinUI3 auch Hilfen zur Migration von WPF
https://platform.uno/docs/articles/wpf-migration.html
, von
Xamarin.Forms
https://platform.uno/docs/articles/guides/xf-migration/overview.html
und sogar Silverlight
https://platform.uno/docs/articles/guides/silverlight-migration/silverlight-migration-landing.html
zu Uno an.
WinUI3-
Steuerelement
e von Drittanbietern haben in der Regel Abhängigkeiten von Windows-Betriebssystem-APIs, die in einer Uno-Anwendung nur auf Windows funktionieren können. So gibt es in der Uno-Dokumentation zwar einen Beitrag "How to use
Windows Community Toolkit
", in der dann aber der enttäuschende Satz steht: "While all
Windows Community Toolkit
packages are supported for UWP and WinAppSDK, this is not the case for the other platforms Uno Platform supports.". Es gab zaghafte Ansätze von
Komponente
nanbieter, spezielle
Steuerelement
e für Uno zu erschaffen, z.B. bei Syncfusion
https://www.syncfusion.com/forums/176644/syncfusion-uno-platform-support
und Infragistics
https://platform.uno/blog/infragistics-announces-uno-platform-specific-ui-controls/
, die aber bisher nicht in stabile Produkte mündeten.
Da ein
Komponente
nmarkt für Uno also bisher nicht in Schwung kommt, bietet Uno als Rettungsanker an, in Uno auch .NET
MAUI
-
Steuerelement
e (auch von Drittanbietern) zu verwenden. Dazu gibt es das in der Projektassistenten auswählbare Feature ".NET
MAUI
Embedding". Die Anwendung läuft dann aber nur noch auf den Plattformen, wo .NET
MAUI
läuft:
iOS
,
Android
, MacOS und Windows.
Linux
und der
Webbrowser
sind dann raus.
Neben
XAML
bietet Uno zur Definition der Oberflächen auch eine Fluent-API-Syntax in C# an:
https://platform.uno/docs/articles/external/uno.extensions/doc/Learn/Markup/Overview.html
Außerdem gibt es zehn Erweiterungen als NuGet-Pakete
https://platform.uno/docs/articles/external/uno.extensions/doc/ExtensionsOverview.html
zum Beispiel für Eingabevalidierung,
Authentifizierung
, Protokollierung, Navigation und
Lokalisierung
sowie das das stark vereinfachte
Entwurfsmuster
Model-View-Update-eXtended (MVUX) als Alternative zu Model-View-ViewModel (
MVVM
). Ebenso gibt es ein Paket für Oberflächentests
https://github.com/unoplatform/Uno.UITest
, das aber nur Uno auf
WebAssembly
funktioniert. Diese Erweiterungen sind bereits im Uno Platform
Template
Wizard
wählbar. Der Uno-Projektanlageassistent ist dem von Avalonia optisch sehr ähnlich, besitzt aber deutlich mehr wählbare Optionen.
Uno-Erweiterungen gibt es für folgende
Entwicklungsumgebung
en:
Visual Studio:
https://marketplace.visualstudio.com/items?itemName=unoplatform.uno-platform-addin-2022)
Visual Studio Code
:
https://marketplace.visualstudio.com/items?itemName=unoplatform.vscode)
Rider
:
https://plugins.jetbrains.com/plugin/24653-uno-platform
In diesen
Entwicklungsumgebung
en stehen Projektvorlagen,
XAML
-Eingabeunterstützung und Hot Reloading zur Verfügung, wobei es in der Dokumentation umfangreiche Tabellen gibt
https://platform.uno/docs/articles/studio/Hot%20Reload/hot-reload-overview.html
, in welcher Konstellation aus Betriebssystem und
Entwicklungsumgebung
Hot Reloading verfügbar ist. Die aktuelle Projektvorlage arbeitet mit
Multi-Targeting
.
Einen
XAML
-Previewer im
XAML
-Editor wie bei Avalonia bietet Uno nicht. Der
XAML
-Live-Preview beim
Debugging
in Visual Studio funktioniert aber. Einen grafischen Designer unter dem Namen "Hot Design" hat Uno angekündigt; man kann sich derzeit auf eine Warteliste setzen:
https://platform.uno/hot-design.
Anders als andere
WYSIWYG
-Designer soll der kommende Designer auf der laufenden Anwendung arbeiten.
Auch die Uno Platform hat veralterte Inhalte auf der Website, zum Beispiel heißt es auf
https://platform.uno/docs/articles/uwp-vs-winui3.html
, dass
WinUI3 bald erscheinen wird. WinUI3 1.0 ist bereits am 16.11.2021 erschienen.
Microsoft UWP auf dem Stand
.NET 5.0
eingefroren hat. Das ist seit der Ankündigung von UWP für
.NET 9.0
am 11.9.2024 überholt.
https://devblogs.microsoft.com/ifdef-windows/preview-uwp-support-for-dotnet-9-native-aot/
Auf der Webseite
https://platform.uno/docs/articles/net-version-support.html
steht, die maximale .NET-Version für Uno mit dem alten UWP wäre
.NET Standard
2.0. Die Projektvorlage trägt aber
.NET 6.0
im Namen.
Querverweise zu anderen Begriffen im Lexikon
siehe
https://platform.uno
eXtensible Application Markup Language (XAML)
Windows Presentation Foundation (WPF)
Universal Windows Platform (UWP)
.NET Multi-Platform App UI (MAUI)
Windows Community Toolkit
Entwicklungsumgebung
Windows UI Library (WinUI)
Visual Studio Code (VSCode)
Authentifizierung
Multi-Targeting
Windows App SDK (WASP)
Entwurfsmuster
Cross-Platform
.NET Standard
Xamarin.Forms
Lokalisierung
Steuerelement
Avalonia XPF
Open Source
WebAssembly (WASM)
Webbrowser
Native AOT (NAOT)
Komponente
JavaScript (JS)
Windows 10
Windows 7
Vererbung
Debugging
.NET 7.0 (.NET 7)
Template
.NET 6.0 (.NET 6)
.NET 5.0 (.NET 5)
.NET 9.0 (.NET 9)
ListBox
Android
Google
Wizard
Rider
Liste
Linux
Panel
iOS
What You See Is What You Get (WYSIWYG)
eXtensible Application Markup Language (XAML)
Model-View-ViewModell (MVVM)
.NET Multi-Platform App UI (MAUI)
Cascading Style Sheet (CSS)
Extensible Markup Language (XML)
Beratung & Support
Anfrage für Beratung/Consulting zu UNO PLATFORM
Gesamter Beratungsthemenkatalog
Technischer Support zum UNO PLATFORM
Schulungen
Uno Platform - Cross-Plattform-GUI-Anwendungen mit .NET und XAML
Anfrage für eine individuelle Schulung zum Thema UNO PLATFORM
Gesamter Schulungsthemenkatalog
Fachbücher
Blazor 10.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 10.0, C# 14.0 und Visual Studio 2026
C# 14.0 Crashkurs
Moderne Datenzugriffslösungen mit Entity Framework Core 10.0
.NET 10.0 Update: Die Neuerungen in .NET 10.0 gegenüber .NET 9.0
Blazor 9.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 9.0, C# 13.0 und Visual Studio 2022
C# 13.0 Crashkurs
Cross-Plattform-Apps mit .NET MAUI entwickeln
Moderne Datenzugriffslösungen mit Entity Framework Core 9.0
.NET 9.0 Update: Die Neuerungen in .NET 9.0 gegenüber .NET 8.0
PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
.NET 8.0 Update: Die Neuerungen in .NET 8.0 gegenüber .NET 7.0
Concurrency with Modern C++: What every professional C++ programmer should know about concurrency
C++20: Get the Details
Blazor 8.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 8.0, C# 12.0 und Visual Studio 2022
Moderne Datenzugriffslösungen mit Entity Framework Core 8.0
C# 12.0 Crashkurs
App-Entwicklung für Mobile und Desktop: Software Engineering mit .NET MAUI und Comet für iOS, Android, Windows und macOS
Cross-Plattform-Apps mit .NET MAUI entwickeln
Blazor 7.0: Blazor WebAssembly, Blazor Server und Blazor Hybrid
C# 11.0 Crashkurs
Moderne Datenzugriffslösungen mit Entity Framework Core 7.0
PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
C++ Core Guidelines Explained: Best Practices for Modern C++
App Engineering: SwiftUI, Jetpack Compose, .NET MAUI und Flutter
Vue.js 3 Crashkurs
Moderne Datenzugriffslösungen mit Entity Framework Core 6.0
Blazor 6.0: Blazor WebAssembly, Blazor Server und Blazor Desktop
C# 10.0 Crashkurs
Cross-Plattform-Apps mit Xamarin.Forms entwickeln
Developing Web Components with TypeScript: Native Web Development Using Thin Libraries
Alle unsere aktuellen Fachbücher
E-Book-Abo für ab 99 Euro im Jahr