Wat is .NET MAUI?
.NET Multi-Platform App UI (.NET MAUI) is een platformoverschrijdend framework voor het maken van systeemeigen mobiele en desktop-apps met C# en XAML.
Met .NET MAUI kunt u apps ontwikkelen die kunnen worden uitgevoerd op Android, iOS, macOS en Windows vanuit één gedeelde codebasis.
.NET MAUI is opensource en is de evolutie van Xamarin.Forms, uitgebreid van mobiel naar desktopscenario's, waarbij UI-besturingselementen helemaal opnieuw worden opgebouwd voor prestaties en uitbreidbaarheid. Als u Xamarin.Forms eerder hebt gebruikt om platformoverschrijdende gebruikersinterfaces te bouwen, ziet u veel overeenkomsten met .NET MAUI. Er zijn echter ook enkele verschillen. Met .NET MAUI kunt u apps met meerdere platforms maken met één project, maar u kunt indien nodig platformspecifieke broncode en resources toevoegen. Een van de belangrijkste doelstellingen van .NET MAUI is om u in staat te stellen zoveel mogelijk van uw app-logica en ui-indeling in één codebasis te implementeren.
Voor wie .NET MAUI is
.NET MAUI is bedoeld voor ontwikkelaars die het volgende willen:
- Schrijf platformoverschrijdende apps in XAML en C# vanuit één gedeelde codebasis in Visual Studio.
- Deel de indeling en het ontwerp van de gebruikersinterface op verschillende platforms.
- Deel code, tests en bedrijfslogica op verschillende platforms.
Hoe .NET MAUI werkt
.NET MAUI integreert Android-, iOS-, macOS- en Windows-API's in één API die een write-once run-anywhere-ervaring voor ontwikkelaars mogelijk maakt, en biedt daarnaast uitgebreide toegang tot elk aspect van elk systeemeigen platform.
.NET 6 of hoger biedt een reeks platformspecifieke frameworks voor het maken van apps: .NET voor Android, .NET voor iOS, .NET voor Mac Catalyst en Windows UI 3 (WinUI 3) bibliotheek. Deze frameworks hebben allemaal toegang tot dezelfde .NET Base Class Library (BCL). Deze bibliotheek abstraheert de details van het onderliggende platform weg van uw code. De BCL is afhankelijk van de .NET-runtime om de uitvoeringsomgeving voor uw code te bieden. Voor Android, iOS en macOS wordt de omgeving geïmplementeerd door Mono, een implementatie van de .NET-runtime. In Windows biedt de .NET Core Common Language Runtime (CLR) de uitvoeringsomgeving.
Hoewel met de BCL apps die op verschillende platforms worden uitgevoerd, algemene bedrijfslogica kunnen worden gedeeld, hebben de verschillende platforms verschillende manieren om de gebruikersinterface voor een app te definiëren en bieden ze verschillende modellen voor het opgeven van de manier waarop de elementen van een gebruikersinterface communiceren en samenwerken. U kunt de gebruikersinterface voor elk platform afzonderlijk maken met behulp van het juiste platformspecifieke framework (.NET voor Android, .NET voor iOS, .NET voor Mac Catalyst of WinUI 3), maar voor deze benadering moet u vervolgens een codebasis onderhouden voor elke afzonderlijke familie van apparaten.
.NET MAUI biedt één framework voor het bouwen van de UIS's voor mobiele en desktop-apps. In het volgende diagram ziet u een algemeen overzicht van de architectuur van een .NET MAUI-app.
nl-NL:
In een .NET MAUI-app schrijft u code die voornamelijk communiceert met de .NET MAUI-besturingselementen en API-laag (1). Deze laag gebruikt vervolgens rechtstreeks de systeemeigen platform-API's (3). Bovendien kan app-code indien nodig platform-API's (2) rechtstreeks uitoefenen.
.NET MAUI-apps kunnen worden geschreven op pc of Mac en worden gecompileerd in systeemeigen app-pakketten:
- Android-apps die zijn gebouwd met behulp van .NET MAUI compileren vanuit C# in een tussenliggende taal (IL), die vervolgens just-in-time (JIT) is gecompileerd naar een systeemeigen assembly wanneer de app wordt gestart.
- iOS-apps die zijn gebouwd met behulp van .NET MAUI, zijn volledig van tevoren (AOT) gecompileerd vanuit C# in systeemeigen ARM-assemblycode.
- macOS-apps die zijn gebouwd met .NET MAUI maken gebruik van Mac Catalyst, een oplossing van Apple die uw iOS-app gebouwd met UIKit naar de desktop brengt en deze uitbreidt met aanvullende AppKit- en platform-API's zoals vereist.
- Windows apps die zijn gebouwd met .NET MAUI maken gebruik van de Windows UI 3-bibliotheek (WinUI 3) om systeemeigen apps te maken die zich richten op de Windows-desktop. Zie Windows UI Libraryvoor meer informatie over WinUI 3.
Notitie
Voor het bouwen van apps voor iOS en macOS is een Mac vereist.
Wat .NET MAUI biedt
.NET MAUI biedt een verzameling besturingselementen die kunnen worden gebruikt om gegevens weer te geven, acties te initiëren, activiteit aan te geven, verzamelingen weer te geven, gegevens te kiezen en meer. Naast een verzameling besturingselementen biedt .NET MAUI ook het volgende:
- Een uitgebreide indelingsengine voor het ontwerpen van pagina's.
- Meerdere paginatypen voor het maken van rijke navigatiemogelijkheden, zoals uitklapmenu's.
- Ondersteuning voor gegevensbinding, voor elegantere en onderhoudbare ontwikkelingspatronen.
- De mogelijkheid om handlers aan te passen om de manier waarop UI-elementen worden gepresenteerd, te verbeteren.
- Platformoverschrijdende API's voor toegang tot systeemeigen apparaatfuncties. Met deze API's kunnen apps toegang krijgen tot apparaatfuncties zoals de GPS, de versnellingsmeter en accu- en netwerkstatussen. Zie Platformoverschrijdende API's voor apparaatfunctiesvoor meer informatie.
- Platformoverschrijdende grafische functionaliteit die een tekenpapier biedt dat ondersteuning biedt voor vormen en afbeeldingen voor tekenen en schilderen, bewerkingen voor compositing en grafische objecttransformaties.
- Een enkel projectsysteem dat multi-targeting gebruikt om Android, iOS, macOS en Windows aan te spreken. Zie .NET MAUI Single projectvoor meer informatie.
- .NET hotload, zodat u zowel uw XAML als de beheerde broncode kunt wijzigen terwijl de app wordt uitgevoerd. Bekijk vervolgens het resultaat van uw wijzigingen zonder de app opnieuw te bouwen. Zie .NET hot reloadvoor meer informatie.
Platformoverschrijdende API's voor apparaatfuncties
.NET MAUI biedt platformoverschrijdende API's voor systeemeigen apparaatfuncties. Voorbeelden van functionaliteit van .NET MAUI voor toegang tot apparaatfuncties zijn:
- Toegang tot sensoren, zoals de versnellingsmeter, kompas en gyroscoop op apparaten.
- Mogelijkheid om de netwerkverbindingsstatus van het apparaat te controleren en wijzigingen te detecteren.
- Geef informatie op over het apparaat waarop de app wordt uitgevoerd.
- Kopieer en plak tekst naar het systeem klembord, tussen apps.
- Kies één of meerdere bestanden van het apparaat.
- Gegevens veilig opslaan als sleutel-waardeparen.
- Gebruik ingebouwde tekst-naar-spraak-engines om tekst van het apparaat te lezen.
- Start verificatiestromen op basis van browsers die luisteren naar een callback naar een specifieke app-geregistreerde URL.
Eén project
.NET MAUI één project gebruikt de platformspecifieke ontwikkelervaringen die u doorgaans tegenkomt tijdens het ontwikkelen van apps en abstraheert ze in één gedeeld project dat gericht kan zijn op Android, iOS, macOS en Windows.
.NET MAUI enkelvoudig project biedt een vereenvoudigde en consistente platformonafhankelijke ontwikkelervaring, ongeacht de platformen waarop de focus ligt. .NET MAUI single project biedt de volgende functies:
- Eén gedeeld project dat gericht kan zijn op Android, iOS, macOS en Windows.
- Een vereenvoudigde selectie van foutopsporingsdoel voor het uitvoeren van uw .NET MAUI-apps.
- Gedeelde resourcebestanden binnen één project.
- Eén app-manifest waarmee de titel, id en versie van de app wordt opgegeven.
- Toegang tot platformspecifieke API's en hulpprogramma's indien nodig.
- Eén platformoverschrijdend toegangspunt voor apps.
.NET MAUI enkel project wordt mogelijk gemaakt door multi-targeting en het gebruik van SDK-stijl projecten. Zie .NET MAUI single projectvoor meer informatie over .NET MAUI single project.
Dynamisch opnieuw laden
.NET MAUI bevat ondersteuning voor .NET hot reload, waarmee u uw beheerde broncode kunt wijzigen terwijl de app wordt uitgevoerd, zonder dat u handmatig hoeft te pauzeren of op een onderbrekingspunt te stuiten. Vervolgens kunnen uw codebewerkingen worden toegepast op uw actieve app zonder hercompilatie.
.NET MAUI bevat ook ondersteuning voor XAML-hot reload, waarmee u uw XAML-bestanden kunt opslaan en de wijzigingen direct kunt zien in uw draaiende app zonder dat u hoeft te hercompileren. Bovendien worden uw navigatiestatus en -gegevens behouden, zodat u snel uw gebruikersinterface kunt herhalen zonder uw plaats in de app te verliezen.