Le Pack de Compatibilité Xamarin.Forms->MAUI
. De quoi s’agit-il ?
Pack de Compatibilité
Le .NET MAUI Community Toolkit est une collection d'éléments
communs pour le développement avec .NET MAUI que les développeurs ont tendance
à utiliser fréquemment dans de nombreux projets. Il simplifie les tâches
courantes lors de la création d'applications avec .NET MAUI.
Toutes les fonctionnalités sont fournies par la communauté
.NET, et maintenues par un noyau de mainteneurs. Le tout sous l’égide de la
Fondation .NET.
Et, certains le prédisent, les fonctionnalités du pack
pourraient un jour être intégrées à la bibliothèque officielle .NET MAUI ! Tout
comme Essentials est maintenant diffusé et intégré automatiquement dans les
projets MAUI.
Il ne faut d’ailleurs pas confondre Xamarin.Essentials,
aujourd’hui traduit et adapté et intégré aux projets MAUI sans package à
ajouter à la main et le pack de compatibilité qui est une adaptation de MAUI
Community Toolkit lui-même repris de Xamarin.Forms Community Toolkit.
Qu’y-a-t-il dans le MAUI Community Toolkit ?
Le Xamarin Community Toolkit est une collection d'éléments
réutilisables pour le développement mobile avec Xamarin.Forms, y compris des
animations, des comportements, des convertisseurs, des effets et des
assistants. Il simplifie les tâches courantes des développeurs lors de la
création d'applications iOS, Android, macOS, WPF et Universal Windows Platform
(UWP) à l'aide de Xamarin.Forms. Le Xamarin Community Toolkit est disponible
sous forme de package Visual Studio NuGet pour les projets Xamarin.Forms
nouveaux ou existants.
Comme annoncé par Microsoft, le .NET MAUI Community Toolkit
remplace Xamarin Community Toolkit. De la même manière que Xamarin devient .NET
MAUI tout en évoluant. Les nouveaux packages Community Toolkit pour .NET MAUI
sont disponibles et entièrement optimisés pour MAUI. Ces nouveaux packages
NuGet sont CommunityToolkit.Maui et
CommunityToolkit.Maui.Markup.
La boîte à outils de la communauté .NET MAUI, comme la boîte
à outils de la communauté Xamarin, est entièrement open source et prise en
charge par la communauté. L'équipe Microsoft travaille activement à la
migration des fonctionnalités de la boîte à outils de la communauté Xamarin
vers la boîte à outils de la communauté .NET MAUI avec une assistance open
source.
Pack de compatibilité ou Community Toolkit alors ?
CommunityToolkit.Maui et les référentiels CommunityToolkit.Maui.Markup
GitHub sont disponibles pour les explorer et y contribuer. En ce qui concerne
la rétrocompatibilité et l'évitement des breaking changes dans la migration,
deux versions compatibles .NET MAUI du Xamarin Community Toolkit ont été
annoncées en juillet et sont désormais disponibles pour une utilisation dans le
développement. Ces packages NuGet sont
Xamarin.CommunityToolkit.MauiCompat
et celui orienté XAML :
Xamarin.CommunityToolkit.Markup.MauiCompat.
Ces packages sont presque identiques à Xamarin Community
Toolkit du point de vue des fonctionnalités, mais la principale différence est
la dépendance à .NET MAUI, tandis que les autres parties de la bibliothèque
restent les mêmes. La version MauiCompat ne prend en charge que iOS et Android
au départ. Mais les versions suivantes ont ajouté la prise en charge de macOS
et d' UWP. La couverture est donc complète.
Quel package utiliser et quand ?
C’est une question qui revient souvent car même si les choses sont
claires on peut s’embrouiller facilement entre les Essentials, le Community
Toolkit et sa variante pack de compatibilité…
Voici la réponse donnée par Brandon Minnick chargé des
relations avec les développeurs chez Microsoft :
« Quelles applications doivent utiliser MauiCompat ? Principalement
les applications Xamarin.Forms existantes migrant vers .NET MAUI. Les
bibliothèques MauiCompat sont créées comme une étape utile dans la migration de
Xamarin.Forms vers .NET MAUI. Ces bibliothèques garantissent que vous pouvez
accéder à toutes les fonctionnalités de Xamarin.CommunityToolkit dans vos
applications .NET MAUI sans breaking changes, ce qui facilite votre migration
vers .NET MAUI.
Nous vous recommandons de remplacer éventuellement
Xamarin.CommunityToolkit.MauiCompat par le nouveau kit d'outils .NET MAUI,
CommunityToolkit.Maui, pour tirer parti des nouvelles fonctionnalités et
optimisations. »
C’est donc clair, les versions pack de compatibilité font
bien ce que leur nom laisse entendre : elles permettent de migrer un code
Xamarin.Forms qui utilisait le Xamarin.Forms Community Toolkit vers MAUI sans
casser le code existant mais tout en étant conçu pour fonctionner sous MAUI.
Mais, et c’est important de le noter, ce n’est qu’une étape de la migration, ce
n’est juste là que pour créer un palier laissant le code fonctionnel avant
d’aller au bout de la démarche, utiliser le Community Toolkit MAUI qui est une
bibliothèque totalement optimisée pour MAUI et prenant en charge de nouvelles
fonctionnalités. De plus cette librairie MAUI va évoluer avec le temps alors
que le pack de compatibilité est figé et restera tel quel.
Sur GitHub
On peut trouver toutes les bibliothèques évoquées ici sur
GitHub. Notamment le Community Toolkit MAUI qui se trouve ici : https://github.com/CommunityToolkit/Maui
.
Conclusion
Bien que MAUI soit directement inspiré du code des
Xamarin.Forms, la plateforme .NET sous-jacente est différente (Core au lieu de
Mono en gros) et les bibliothèques disponibles pour les Xamarin.Forms ont
évolué pour s’adapter elles-aussi à ce nouveau contexte. De fait, passer des
Xamarin.Forms à MAUI est très simple pour le développeur qui adoptera les
bonnes bibliothèques pour ses nouveaux projets mais pour passer les anciens
projets Xamarin.Forms en MAUI il y a un processus de migration à suivre. Ce
dernier est largement simplifié par la mise à disposition du pack de
compatibilité et des outils de migration (que j’aborderai dans un prochain
article).