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 base de code partagée unique.
.NET MAUI est open-source et représente l’évolution de Xamarin.Forms, étendue des scénarios mobiles aux scénarios de bureau, avec des contrôles d’interface utilisateur réimaginés depuis le début 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. Toutefois, il existe également des différences. À l’aide de .NET MAUI, vous pouvez créer des applications multiplateformes à l’aide d’un seul projet, mais vous pouvez ajouter du code source et des ressources spécifiques à la plateforme si nécessaire. L’un des principaux objectifs de .NET MAUI est de vous permettre d’implémenter autant de logique d’application et de disposition de l’interface utilisateur que possible dans une base de code unique.
À qui s'adresse .NET MAUI
.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.
- Partagez la disposition et la conception de l’interface utilisateur sur plusieurs 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 en une seule API qui permet une expérience de développement écrire une fois, exécuter partout, tout en fournissant un accès complet à 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 : .NET pour Android, .NET pour iOS, .NET pour Mac Catalyst et la bibliothèque 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 bibliothèque de classes de base (BCL) dépend de l'environnement d'exécution .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 Core Common Language Runtime (CLR) 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 pour Android, .NET pour iOS, .NET pour Mac Catalyst ou WinUI 3), mais cette approche vous oblige ensuite à maintenir 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 :
Dans une application .NET MAUI, vous écrivez du code qui interagit principalement avec les contrôles MAUI .NET et la couche API (1). Cette couche 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 :
- Les applications Android créées avec .NET MAUI sont compilées à partir de C# en un langage intermédiaire (IL), qui est ensuite compilé juste-à-temps (JIT) en un assemblage natif lors du démarrage de l'application.
- Les applications iOS créées à l’aide de .NET MAUI sont entièrement compilées à l'avance depuis le C# en code d’assemblage 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.
Note
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 :
- Moteur de mise en page élaboré pour la création de pages.
- Plusieurs types de pages pour créer des types de navigation enrichis, tels que des tiroirs.
- 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 API multiplateforme 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 unique .NET MAUI .
- Rechargement à chaud .NET, afin que vous puissiez modifier à la fois votre XAML et votre code source managé pendant l’exécution de l’application, puis observer le résultat de vos modifications sans reconstruire l’application. Pour plus d’informations, consultez .NET rechargement à chaud.
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é de vérifier 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 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.