TechDays 2012 – Nouveautés WPF 4.5
Une version mineure WPF, mais pour quoi faire ? Certainement pour améliorer une version 4 encore fébrile...
Cette chronique ne sera pas très longue... En effet, je vais vous présenter les nouveautés annoncées sur le framework WPF4.5, version mineure du framework de présentation phare de Microsoft.
Nouveautés autour du Binding
Une nouvelle propriété
« Delay » fait son apparition. Elle va permettre de différer le
chargement des données liées au contrôle en question. Cette fonctionnalité est
idéale pour éviter un chargement intempestif lors d’un scroll sur une liste
d’items qui charge un détail de l’élément sélectionné. Lorsque l'utilisateur
s'immobilise le temps de ce « Delay » sur un item précis, alors son
chargement aura lieu.
Le binding sur les
propriétés statiques est rendue possible directement dans le xaml. Ce n’était
pas possible avant sans implémenter un peu de code à base de MarkupExtensions.
Microsoft nous offre une
nouvelle méthode de vérification du DataContext bindé à une propriété. Dans
l’éventualité où la référence à la donnée bindée ne soit plus disponible,
plutôt que crasher l’interface, il convient de tester si le DataContext n’est
pas « disconnected ». Cela dit, en architecture MVVM le cas ne devrait
pas arriver.
Nouveautés autour des contrôles
QAT (Quick Access
Toolbar) devient enfin disponible, à nous le beau ruban Office dans nos
applications WPF !
Le VirtualizingStackPanel
fait son apparition. Il s’agit d’un StackPanel enrichit d’un cache configurable
de préchargement. On évite alors de tout charger et on indique la fourchette de
preloading soit en pixels, soit en items.
Nouveautés autour des données
L’interface INotifyDataErrorInfo
va nous permettre de réaliser de la validation asynchrone.
La fonctionnalité de LiveShaping
rafraichit enfin uniquement le contrôle graphique CollectionView lorsque sa
collection bindée change. On évite alors le rendering global de l’application.
Deux propriétés sont associées à cette fonctionnalité : le LiveSorting et le LiveGrouping.
Nouveautés autour des outils
Il devient maintenant
possible d’accèder aux collections d’objets depuis des Threads non-UI.
Le pattern des WeakEvents
est grandement simplifié ce qui devrait ravir les fan de libération mémoire.
Le dispatcher a été
amélioré avec plusieurs nouvelles méthodes et les events sont équipés des
MarkupExtensions.
Et côté performances ?
Les ItemControls et le temps
de démarrage d’une application WPF ont été améliorés ! Cela rejoint la
volonté de Microsoft de rendre une interface graphique toujours plus fluide.
Une nouvelle propriété IsVirtualizingWhenGrouping
fait son apparition sur les listes d’éléments groupés afin d’améliorer
radicalement les performances de chargement.
Globalement, on notera un effort pour améliorer le
rendu WPF dans VisualStudio, mais Microsoft Blend reste toujours la référence pour
la vraie conception graphique.
En synthèse
Je n'ai pour ma part rien trouvé de révolutionnaire si ce n'est une amélioration générale du framework. Mais je pense que l'objectif ici est de faire vivre WPF qui obtient déjà l'adhésion de nombreux développeurs. La communauté ne peut donc que se réjouir de voir des petites améliorations enrichirent régulièrement leur outil.
Ces différents éléments ont été extraits du site msdn de Microsoft disponible à cette adresse : http://msdn.microsoft.com/en-us/library/bb613588(v=vs.110).aspx