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.

.NET MAUI supported platforms.

.NET MAUI est open source et est l’évolution de Xamarin.Forms, étendue des scénarios mobiles à bureau, avec des contrôles d’interface utilisateur reconstruits à partir du terrain pour les performances et l’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 .NET MAUI est destiné

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

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

Fonctionnement de .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 version ultérieure fournit une série de frameworks spécifiques à la plateforme pour la création d’applications : bibliothèque .NET Android, .NET iOS, .NET macOS et Windows UI 3 (WinUI 3). Ces frameworks ont tous accès à la même bibliothèque de classes de base .NET (BCL). Cette bibliothèque extrait les détails de la plateforme sous-jacente loin 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.

Bien que la liste BCL permet aux applications s’exécutant sur différentes plateformes de partager une logique métier commune, les différentes plateformes ont différentes façons de définir l’interface utilisateur d’une application et fournissent des modèles différents pour spécifier la façon dont les éléments d’une interface utilisateur communiquent et interagissent. Vous pouvez créer l’interface utilisateur pour chaque plateforme séparément à l’aide du framework spécifique à la plateforme approprié (.NET Android, .NET iOS, .NET macOS ou WinUI 3), mais cette approche vous oblige ensuite à gérer une base de code pour chaque famille d’appareils individuelle.

.NET MAUI fournit une infrastructure unique pour la création des interfaces utilisateur pour les applications mobiles et de bureau. Le diagramme suivant montre une vue générale de l’architecture d’une application .NET MAUI :

.NET MAUI architecture diagram.

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

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

  • Applications Android créées à l’aide de la compilation .NET MAUI à partir de C# dans un langage intermédiaire (IL), qui est ensuite compilé juste-à-temps (JIT) dans un assembly natif lors du lancement de l’application.
  • Les applications iOS créées à l’aide de .NET MAUI sont entièrement à l’avance compilées à partir de C# dans le code d’assembly ARM natif.
  • Les applications macOS créées à l’aide de .NET MAUI utilisent Mac Catalyst, une solution d’Apple qui apporte votre application iOS créée avec UIKit sur le bureau et l’augmente avec des API appKit et de plateforme supplémentaires selon les besoins.
  • Les applications Windows créées à l’aide de .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 création d’applications pour iOS et macOS nécessite un Mac.

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 l’activité, afficher des regroupements, sélectionner des données, etc. Outre une collection de contrôles, .NET MAUI fournit également les éléments suivants :

  • 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.
  • Possibilité de personnaliser les gestionnaires pour améliorer la façon dont les éléments d’interface utilisateur sont présentés.
  • API multiplateformes permettant d’accéder aux fonctionnalités d’appareil natives. Ces API permettent aux applications d’accéder aux fonctionnalités d’appareil telles que le GPS, l’accéléromètre et les états de batterie et de réseau. Pour plus d’informations, consultez les API multiplateformes pour les fonctionnalités d’appareil.
  • Fonctionnalités graphiques multiplateformes, qui fournit un canevas de dessin qui prend en charge le dessin et la peinture de formes et d’images, les opérations de composition et les transformations d’objets graphiques.
  • Un système de projet unique qui utilise le ciblage multiple pour cibler Android, iOS, macOS et Windows. Pour plus d’informations, consultez le projet .NET MAUI Single.
  • 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 le rechargement à chaud .NET.

API multiplateformes pour les fonctionnalités d’appareil

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

  • Accès aux capteurs, tels que l’accéléromètre, la boussole et le gyroscope sur les appareils.
  • Possibilité d’case activée l’état de connectivité réseau de l’appareil et de détecter les modifications.
  • Fournissez des informations sur l’appareil sur lequel l’application s’exécute.
  • Copiez et collez du texte dans le Presse-papiers système, entre les applications.
  • Choisissez des fichiers uniques ou multiples à partir de l’appareil.
  • Stockez les données en toute sécurité en tant que paires clé/valeur.
  • Utilisez des moteurs de synthèse vocale intégrés pour lire du texte à partir de l’appareil.
  • Lancez des flux d’authentification basés sur un navigateur qui écoutent un rappel vers une URL inscrite à une application spécifique.

Projet unique

Le projet unique .NET MAUI 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 unique .NET MAUI offre une expérience de développement multiplateforme simplifiée et cohérente, quelle que soit la cible des plateformes. Le projet unique .NET MAUI fournit les fonctionnalités suivantes :

  • Un projet partagé unique qui peut cibler Android, iOS, macOS et Windows.
  • Sélection de cible de débogage simplifiée pour l’exécution de vos applications .NET MAUI.
  • Fichiers de ressources partagés au sein du projet unique.
  • Manifeste d’application unique qui spécifie le titre, l’ID et la version de l’application.
  • Accès aux API et outils spécifiques à la plateforme quand cela est nécessaire.
  • Point d’entrée d’application multiplateforme unique.

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

Rechargement à chaud

.NET MAUI inclut 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 à 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 inclut également la prise en charge du rechargement à chaud XAML, ce qui vous permet d’enregistrer vos fichiers XAML et de voir les modifications reflétées dans votre application en cours d’exécution sans recompilation. En outre, votre état de navigation et vos données seront conservés, ce qui vous permet d’itérer rapidement sur votre interface utilisateur sans perdre votre place dans l’application.