Nouvelles
.NET Community Toolkit v8.0 Preview 3 Tweaks MVVM Source Generators
Microsoft a livré .NET Community Toolkit v8.0 Preview 3 dans le cadre de ses efforts pour regrouper toutes ses bibliothèques .NET générales en une ressource à guichet unique.
Cette ressource est le référentiel .NET Community Toolkit sur GitHub, une collection d’assistants et d’API indépendants de la plate-forme qui fonctionnent pour tous les développeurs .NET – maintenus et publiés par Microsoft – qui fait partie de la Fondation .NET. Ses offres fournies via NuGet incluent les successeurs de l’ancien Windows Community Toolkit et MvvmLlight ainsi que d’autres, la gamme complète étant :
- CommunityToolkit.Mvvm (alias MVVM Toolkit): une bibliothèque MVVM rapide, modulaire et indépendante de la plate-forme, qui est le successeur officiel de MvvmLight. Il est largement utilisé dans le Microsoft Store et d’autres applications propriétaires.
- CommunityToolkit.Mvvm.SourceGenerators : les générateurs de source pour augmenter le MVVM Toolkit.
- CommunityToolkit.Diagnostics : un ensemble d’API d’assistance (en particulier, Guard et ThrowHelper) qui peuvent être utilisées pour une validation des arguments et une vérification des erreurs plus propres, plus efficaces et moins sujettes aux erreurs.
- CommunityToolkit.HighPerformance une collection d’assistants pour travailler dans des scénarios hautes performances. Il comprend des API telles que des assistants de tampon regroupés, un type de pool de chaînes rapide, une variante 2D de Memory
et durée (Memory2D et Span2D ) prenant également en charge les régions non contiguës, les assistants pour les opérations de décalage de bits (tels que BitHelper, également utilisé dans Paint.NET), etc. - CommunityToolkit.Common : un ensemble d’API d’assistance partagées avec d’autres bibliothèques CommunityToolkit.
C’est ce premier élément, le MVVM Toolkit, qui voit plusieurs ajustements dans Preview 3.
Par exemple, une amélioration de la boîte à outils MVMM réorganise les collections groupées observables, dont la fonctionnalité est décrite dans le graphique animé ci-dessus.
Cependant, de nombreux changements dans Preview 3 concernent le deuxième élément, les générateurs de source, une fonctionnalité du compilateur C# qui permet aux développeurs C# d’inspecter le code utilisateur lors de sa compilation et de générer de nouveaux fichiers source C# à la volée qui sont ajoutés à la compilation de l’utilisateur.
Les API de générateur de source réduisent le code passe-partout nécessaire lorsque vous travaillez avec MVVM, fournissant des aides telles que des propriétés observables, des commandes et bien plus encore.
Les ajustements du générateur de source MVVM Toolkit ajoutés depuis l’aperçu 1 en janvier incluent :
- Méthodes de modification partielle de propriété : Lors de l’utilisation
[ObservableProperty]
Pour générer des propriétés observables, le MVVM Toolkit générera désormais également deux méthodes partielles sans implémentation :On
etChanging On
. Ces méthodes peuvent être utilisées pour injecter une logique supplémentaire lorsqu’une propriété est modifiée, sans qu’il soit nécessaire de recourir à une propriété manuelle.”Changed - Prise en charge de l’annulation des commandes : “Une nouvelle propriété a été ajoutée au
[ICommand]
, qui peut être utilisé pour demander au générateur de source de générer une commande d’annulation à côté de la commande d’origine. Cette commande d’annulation peut être utilisée pour annuler l’exécution d’une commande asynchrone.” - Prise en charge des modifications de diffusion pour les propriétés générées : “Nous avons également ajouté un nouveau
[AlsoBroadcastChange]
attribut qui peut être utilisé sur une propriété observable générée à partir d’un type qui hérite deObservableRecipient
(ou qui est annoté avec[ObservableRecipient]
). Son utilisation générera un appel auBroadcast
, pour envoyer un message à tous les autres composants abonnés concernant le changement de propriété qui vient de se produire. Cela peut être utile dans les scénarios où un changement de propriété d’un modèle de vue doit également être notifié aux autres composants de l’application.”
Vous trouverez plus de détails sur tout ce qui précède et sur de nombreuses autres nouvelles fonctionnalités, améliorations et modifications, y compris les changements de rupture, dans le journal des modifications et l’annonce.
A propos de l’auteur
David Ramel est éditeur et rédacteur pour Converge360.
.