Comme pour les autres versions candidates de .NET, cette version est couverte par une politique de support "go live", ce qui signifie que .NET MAUI est supporté par Microsoft pour les applications de production.
En tant que framework de création d'applications multiplateformes, .NET MAUI s'appuie sur les SDK de plateforme pour Android, iOS, macOS et Windows. Ces éléments fondamentaux sont inclus dans cette version, et ils peuvent être utilisé directement avec C# en plus de maximiser le partage de code et la productivité avec .NET MAUI. .NET MAUI utilise les dernières technologies modernes pour créer des applications natives sur Android, iOS, macOS et Windows en les abstrayant dans un framework commun construit sur .NET 6.
Les applications natives ressemblent par défaut au système d'exploitation auquel elles appartiennent et les mises en page sont entièrement adaptées à chaque appareil automatiquement, sans code supplémentaire. Les API de plateforme sont disponibles directement à partir de C# pour accéder à plus de 60 fonctionnalités de plateforme à partir d'une seule API multiplateforme, y compris l'accès à des éléments tels que le stockage isolé, les capteurs, la géolocalisation, l'appareil photo et bien plus encore, sans aucun compromis.
Pour acquérir .NET MAUI RC1, il est nécessaire d’installer ou de mettre à jour Visual Studio 2022 Preview à la version 17.2 Preview 3. Dans le programme d'installation, confirmez que .NET MAUI (Preview) est coché sous la rubrique « Mobile Development with .NET workload ». Pour utiliser .NET MAUI RC1 sur Mac, il est recommandé de suivre les instructions de la ligne de commande sur le wiki. La prise en charge de .NET MAUI dans Visual Studio 2022 pour Mac sera officiellement disponible dans une prochaine version préliminaire.
Le nouveau modèle de projet .NET MAUI comprend désormais une feuille de style par défaut dans "Resourcestyles.xaml" avec une palette de couleurs et un style pour tous les contrôles. Prenons par exemple l'entrée. Au démarrage d'une nouvelle application, ces entrées de texte commenceront désormais par un thème commun tout en restant fidèles à la plateforme sur laquelle elles fonctionnent.
Code XAML : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <Style TargetType="Entry"> <Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Black}, Dark={StaticResource White}}" /> <Setter Property="FontFamily" Value="OpenSansRegular"/> <Setter Property="FontSize" Value="14" /> <Setter Property="PlaceholderColor" Value="{AppThemeBinding Light={StaticResource LightGray}, Dark={StaticResource DarkGray}}" /> <Setter Property="VisualStateManager.VisualStateGroups"> <VisualStateGroupList> <VisualStateGroup x:Name="CommonStates"> <VisualState x:Name="Normal"> <VisualState.Setters> <Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Black}, Dark={StaticResource White}}" /> </VisualState.Setters> </VisualState> <VisualState x:Name="Disabled"> <VisualState.Setters> <Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource LightGray}, Dark={StaticResource DarkGray}}" /> </VisualState.Setters> </VisualState> </VisualStateGroup> </VisualStateGroupList> </Setter> </Style> |
Personnalisation des contrôles
L'une des choses que fait .NET MAUI pour améliorer l'architecture Xamarin.Forms est d'ajouter des crochets à faible code pour modifier à peu près tout. Prenons l'exemple canonique de la suppression du soulignement distinctif d'Android sur un champ de saisie. Comment faire lorsqu'il n'existe pas de style multiplateforme pour le soulignement, car il n'existe que sur Android ?
Code : | Sélectionner tout |
1 2 3 4 5 6 | #if ANDROID Microsoft.Maui.Handlers.EntryHandler.Mapper.ModifyMapping("NoUnderline", (h, v) => { h.PlatformView.BackgroundTintList = ColorStateList.ValueOf(Colors.Transparent.ToPlatform()); }); #endif |
Ce code doit simplement être exécuté quelque part au début de votre application avant que le gestionnaire ne soit appelé. Tout d'abord, le #if ANDROID est une directive de compilation conditionnelle qui indique que ce code ne doit être exécuté que pour Android. Dans les autres cas où le contrôle est modifié pour toutes les plateformes, ce n'est pas nécessaire.
Ensuite, un accès au contrôle est nécessaire. Le contrôle que vous utilisez est un contrôle MAUI de .NET. Chaque propriété, commande, événement, etc. de l'entrée est "mappé" par un "gestionnaire" à une mise en œuvre de plateforme. Pour modifier un mappage, il est possible d’y accéder via le mappage du gestionnaire, tel que Microsoft.Maui.Handlers.EntryHandler.Mapper. À partir du mappeur, il existe 3 méthodes :
- PrependToMapping qui s'exécute avant le code .NET MAUI.
- ModifyMapping qui s'exécute à la place du code .NET MAUI.
- AppendToMapping qui s'exécute après le code .NET MAUI.
Dans ce cas, peu importe lequel des deux est utilisé, puisqu'il sera appelé au moins une fois et qu'aucune autre implémentation de l'entrée ne touchera les propriétés natives que nous devons modifier. Ici, le code utilise ModifyMapping et ajoute une entrée appelée NoUnderline. En général, la propriété correspond au nom d'une propriété réelle, mais dans ce cas, Microsoft introduit une nouvelle.
Le h dans l'action est le gestionnaire qui nous donne accès à la PlatformView qui dans ce cas est de type Android TextView. À ce stade, le code fonctionne directement avec le SDK Android. Maintenant que le soulignement n'est plus nécessaire, il est possible de mettre en œuvre votre propre conception, par exemple, une boîte de bordure comme dans l'ancien Windows Phone.
C# Hot Reload et XAML Hot Reload transforment la façon de travailler et rendent plus productif. Tapez du code, enregistrez et voyez les modifications immédiatement. Tirez parti des dernières fonctionnalités de débogage, d'IntelliSense et de test de Visual Studio pour écrire un meilleur code plus rapidement.
Utilisez un seul langage de programmation, une seule base de code et un seul système de projet pour toutes les cibles de périphériques avec prise en charge des ressources multiplateformes, notamment les images, les icônes, les écrans d'accueil, etc.
Des applications hybrides qui s'exécutent partout
Commencez à créer des applications hybrides dès aujourd'hui avec C# au lieu de JavaScript. Partagez vos composants Web Blazor directement dans les applications .NET MAUI tout en ayant accès aux capacités et au conditionnement des appareils natifs. En utilisant conjointement .NET MAUI et Blazor, il est possible de réutiliser un ensemble de composants d'interface utilisateur Web sur le mobile, le bureau et le Web. Utilisez une pile de développement unique qui prend en charge toutes les charges de travail modernes avec un SDK, des bibliothèques de classes de base et une chaîne d'outils unifiés.
Il est possible de réutiliser plus facilement les composants et les bibliothèques grâce à un ensemble commun d'API disponibles pour tout type d'application .NET 6. Il est également tirer parti des centaines de milliers de packages de l'écosystème pour lancer votre développement.
Source : Microsoft
Et vous ?
Quel est votre avis sur le sujet ?
Voir aussi :
.NET 6 Preview 7 : Microsoft révise les modèles de projet et améliore certaines API, notamment les modèles de projets C#
Microsoft annonce .NET 6 Preview 5, la version du framework pour la création des applications, apporte une amélioration des charges de travail
Microsoft annonce .NET 6, version la plus rapide à ce jour avec prise en charge des puces Apple Silicon, des containers Windows isolés des processus et une amélioration des E/S de fichiers
.NET 6 apporterait jusqu'à 40 % de gain de vitesse par rapport .NET 5, les tests de mise en cache et de boucles serrées serraient jusqu'à 30 % plus rapide