Was ist .NET MAUI?

.NET MAUI (Multi-Platform App UI) ist ein plattformübergreifendes Framework zum Erstellen nativer Mobil- und Desktop-Apps mit C# und XAML.

Mit .NET MAUI können Sie Apps entwickeln, die von einer einzigen, gemeinsam genutzten Codebasis aus auf Android, iOS, macOS und Windows ausgeführt werden können.

.NET MAUI supported platforms.

.NET MAUI ist Open-Source und ist die Weiterentwicklung von Xamarin.Forms, erweitert von mobilen auf Desktop-Szenarien, mit von Grund auf neu entwickelten UI-Steuerungen für Leistung und Erweiterbarkeit. Wenn Sie bereits Xamarin.Forms zum Erstellen plattformübergreifender Benutzeroberflächen verwendet haben, werden Sie viele Ähnlichkeiten mit .NET MAUI feststellen. Aber es gibt auch einige Unterschiede. Mithilfe von .NET MAUI können Sie Apps für mehrere Plattformen unter Verwendung eines einzelnen Projekts erstellen, aber Sie können, falls erforderlich, plattformspezifischen Quellcode und Ressourcen hinzufügen. Ein wesentliches Ziel von .NET MAUI ist es, einen möglichst großen Teil der App-Logik und des Benutzeroberflächenlayouts in einer einzigen Codebasis zu implementieren.

An wen sich .NET MAUI richtet

.NET MAUI richtet sich an Entwickler*innen, die:

  • Plattformübergreifende Apps in XAML und C# aus einer einzigen freigegebenen Codebasis in Visual Studio schreiben.
  • Plattformübergreifendes Freigeben von Benutzeroberflächenlayout und -design
  • Code, Tests und Geschäftslogik plattformübergreifend teilen.

Wie funktioniert .NET MAUI?

NET MAUI vereint Android-, iOS-, macOS- und Windows-APIs in einer einzigen API, die eine Write-Once-Run-Anywhere-Entwicklung ermöglicht und gleichzeitig umfassenden Zugriff auf alle Aspekte der jeweiligen nativen Plattform bietet.

.NET 6 oder höher bietet eine Reihe von plattformspezifischen Frameworks für die Erstellung von Apps: .NET Android, .NET iOS, .NET macOS und die Windows UI 3-Bibliothek (WinUI 3). Diese Frameworks haben alle Zugriff auf die gleiche .NET Base Class Library (BCL). Diese Bibliothek abstrahiert die Details der zugrunde liegenden Plattform von Ihrem Code. Die BCL benötigt die .NET-Runtime, um die Ausführungsumgebung für Ihren Code bereitzustellen. Für Android, iOS und macOS wird die Umgebung von Mono implementiert, einer Implementierung der .NET-Laufzeitumgebung. Unter Windows stellt .NET CoreCLR die Ausführungsumgebung bereit.

Die BCL ermöglicht es Apps, die auf verschiedenen Plattformen ausgeführt werden, dieselbe allgemeine Geschäftslogik zu nutzen. Allerdings definieren die verschiedenen Plattformen die Benutzeroberfläche für eine App auf unterschiedliche Weise, und sie stellen verschiedene Modelle für die Festlegung, wie die Elemente einer Benutzeroberfläche kommunizieren und zusammenarbeiten, bereit. Sie können die Benutzeroberfläche für jede Plattform separat erstellen, indem Sie das entsprechende plattformspezifische Framework verwenden (.NET Android, .NET iOS, .NET macOS oder WinUI 3), aber bei diesem Ansatz müssen Sie eine Code-Basis für jede einzelne Gerätefamilie pflegen.

.NET MAUI bietet ein einziges Framework für die Erstellung von Benutzeroberflächen für mobile und Desktop-Anwendungen. Das folgende Diagramm zeigt eine Übersicht über die Architektur einer .NET MAUI-Anwendung:

.NET MAUI architecture diagram.

In einer .NET MAUI-Anwendung schreiben Sie Code, der hauptsächlich mit der .NET MAUI-API (1) interagiert. Die .NET MAUI nutzt dann direkt die APIs der nativen Plattform (3). Darüber hinaus kann der Anwendungscode bei Bedarf direkt auf die APIs der Plattform zugreifen (2).

.NET MAUI-Anwendungen können auf PC oder Mac geschrieben und in native Anwendungspakete kompiliert werden:

  • Android-Apps, die mit .NET MAUI erstellt werden, werden von C# in eine Zwischensprache (IL) kompiliert, die dann beim Start der App just-in-time (JIT) in eine native Assembly kompiliert wird.
  • iOS-Apps, die mit .NET MAUI erstellt wurden, werden vollständig AOT-kompiliert, d. h. von C# in nativen ARM-Assembly-Code.
  • macOS-Apps, die mit .NET MAUI erstellt wurden, verwenden Mac Catalyst, eine Lösung von Apple, die Ihre mit UIKit erstellte iOS-App auf den Desktop bringt und sie bei Bedarf mit zusätzlichen AppKit- und Plattform-APIs ergänzt.
  • Windows-Apps, die mit .NET MAUI erstellt wurden, verwenden die Windows UI 3-Bibliothek (WinUI 3), um native Apps für den Windows-Desktop zu erstellen. Weitere Informationen zu WinUI 3 finden Sie unter Windows-UI-Bibliothek.

Hinweis

Die Entwicklung von Apps für iOS und macOS erfordert einen Mac.

Was .NET MAUI zu bieten hat

NET MAUI bietet eine Sammlung von Steuerelementen, die zur Anzeige von Daten, zur Einleitung von Aktionen, zur Anzeige von Aktivitäten, zur Anzeige von Sammlungen, zur Auswahl von Daten und vielem mehr verwendet werden können. Zusätzlich zu einer Sammlung von Steuerelementen bietet .NET MAUI auch:

  • Eine ausgeklügelte Layout-Engine zum Entwerfen von Seiten.
  • Mehrere Seitentypen zum Erstellen von umfassenden Navigationstypen wie z.B. Drawern.
  • Unterstützung der Datenbindung für elegantere und besser zu verwaltende Entwicklungsmuster.
  • Die Möglichkeit, Handler anzupassen, um die Darstellung von UI-Elementen zu verbessern.
  • Plattformübergreifende APIs für den Zugriff auf native Gerätefunktionen. Diese APIs ermöglichen Apps den Zugriff auf Gerätefunktionen wie GPS, Beschleunigungsmesser, Akku- und Netzwerkstatus. Weitere Informationen finden Sie unter Plattformübergreifende APIs für Gerätefunktionen.
  • Plattformübergreifende Grafikfunktionalität, die eine Zeichenfläche bietet, die das Zeichnen und Malen von Formen und Bildern, Compositing-Operationen und grafische Objekttransformationen unterstützt.
  • Ein einziges Projektsystem, das Multi-Targeting für Android, iOS, macOS und Windows verwendet. Weitere Informationen finden Sie unter .NET MAUI Einzelprojekt.
  • .NET Hot Reload, damit Sie sowohl Ihre XAML als auch Ihren verwalteten Quellcode ändern können, während die App läuft, und dann das Ergebnis Ihrer Änderungen beobachten können, ohne die App neu zu erstellen. Weitere Informationen finden Sie unter .NET Hot Reload.

Plattformübergreifende APIs für Gerätefunktionen

.NET MAUI bietet plattformübergreifende APIs für native Gerätefunktionen. Beispiele für Funktionen, die von .NET MAUI für den Zugriff auf Gerätefunktionen bereitgestellt werden, sind:

  • Zugriff auf Sensoren, wie etwa Beschleunigungsmesser, Kompass und Gyroskop auf Geräten.
  • Fähigkeit, den Status der Netzwerkkonnektivität des Geräts zu überprüfen und Änderungen zu erkennen.
  • Geben Sie Informationen über das Gerät an, auf dem die App ausgeführt wird.
  • Kopieren und Einfügen von Text in die Systemzwischenablage, zwischen Anwendungen.
  • Wählen Sie einzelne oder mehrere Dateien auf dem Gerät aus.
  • Speichern Sie Daten sicher als Schlüssel/Wert-Paare.
  • Nutzen Sie die integrierten Text-to-Speech-Engines, um Text vom Gerät vorzulesen.
  • Initiieren Sie browserbasierte Authentifizierungsabläufe, die auf einen Rückruf zu einer bestimmten, für die Anwendung registrierten URL warten.

Einzelnes Projekt

Das .NET MAUI-Einzelprojekt fasst die plattformspezifischen Entwicklungserfahrungen, auf die Sie bei der Entwicklung von Apps normalerweise stoßen, in einem einzigen gemeinsamen Projekt zusammen, das für Android, iOS, macOS und Windows geeignet ist.

.NET MAUI bietet eine vereinfachte und konsistente plattformübergreifende Entwicklungserfahrung, unabhängig von den anvisierten Plattformen. .NET MAUI-Einzelprojekt bietet die folgenden Funktionen:

  • Ein einziges gemeinsames Projekt, das auf Android, iOS, macOS und Windows ausgerichtet werden kann.
  • Eine vereinfachte Auswahl von Debug-Zielen für die Ausführung Ihrer .NET MAUI-Apps.
  • Gemeinsame Ressourcendateien innerhalb eines einzelnen Projekts.
  • Ein einzelnes App-Manifest, das den App-Titel, die ID und die Version angibt.
  • Zugang zu plattformspezifischen APIs und Tools, wenn erforderlich.
  • Ein einziger plattformübergreifender App-Einstiegspunkt.

Das .NET MAUI-Einzelprojekt wird durch Multi-Targeting und die Verwendung von SDK-ähnlichen Projekten ermöglicht. Weitere Informationen über .NET MAUI Einzelprojekt finden Sie unter .NET MAUI Einzelprojekt.

Erneut laden im laufenden Betrieb

.NET MAUI bietet Unterstützung für .NET Hot Reload, mit dem Sie Ihren verwalteten Quellcode ändern können, während die App läuft, ohne dass Sie sie manuell anhalten oder einen Haltepunkt setzen müssen. Dann können Ihre Codeänderungen ohne erneute Kompilierung auf Ihre laufende Anwendung angewendet werden.

.NET MAUI unterstützt auch XAML Hot Reload, mit dem Sie Ihre XAML-Dateien speichern und die Änderungen ohne Neukompilierung in Ihrer laufenden App sehen können. Darüber hinaus werden Ihr Navigationsstatus und Ihre Daten beibehalten, sodass Sie Ihre Benutzeroberfläche schnell überarbeiten können, ohne Ihre Position in der App zu verlieren.