Was ist .NET MAUI?
.NET Multi-Platform App UI (.NET MAUI) ist ein plattformübergreifendes Framework zum Erstellen nativer mobiler und Desktop-Apps mit C# und XAML.
Mit .NET MAUI können Sie Apps entwickeln, die auf Android, iOS, macOS und Windows auf einer einzigen freigegebenen Codebasis ausgeführt werden können.
.NET MAUI ist Open Source und ist die Weiterentwicklung von Xamarin.Forms, die von mobilen zu Desktopszenarien erweitert wurde, wobei UI-Steuerelemente von Grund auf für Leistung und Erweiterbarkeit neu erstellt wurden. Wenn Sie Xamarin.Forms zuvor zum Erstellen plattformübergreifender Benutzeroberflächen verwendet haben, werden Sie viele Ähnlichkeiten mit .NET MAUI feststellen. Es gibt jedoch auch einige Unterschiede. Mithilfe von .NET MAUI können Sie Multiplattform-Apps mit einem einzelnen Projekt erstellen, aber Sie können bei Bedarf plattformspezifischen Quellcode und Ressourcen hinzufügen. Eines der wichtigsten Ziele von .NET MAUI ist es, Ihnen die Implementierung ihres App-Logik- und UI-Layouts so weit wie möglich in einer einzigen Codebasis zu ermöglichen.
Für wen .NET MAUI ist
.NET MAUI richtet sich an Entwickler, die:
- Schreiben Sie plattformübergreifende Apps in XAML und C# aus einer einzigen freigegebenen Codebasis in Visual Studio.
- Teilen von UI-Layout und -Design plattforübergreifend.
- Freigeben von Code, Tests und Geschäftslogik auf allen Plattformen.
Funktionsweise von .NET MAUI
.NET MAUI vereint Android-, iOS-, macOS- und Windows-APIs in einer einzigen API, die eine einmalige Ausführungsumgebung für Entwickler ermöglicht und gleichzeitig umfassenden Zugriff auf jeden Aspekt jeder nativen Plattform bietet.
.NET 6 oder höher stellt eine Reihe plattformspezifischer Frameworks zum Erstellen von Apps bereit: .NET für Android, .NET für iOS, .NET für Mac Catalyst und Windows UI 3 (WinUI 3)-Bibliothek. Diese Frameworks haben alle Zugriff auf dieselbe .NET-Basisklassenbibliothek (BCL). Diese Bibliothek abstrahiert die Details der zugrunde liegenden Plattform von Ihrem Code ab. Die BCL hängt von der .NET-Laufzeit ab, 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-Runtime. Unter Windows stellt die .NET Core Common Language Runtime (CLR) die Ausführungsumgebung bereit.
Während die BCL es Apps ermöglicht, die auf verschiedenen Plattformen ausgeführt werden, gemeinsame Geschäftslogik zu teilen, haben die verschiedenen Plattformen unterschiedliche Möglichkeiten zur Definition der Benutzeroberfläche für eine App und bieten unterschiedliche Modelle, um zu bestimmen, wie die Elemente einer Benutzeroberfläche kommunizieren und interagieren. Sie können die Benutzeroberfläche für jede Plattform separat erstellen, indem Sie das entsprechende plattformspezifische Framework (.NET für Android, .NET für iOS, .NET für Mac Catalyst oder WinUI 3) verwenden. Für diesen Ansatz müssen Sie dann eine Codebasis für jede einzelne Gerätefamilie verwalten.
.NET MAUI bietet ein einzelnes Framework zum Erstellen der UIs für mobile und Desktop-Apps. Das folgende Diagramm zeigt eine allgemeine Ansicht der Architektur einer .NET MAUI-App:
In einer .NET MAUI-App schreiben Sie Code, der in erster Linie mit den .NET MAUI-Steuerelementen und DER API-Ebene (1) interagiert. Diese Ebene nutzt dann direkt die systemeigenen Plattform-APIs (3). Darüber hinaus kann App-Code bei Bedarf direkt Plattform-APIs (2) ausüben.
.NET MAUI-Apps können auf PC oder Mac geschrieben und in systemeigene App-Pakete kompiliert werden:
- Android-Apps, die mit .NET MAUI erstellt wurden, werden von C# in eine Zwischensprache (IL) kompiliert, die dann zur just-in-time-Kompilierung (JIT) in eine native Assembly erfolgt, wenn die App gestartet wird.
- iOS-Apps, die mit .NET MAUI erstellt wurden, sind vollständig vorab (AOT) aus C# in systemeigenem ARM-Assemblycode kompiliert.
- macOS-Apps, die mit .NET MAUI erstellt wurden, verwenden Mac Catalyst, eine Lösung von Apple, die Ihre mit UIKit entwickelte iOS-App auf den Desktop bringt, und erweitert sie nach Bedarf mit zusätzlichen AppKit- und Plattform-APIs.
- Windows-Apps, die mit .NET MAUI erstellt wurden, verwenden die Windows UI 3 (WinUI 3)-Bibliothek, um systemeigene Apps zu erstellen, die auf den Windows-Desktop abzielen. Weitere Informationen zu WinUI 3 finden Sie unter Windows UI Library.
Anmerkung
Für das Erstellen von Apps für iOS und macOS ist ein Mac erforderlich.
Was .NET MAUI bereitstellt
.NET MAUI bietet eine Sammlung von Steuerelementen, die zum Anzeigen von Daten, Initiieren von Aktionen, Angeben von Aktivitäten, Anzeigen von Sammlungen, Auswählen von Daten und mehr verwendet werden können. Zusätzlich zu einer Auflistung von Steuerelementen bietet .NET MAUI auch Folgendes:
- Ein aufwändiges Layoutmodul zum Entwerfen von Seiten.
- Mehrere Seitentypen zum Erstellen von umfangreichen Navigationstypen, z. B. Schubladen.
- Unterstützung für Datenbindung, für elegantere und verwendbare Entwicklungsmuster.
- Die Möglichkeit, Handler anzupassen, um die Art und Weise zu verbessern, in der UI-Elemente dargestellt werden.
- Plattformübergreifende APIs für den Zugriff auf native Geräteeigenschaften. Diese APIs ermöglichen Apps den Zugriff auf Gerätefeatures wie GPS, Beschleunigungsmesser und Akku- und Netzwerkzustände. Weitere Informationen finden Sie unter plattformübergreifende APIs für Gerätefunktionen.
- Plattformübergreifende Grafikfunktionalität, die einen Zeichenbereich bereitstellt, der Zeichnungs- und Zeichenformen und Bilder, Kompositingvorgänge und grafische Objekttransformationen unterstützt.
- Ein einzelnes Projektsystem, das Multi-Targeting für Android, iOS, macOS und Windows verwendet. Weitere Informationen finden Sie unter .NET MAUI Single Project.
- .NET hot reload, so dass Sie sowohl Ihren XAML- als auch Den verwalteten Quellcode während der Ausführung der App ändern können, und dann das Ergebnis Ihrer Änderungen beobachten, ohne die App neu zu erstellen. Weitere Informationen finden Sie unter .NET Hot Reload.
Plattformübergreifende APIs für Gerätefunktionen
.NET MAUI stellt plattformübergreifende APIs für systemeigene Gerätefeatures bereit. Beispiele für Funktionen, die von .NET MAUI für den Zugriff auf Gerätefeatures bereitgestellt werden, umfassen:
- Zugriff auf Sensoren wie Beschleunigungsmesser, Kompass und Gyroskop auf Geräten.
- Möglichkeit zum Überprüfen des Netzwerkkonnektivitätszustands des Geräts und Erkennen von Änderungen.
- Geben Sie Informationen zum Gerät an, auf dem die App ausgeführt wird.
- Text in die Zwischenablage kopieren und einfügen, zwischen Apps.
- Wählen Sie einzelne oder mehrere Dateien vom Gerät aus.
- Speichern Sie Daten sicher als Schlüssel-Wert-Paare.
- Verwenden Sie integrierte Text-zu-Sprache-Engines, um Text vom Gerät zu lesen.
- Initiieren Sie browserbasierte Authentifizierungsflüsse, die auf einen Callback an eine bestimmte, bei der App registrierte URL lauschen.
Einzelnes Projekt
.NET MAUI single project verwendet die plattformspezifischen Entwicklungserfahrungen, die Sie normalerweise beim Entwickeln von Apps finden und diese in einem einzigen freigegebenen Projekt abstrahieren, das auf Android, iOS, macOS und Windows ausgerichtet werden kann.
.NET MAUI single project bietet eine vereinfachte und konsistente plattformübergreifende Entwicklungserfahrung, unabhängig von den Zielplattformen. .NET MAUI single project bietet die folgenden Features:
- Ein einzelnes freigegebenes Projekt, das auf Android, iOS, macOS und Windows ausgerichtet werden kann.
- Eine vereinfachte Debugzielauswahl zum Ausführen Ihrer .NET MAUI-Apps.
- Freigegebene Ressourcendateien innerhalb des einzelnen Projekts.
- Ein einzelnes App-Manifest, das den App-Titel, die ID und die Version angibt.
- Zugriff auf plattformspezifische APIs und Tools bei Bedarf.
- Ein einzelner plattformübergreifender App-Einstiegspunkt.
Einzelne .NET MAUI-Projekte werden durch Multi-Targeting und die Verwendung von SDK-ähnlichen Projekten aktiviert. Weitere Informationen zu .NET MAUI-Einzelprojekt finden Sie unter .NET MAUI-Einzelprojekt.
Hot Reload (Schnelles Neuladen)
.NET MAUI enthält Unterstützung für .NET Hot Reload, wodurch Sie ihren verwalteten Quellcode während der Ausführung der App ändern können, ohne dass ein Haltepunkt manuell angehalten oder erreicht werden muss. Anschließend können Ihre Codebearbeitungen auf Ihre ausgeführte App angewendet werden, ohne dass sie neu kompiliert werden muss.
.NET MAUI enthält auch Unterstützung für das erneute Laden von XAML, wodurch Sie Ihre XAML-Dateien speichern und die Änderungen in Ihrer ausgeführten App ohne erneute Kompilierung anzeigen können. Darüber hinaus werden Ihr Navigationszustand und Ihre Daten beibehalten, sodass Sie schnell auf der Benutzeroberfläche iterieren können, ohne Ihre Position in der App zu verlieren.