Le 4 août, Microsoft a officiellement lancé le toolkit .NET Community, disponible sur GitHub. Si cette première version est d’emblée numérotée 8.0.0, c’est que toutes les bibliothèques de cette boîte à outils viennent du Windows Community Toolkit. Ce dernier regroupe un ensemble d’assistants, d’extensions et de contrôles sur mesure qui simplifient les tâches les plus courantes des développeurs créant des applications UWP et .NET pour Windows 10 et 11. Au fil du temps, le nombre d’API ciblant le framework .NET sans dépendances spécifiques à Windows a augmenté. Microsoft a donc décidé de les séparer dans un projet distinct pour qu’elles puissent évoluer de façon indépendante en ciblant les développeurs de .NET qui ne travaillent pas sur Windows, indique un billet de l’éditeur de Redmond expliquant la sortie du .NET Community Toolkit. Il s’en suit une réorganisation de la documentation, scindée en trois kits de ressources : .NET Community, Windows Community Toolkit et .NET MAUI (multiplateforme), explique Sergio Pedri, software engineer II chez l'éditeur qui suit le projet sur GitHub.
Publié et maintenu par Microsoft, le toolkit .NET Community fait partie de la fondation .NET. Les outils et les API qu'il réunit sont agnostiques par rapport à la plateforme UI retenue. On peut l’utiliser pour partager du code entre UWP, WinUI 3, MAUI, WPF, Avalonia, Uno, etc. Les API ne présentent aucune dépendance par rapport à un runtime ou à un framework, assure son fournisseur. « Ces bibliothèques sont multi-cibles, de .NET Standard 2.0 à .NET 6 », précise Sergio Pedri. Elles incluent CommunityToolkit.Common, CommunityToolkit.Mvvm (également appelé Microsoft MVVM Toolkit), CommunityToolkit.Diagnostics et CommunityToolkit.HighPerformance.
Des générateurs de sources MVVM plus rapides
Le principal composant du toolkit .NET Community est la bibliothèque MVVM Toolkit (mode-view-view-model), celle qui est utilisée par le Microsoft Store et l’application Photos, notamment. Inspirée de la bibliothèque MvvmLight piloté par le développeur Laurent Bugnion, elle la remplace. Microsoft précise au passage avoir collaboré avec le développeur Laurent Bugnion - qui supervise MvvmLight - ce dernier ayant « approuvé le MVVM Toolkit comme la voie à suivre pour les utilisateurs existants de MvvmLight ». Des documents de migration sont disponibles sur ce point.
La principale évolution du MVVM Toolkit 8.0.0 sont les nouveautés générateurs de sources MVVM qui vont réduire nettement le code requis pour configurer une application utilisant MVVM. Par rapport à ceux livrés en préversion dans la version 7.1.0, ils ont été complètement réécrits pour en faire des générateurs incrémentiels, ce qui les rend plus rapides et permet à l’environnement de développement d’être plus réactif lorsque l’on travaille sur des projets à grande échelle, indique Microsoft. Dans son billet, l’éditeur décrit les autres nouveautés, parmi lesquelles l’attribut [RelayCommand] qui automatise la génération de commandes dans MVVM Toolkit et des attributs pour créer des « observable properties » en arrière-plan. Le code source est sur GitHub et .Net Community Toolkit est bien entendu sur NuGet, le gestionnaire de packages pour .NET.