Qu’est-ce que .NET MAUI ?

L’interface utilisateur d’application multiplateforme .NET (.NET MAUI) est une infrastructure multiplateforme permettant de créer des applications mobiles et de bureau natives avec C# et XAML.

À l’aide de .NET MAUI, vous pouvez développer des applications qui peuvent s’exécuter sur Android, iOS, macOS et Windows à partir d’une seule base de code partagée.

Plateformes prises en charge par .NET MAUI.

.NET MAUI est open source et succède à Xamarin.Forms pour couvrir des scénarios d’applications mobiles et de bureau avec des contrôles IU totalement repensés en termes de performance et d’extensibilité. Si vous avez déjà utilisé Xamarin.Forms pour créer des interfaces utilisateur multiplateformes, vous remarquerez de nombreuses similitudes avec .NET MAUI. Il existe toutefois certaines différences. Grâce à .NET MAUI, vous pouvez créer des applications multiplateformes avec un seul projet tout en ayant la possibilité d’ajouter du code source et des ressources spécifiques à la plateforme si nécessaire. L’objectif clé de .NET MAUI est de vous permettre d’implémenter autant de logiques d’application et de dispositions d’interface utilisateur que possible dans une seule base de code.

À qui s’adresse .NET MAUI

.NET MAUI est destiné aux développeurs qui souhaitent :

  • Écrire des applications multiplateformes en XAML et en C# à partir d’un seul codebase partagé dans Visual Studio.
  • Partager la disposition et la conception de l’interface utilisateur entre les plateformes.
  • Partager du code, des tests et une logique métier sur plusieurs plateformes.

Comment fonctionne .NET MAUI

.NET MAUI unifie les API Android, iOS, macOS et Windows dans une seule API qui permet une expérience de développeur en écriture seule d’exécution en tout lieu, tout en fournissant un accès profond à chaque aspect de chaque plateforme native.

.NET 6 ou ultérieur fournit une série de frameworks spécifiques à la plateforme pour créer des applications : .NET pour Android, .NET pour iOS, .NET pour macOS et la bibliothèque Windows UI 3 (WinUI 3). Ces frameworks ont tous accès à la même bibliothèque de classes de base (BCL) .NET. Cette bibliothèque enlève les détails de la plateforme sous-jacente de votre code. La BCL dépend du runtime .NET pour fournir l’environnement d’exécution de votre code. Pour Android, iOS et macOS, l’environnement est implémenté par Mono, une implémentation du runtime .NET. Sur Windows, .NET CoreCLR fournit l’environnement d’exécution.

La BCL permet aux applications exécutées sur différentes plateformes de partager une logique métier commune. Toutefois, les diverses plateformes ont différentes manières de définir l’interface utilisateur d’une application. Elles fournissent divers modèles pour spécifier le mode de communication et d’interaction des éléments d’une interface utilisateur. Vous pouvez créer l’IU de chaque plateforme séparément à l’aide du framework spécifique à la plateforme approprié (.NET pour Android, .NET pour iOS, .NET pour macOS ou WinUI 3), mais cette approche vous oblige ensuite à gérer un codebase pour chaque famille d’appareils.

.NET MAUI fournit un seul framework pour générer les IU des applications mobiles et de bureau. Le diagramme suivant offre une vue d’ensemble de l’architecture d’une application .NET MAUI :

Diagramme de l’architecture de .NET MAUI.

Dans une application .NET MAUI, vous écrivez du code qui interagit principalement avec l’API .NET MAUI (1). .NET MAUI consomme ensuite directement les API de plateforme natives (3). De plus, le code de l’application peut appliquer directement des API de plateforme (2), si nécessaire.

Les applications .NET MAUI peuvent être écrites sur PC ou Mac et compilées dans des packages d’application natifs :

  • Les applications Android générées avec .NET MAUI sont compilées de C# en un langage intermédiaire (IL), lequel est ensuite compilé juste-à-temps (JIT) en un assembly natif lors du lancement de l’application.
  • Les applications iOS générées avec .NET MAUI sont entièrement compilées de façon anticipée (AOT, ahead-of-time) de C# en code d’assembly ARM natif.
  • Les applications macOS générées avec .NET MAUI utilisent Mac Catalyst, une solution Apple qui apporte votre application iOS générée avec UIKit sur le bureau et l’améliore avec des API AppKit et de plateforme supplémentaires selon les besoins.
  • Les applications Windows générées avec .NET MAUI utilisent la bibliothèque Windows UI 3 (WinUI 3) pour créer des applications natives qui ciblent le bureau Windows. Pour plus d’informations sur WinUI 3, consultez Bibliothèque d’interface utilisateur Windows.

Remarque

La génération d’applications pour iOS et macOS nécessite un Mac.

Ce que fournit .NET MAUI

.NET MAUI fournit une collection de contrôles qui peuvent être utilisés pour afficher des données, lancer des actions, indiquer une activité, afficher des collections, sélectionner des données, etc. En plus d’une collection de contrôles, .NET MAUI offre également :

  • Un moteur de disposition élaboré pour la conception de pages.
  • Plusieurs types de page pour créer des types de navigation riches, comme des tiroirs.
  • La prise en charge de la liaison de données, pour des modèles de développement plus élégants et plus faciles à gérer.
  • La possibilité de personnaliser des gestionnaires pour améliorer la présentation des éléments IU.
  • Des API multiplateformes pour accéder aux fonctionnalités d’appareil natives. Ces API permettent aux applications d’accéder à des fonctionnalités d’appareil telles que le GPS, l’accéléromètre et l’état de la batterie et du réseau. Pour plus d’informations, consultez API multiplateformes pour les fonctionnalités d’appareil.
  • Une fonctionnalité graphique multiplateforme, qui fournit une zone de dessin permettant de dessiner et de peindre des formes et des images, de composer des opérations et d’effectuer des transformations d’objets graphiques.
  • Un système de projet unique qui utilise le multiciblage pour cibler Android, iOS, macOS et Windows. Pour plus d’informations, consultez Projet .NET MAUI unique.
  • Le rechargement à chaud .NET afin que vous puissiez modifier à la fois votre code XAML et votre code source managé pendant l’exécution de l’application, puis observer le résultat de vos modifications sans regénérer l’application. Pour plus d’informations, consultez Rechargement à chaud .NET.

Des API multiplateformes pour accéder à des fonctionnalités d’appareil

.NET MAUI fournit des API multiplateformes pour accéder à des fonctionnalités d’appareil natives. Voici quelques exemples de fonctionnalités fournies par .NET MAUI pour accéder à des fonctionnalités d’appareil :

  • Accéder à des capteurs, tels que l’accéléromètre, la boussole et le gyroscope, sur les appareils.
  • Pouvoir vérifier l’état de la connectivité réseau de l’appareil et détecter les changements.
  • Fournir des informations sur l’appareil sur lequel l’application s’exécute.
  • Copier et coller du texte dans le Presse-papiers système, entre les applications.
  • Choisir un ou plusieurs fichiers de l’appareil.
  • Stocker les données de façon sécurisée en tant que paires clé/valeur.
  • Utiliser des moteurs de synthèse vocale intégrés pour lire du texte de l’appareil.
  • Lancer des flux d’authentification basés sur un navigateur qui écoutent un rappel sur une URL inscrite à une application spécifique.

Projet unique

Le projet .NET MAUI unique utilise les expériences de développement spécifiques à la plateforme que vous rencontrez généralement lors du développement d’applications et les extrait dans un projet partagé unique qui peut cibler Android, iOS, macOS et Windows.

Le projet .NET MAUI unique offre une expérience de développement multiplateforme simplifiée et cohérente, quelles que soient les plateformes ciblées. Le projet .NET MAUI unique fournit les fonctionnalités suivantes :

  • Un projet partagé unique qui peut cibler Android, iOS, macOS et Windows.
  • Une sélection de cibles de débogage simplifiée pour exécuter vos applications .NET MAUI.
  • Des fichiers de ressources partagés au sein du projet unique.
  • Un manifeste d’application unique qui spécifie le titre, l’ID et la version de l’application.
  • Un accès aux API et outils spécifiques à la plateforme quand cela est nécessaire.
  • Un point d’entrée unique aux applications multiplateformes.

Le projet .NET MAUI unique est activé à l’aide du multiciblage et de l’utilisation de projets de style SDK. Pour plus d’informations sur le projet .NET MAUI unique, consultez Projet .NET MAUI unique.

Rechargement à chaud

.NET MAUI comprend la prise en charge du rechargement à chaud .NET, qui vous permet de modifier votre code source managé pendant l’exécution de l’application, sans avoir à la suspendre manuellement ou à atteindre un point d’arrêt. Ensuite, vos modifications de code peuvent être appliquées à votre application en cours d’exécution sans recompilation.

.NET MAUI comprend également la prise en charge du rechargement à chaud XAML, qui vous permet d’enregistrer vos fichiers XAML et de voir les changements reflétés dans votre application en cours d’exécution sans recompilation. De plus, votre état et vos données de navigation sont conservés, ce qui vous permet d’itérer rapidement sur votre interface utilisateur sans perdre votre place dans l’application.