Sie sind hier:
Wissen
Telefon (Mo-Fr 9 bis 16 Uhr):
+49 (0)201 649590-50
|
Kontaktformular
Buy me a coffee
MENU
Medien
Übersicht
Lexikon/Glossar
Spickzettel
Weblog
Konferenzvorträge
Fachbücher
Fachartikel
Leserportal
Autoren gesucht!
Literaturtipps
Praxisnahe Fallbeispiele
Downloads
Newsletter
.NET
Startseite
.NET 8.0
.NET 7.0
.NET 6.0
.NET 5.0
.NET Core
.NET 4.0/4.5.x/4.6.x
.NET 3.0/3.5
.NET 2.0
.NET-Lexikon
Entwicklerwerkzeuge
Klassenreferenz
Softwarekomponenten
Windows Runtime
World Wide Wings-Demo
Versionsgeschichte
Codebeispiele
ASP.NET
Artikel
Bücher
Schulung & Beratung
Konferenzen/Events
ASP.NET
Startseite
Lexikon
Sicherheit
Konfiguration
Global.asax
Tracing
Technische Beiträge
Klassenreferenz
Entwicklerwerkzeuge
Softwarekomponenten
Forum
Schulung & Beratung
PowerShell
Startseite
Commandlet-Referenz
Codebeispiele
Commandlet Extensions
Versionsgeschichte
Schulungen+Beratung
Windows
Startseite
Windows Runtime (WinRT)
Windows PowerShell
Windows Scripting
Windows-Schulungen
Windows-Lexikon
Windows-Forum
Scripting
Startseite
Lexikon
FAQ
Bücher
Architektur
Skriptsprachen
Scripting-Hosts
Scripting-Komponenten
COM/DCOM/COM+
ADSI
WMI
WMI-Klassenreferenz
Scripting-Tools
WSH-Editoren
Codebeispiele
.NET-Scripting
Forum
Schulung & Beratung
Nutzer
Anmeldung/Login
Buchleser-Registrierung
Gast-Registrierung
Hilfe
Website-FAQ
Technischer Support
Site Map
Tag Cloud
Suche
Kontakt
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
nma
rkt
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)
Rocket (rkt)
Extensible Markup Language (XML)
Beratung & Support
Anfrage für Beratung/Consulting zu Uno Platform
Gesamter Beratungsthemenkatalog
Technischer Support zum Uno Platform
Schulungen zu diesem Thema
Uno Platform - Cross-Plattform-GUI-Anwendungen mit .NET und XAML
Anfrage für eine individuelle Schulung zum Thema Uno Platform
Gesamter Schulungsthemenkatalog
Bücher zu diesem Thema
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
.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
PowerShell – kurz & gut
C# 9.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET 5.0, .NET Core und Xamarin
ASP.NET Core Blazor 5.0: Blazor WebAssembly und Blazor Server - Moderne Single-Page-Web-Applications
Windows PowerShell 5 und PowerShell 7: Das Praxisbuch
Moderne Datenzugriffslösungen mit Entity Framework Core 5.0
ASP.NET Core Blazor 3.1/3.2: Blazor Server und Blazor Webassembly - Moderne Single-Page-Web-Applications mit .NET, C# und Visual Studio
ASP.NET Core Blazor 3.0/3.1: Blazor Server und Blazor Webassembly - Moderne Single-Page-Web-Applications mit .NET, C# und Visual Studio
Moderne Datenzugriffslösungen mit Entity Framework Core 3.1
C# 8.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin
Moderne Datenzugriffslösungen mit Entity Framework Core 3.0
Windows PowerShell 5.1 und PowerShell Core 6.1 - Das Praxishandbuch
Moderne Datenzugriffslösungen mit Entity Framework Core 2.1/2.2
Moderne Webanwendungen für .NET-Entwickler: Server-Anwendungen, Web APIs, SPAs & HTML-Cross-Platform-Anwendungen mit ASP.NET, ASP.NET Core, JavaScript
C# 7.3 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin
Modern Data Access with Entity Framework Core: Database Programming Using .NET, .NET Core, UWP, and Xamarin with C#
Modernes C++: Concurrency meistern
Windows PowerShell und PowerShell Core - Der schnelle Einstieg: Skriptbasierte Systemadministration für Windows, Linux und macOS
Programmierung in Python
C# 7.2 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin
Moderne Datenzugriffslösungen mit Entity Framework Core 2.0/2.1
Effizienter Datenzugriff mit Entity Framework Core: Datenbankprogrammierung mit C# für .NET Framework, .NET Core und Xamarin
Moderne Datenzugriffslösungen mit Entity Framework Core 2.0
Windows PowerShell 5 und PowerShell Core 6 - Das Praxishandbuch
Angular - Das Praxisbuch zu Grundlagen und Best Practices
Moderne Datenzugriffslösungen mit Entity Framework Core 1.0, 1,1 und 2.0
Moderne Datenzugriffslösungen mit Entity Framework Core 1.0, 1,1 und 2.0
Moderne Datenzugriffslösungen mit Entity Framework Core 1.1 und 2.0-Preview2
Moderne Datenzugriffslösungen mit Entity Framework Core 1.x und 2.0
Moderne Datenzugriffslösungen mit Entity Framework Core 1.x und 2.0
Moderne Datenzugriffslösungen mit Entity Framework Core 1.1
Introducing Regular Expressions: JavaScript and TypeScript
Introducing Web Development
Introducing Bootstrap 4
Programming Web Applications with Node, Express and Pug
Einführung in TypeScript: Grundlagen der Sprache TypeScript 2
Pug – Die Template-Engine für node.js
Web-Programmierung mit Node, Express und Pug
Windows PowerShell 5 – kurz & gut
Moderne Datenzugriffslösungen mit Entity Framework Core 1.1
Windows PowerShell 5.0 - Das Praxishandbuch
PHP 7 und MySQL: Von den Grundlagen bis zur professionellen Programmierung
Windows Scripting Lernen
.NET Praxis - Tipps und Tricks für .NET und Visual Studio
Grundlagen für Web-Entwickler: Protokolle, HTML und CSS
Bootstrap 3 - Stile und Komponenten
Bootstrap 4 - Stile und Komponenten
Einführung in JavaScript: ECMAScript 5
Einführung in node.js
express – Middleware für node.js
JADE – Die Template Engine für node.js
Reguläre Ausdrücke in JavaScript
Moderne Datenzugriffslösungen mit Entity Framework 6
C++ Standardbibliothek
AngularJS: Moderne Webanwendungen und Single Page Applications mit JavaScript
Microsoft SharePoint Server 2013 und SharePoint Foundation: Das umfassende Handbuch
SQL Server 2014 für Professionals: Hochverfügbarkeit, Cloud-Szenarien, Backup/Restore, Monitoring & Performance
Moderne Webanwendungen mit ASP.NET MVC und JavaScript
Windows PowerShell 4.0 - Das Praxishandbuch
JavaScript: Das umfassende Handbuch, inkl. HTML5, JavaScript-Frameworks, jQuery, OOP
C++11 für Programmierer
C++ kurz und gut
Microsoft ASP.NET 4.5 - Entwicklerbuch
Moderne Webanwendungen mit ASP.NET MVC
Verteilte Systeme und Services mit .NET 4.5
Scripting mit Windows PowerShell 3.0 - Der Workshop: Skript-Programmierung mit Windows PowerShell 3.0 vom Einsteiger bis zum Profi
Windows 8 für Administratoren
Windows 8.1 - Das Handbuch (27. November 2013)
Windows Store Apps entwickeln mit C# und XAML - Crashkurs
.NET 4.5 Update
Windows Scripting Lernen
WPF 4.5 und XAML
Datenbankprogrammierung mit .NET 4.5
C++11: Der Leitfaden für Programmierer zum neuen Standard
Verteilte Systeme und Services mit .NET 4.0
Microsoft ASP.NET 4.0 mit C# 2010 - Entwicklerbuch
Agile Software Engineering with Visual Studio
Datenbankprogrammierung mit .NET 4.0. Mit Visual Studio 2010 und SQL Server 2008 R2
Microsoft SharePoint Server 2010 und SharePoint Foundation 2010
Microsoft SQL Server 2008 R2 - Das Entwicklerbuch
Microsoft Viusal C# 2010
Office 2010 Programmierung mit VSTO und .NET 4.0: Word, Excel und Outlook erweitern und anpassen
Programmieren mit dem ADO.NET Entity Framework
.NET 4.0 Crashkurs
Visual Basic 2010: Grundlagen, ADO.NET, Windows Presentation Foundation
.NET 4.0 Update
Windows PowerShell 2.0 - Das Praxishandbuch
Windows 7 im Unternehmen
Agile Muster und Methoden
Ajax
ASP.NET 4.0
ASP.NET 4.0 mit Visual C# 2010
JavaScript
PHP 5-Migration
Scripting mit Windows PowerShell 2.0 - Der Einsteiger-Workshop
SQL Server 2008 R2: Das Programmierhandbuch. Inkl. ADO.NET 3.5, LINQ to Entities und LINQ to SQL
Visual Basic 2010
Windows PowerShell 2.0 - Crashkurs
Windows Server 2008 R2
Windows Scripting
Windows Scripting Lernen
Data Mining mit Microsoft SQL Server
Windows 7 für Administratoren
Microsoft ASP.NET 3.5 mit Visual Basic 2008 - Entwicklerbuch
.NET 3.5
Essential PowerShell
.NET 3.5 Crashkurs
Webanwendungen mit ASP.NET 3.5 und AJAX Crashkurs
Alle unsere aktuellen Fachbücher
E-Book-Abo für ab 99 Euro im Jahr