.NET MAUI Release Candidate est prêt pour le développement d’applications multiplateformes, construit sur des SDK de plate-forme pour Android, iOS, macOS et Windows


L’équipe de développement .NET a annoncé la disponibilité de l’interface utilisateur d’application multiplateforme Release Candidate (.NET MAUI) le 12 avril. Aujourd’hui, nous sommes heureux d’annoncer la disponibilité de la version candidate .NET MAUI. Le SDK est maintenant complet au niveau de l’API, prêt à être mis à jour par les bibliothèques et rendu compatible avec GA (disponibilité générale), a déclaré David Ortinau, directeur des programmes chez Microsoft.

Comme pour les autres versions candidates de .NET, cette version est couverte par une politique de prise en charge “go live”, ce qui signifie que Microsoft prend en charge .NET MAUI pour les applications de production.

En tant que cadre pour la création d’applications multiplateformes, .NET MAUI est basé sur les SDK de plate-forme pour Android, iOS, macOS et Windows. Ces fondamentaux sont inclus dans cette version et peuvent être utilisés 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 extrayant dans un cadre commun basé sur .NET 6.

Les applications natives ressemblent par défaut au système d’exploitation auquel elles appartiennent et les mises en page s’adaptent entièrement à chaque appareil automatiquement, sans aucun code supplémentaire. Les API de plate-forme sont disponibles directement à partir de C # pour accéder à plus de 60 fonctions de plate-forme à partir d’une seule API multiplateforme, y compris l’accès à des éléments tels que le stockage isolé, les capteurs, la géolocalisation, la caméra, etc., sans aucun compromis.

Pour acquérir .NET MAUI RC1, vous devez installer ou mettre à jour Visual Studio 2022 Preview vers la version 17.2 Preview 3. Dans le programme d’installation, confirmez que .NET MAUI (Preview) est coché sous Développement mobile avec charge de travail .NET. Pour utiliser .NET MAUI RC1 sur Mac, il est recommandé de suivre les instructions en 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 de prévisualisation.

Le nouveau modèle de projet .NET MAUI inclut désormais une feuille de style par défaut dans “Resourcestyles.xaml” avec un style et une carte de couleurs pour tous les contrôles. Prenons par exemple l’entracte. Lors du lancement d’une nouvelle application, ces entrées de texte commenceront désormais par un thème commun tout en restant fidèles à la plate-forme sur laquelle elles s’exécutent.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

 TargetType="Entry">
     Property="TextColor" Value="{AppThemeBinding Light={StaticResource Black}, Dark={StaticResource White}}" />
     Property="FontFamily" Value="OpenSansRegular"/>
     Property="FontSize" Value="14" />
     Property="PlaceholderColor" Value="{AppThemeBinding Light={StaticResource LightGray}, Dark={StaticResource DarkGray}}" />
     Property="VisualStateManager.VisualStateGroups">
        >
             x:Name="CommonStates">
                 x:Name="Normal">
                    >
                         Property="TextColor" Value="{AppThemeBinding Light={StaticResource Black}, Dark={StaticResource White}}" />
                    >
                >
                 x:Name="Disabled">
                    >
                         Property="TextColor" Value="{AppThemeBinding Light={StaticResource LightGray}, Dark={StaticResource DarkGray}}" />
                    >
                >
            >
        >
    >
>

Personnalisation des contrôles

L'une des choses que .NET MAUI fait pour améliorer l'architecture Xamarin.Forms est d'ajouter des hooks low-code pour modifier à peu près n'importe quoi. Prenons l'exemple canonique de la suppression du trait de soulignement distinctif d'Android dans un champ de saisie. Comment faire lorsqu'il n'y a pas de style multiplateforme pour le soulignement, car il n'existe que sous Android ?

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 juste être exécuté quelque part au début de votre application avant que le contrôleur ne soit appelé. Premièrement, #if ANDROID est une directive de construction conditionnelle indiquant que ce code ne doit s'exécuter que pour Android. Dans les autres cas où le contrôle est modifié pour toutes les plates-formes, cela n'est pas nécessaire.

Ensuite, le contrôle d'accès est nécessaire. Le contrôle que vous utilisez est un contrôle MAUI .NET. Chaque propriété, commande, événement, etc. de l'entrée est « mappée » par un « pilote » à une implémentation de plate-forme. Pour modifier un mappage, vous pouvez y accéder via le mappage du gestionnaire, tel que Microsoft.Maui.Handlers.EntryHandler.Mapper. Depuis le mappeur, il existe 3 méthodes :

  • PrependToMapping exécuté avant le code .NET MAUI.
  • ModifyMapping qui est exécuté à la place du code .NET MAUI.
  • AppendToMapping exécuté après le code .NET MAUI.

Dans ce cas, peu importe laquelle est utilisée, car elle sera appelée au moins une fois et aucune autre implémentation de l'entrée ne touchera aux propriétés natives que nous devons modifier. Ici, le code utilise Modifier l'affectation et ajouter une entrée d'appel sans soulignement. Normalement, la propriété est le nom d'une propriété réelle, mais dans ce cas, Microsoft en introduit une nouvelle.

Le h dans l'action est le contrôleur qui nous donne accès à la PlatformView qui dans ce cas est de type Affichage texte Android. À ce stade, le code fonctionne directement avec le SDK Android. Maintenant que le soulignement n'est plus nécessaire, il est possible d'implémenter votre propre mise en page, par exemple une boîte de bordure comme sur l'ancien Windows Phone.

C# recharge à chaud et XAML recharge à chaud transformer la façon dont les gens travaillent et les rendre plus productifs. Écrivez le code, enregistrez et voyez les changements immédiatement. Tirez parti des dernières fonctionnalités de débogage, IntelliSense et de test de Visual Studio pour écrire un meilleur code plus rapidement.
Utilisez un langage de programmation, une base de code et un système de projet pour tous les appareils cibles avec prise en charge des actifs multiplateformes, notamment des images, des icônes, des écrans de démarrage, etc.

Des applications hybrides qui s'exécutent n'importe où

Commencez dès aujourd'hui à créer des applications hybrides avec C# au lieu de JavaScript. Partagez vos composants Web Blazor directement dans les applications .NET MAUI tout en ayant accès aux fonctionnalités et packages natifs de l'appareil. En utilisant .NET MAUI et Blazor ensemble, vous pouvez réutiliser un ensemble de composants d'interface utilisateur Web sur mobile, ordinateur de bureau et Web. Utilisez une seule pile de développement qui prend en charge toutes les charges de travail modernes avec un SDK unifié, des bibliothèques de classes de base et une chaîne d'outils.

Vous pouvez 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. Vous pouvez également profiter des centaines de milliers de packages de l'écosystème pour lancer votre développement.

La source : Microsoft

Et vous ?

Quelle est votre opinion sur le sujet ?

Voir également :

.NET 6 Preview 7 : Microsoft examine les modèles de projet et améliore certaines API, y compris les modèles de projet C#

Microsoft annonce la version .NET 6 Preview 5 de Framework pour la création d'applications, apporte des charges de travail améliorées

Microsoft annonce .NET 6, la version la plus rapide à ce jour avec prise en charge des puces Apple Silicon, des conteneurs Windows en bac à sable et des E/S de fichiers améliorées

.NET 6 offrirait jusqu'à 40 % de gain de vitesse par rapport à .NET 5, la mise en cache et les tests en boucle fermée étaient jusqu'à 30 % plus rapides

Leave a Comment