Pour réaliser une application WPF sur le modèle MVVM que dois-je faire aujourd'hui en 2019 ? J'en suis resté à quelque chose de pas très fini ni tout à fait utilisable à mon sens.
Nous avons chacun un petit bout de MVVM Design Pattern implémenté à sa sauce, je cite pelle mêle, Laurent Bugnion, Josh Smith (who thanks John Gossman), Prism, Wilfried Woiré, Alexy Shelest ...
J'ai également contribué à l'époque avec le GitHub - WPF Prims Toolkit.
Avec Prims ou pas Prism avec MEF ou pas MEF ...
Pour accéder à la librairie PRISM :
Cette image vient de PRISM |
Alors, je reprends les reines et j'espère bien qu'aujourd'hui, si j'instancie une nouvelle Application Desktop WPF avec mon Visual Studio 2017 Community le framework design pattern MVVM est déjà dans mon Template d'application WPF. Non ?
Malheureusement, je replonge dans les affres d'MVVM avec des sites actuels qui m'expliquent ce qu'est le modèle M-V-VM :
Nipun Tomar présente le Design Pattern MVVM comme si c'était un truc nouveau le "last update" de son article date de Fev 2018 ! Alors qu'en bas (conseil pour connaitre la vraie date d'un article allez voir les commentaires) les commentaires dates de 2013. On est où ? En 2018 ou en 2013 ?
Bon, j'avoue les explications sont vraiment très bonnes et très complètes sur la comparaison des modèles MPV, MVC et MVVM, si vous ne connaissez pas MVVM ça peut bon à prendre.
Pour le reste, je dois retourné avec Laurent Bugion et la chose principale qui a changée depuis lors c'est la disparition du CodePlex snif ! Laurent Bugnion a migré son projet dans GitHub :
GitHub - Laurent Bugnion - mvvmlight
C'est bien parce qu'il existe encore et malgré tout, cela permet de voir que la communauté est vivante. Mais son framwork est orienté portabilité Xamarin.Android, Xamarin.iOS, Xamarin.Forms, WPF. C'est curieux il cite encore Silverlight :-))
Et à part ça ?
SupInfo - WPF - MVVM : Le Data Binding (lien supprimé devenu payant sans doute)
Ils sont mignons, aucun code, tout à la mimine, depuis zéro, en Oct. 2015 ! Et bien ils ne sont pas en avance.
Et donc, en continuant mes recherches, je retrouve également Prism et son nouveau site ... avec peut-être en roadmap la version 6.0.
Prism Library - Implementing the MVVM Pattern Using the Prism Library for WPF |
Voilà, alors faut-il aller plus loin ? Je pense qu'il me faut commencer par installer un Template. C'est tout en bas de la page :
Prism Template Pack |
Ce n'est pas un NuGet mais une extension Visual Studio :
Visual Studio -> Outils -> Extensions et mises à jour ...
Je n'ai pas trouvé si facilement, j'ai du aller dans -> En ligne -> Visual Studio Marketplace -> Modèles -> Visual C# -> WPF et dans la barre de recherche je tape "Prism" :
Extension Visual Studio - Prism |
Voilà, je vais tester tout ça te revenir vous dire si on peut faire une Application Desktop WPF efficace avec tout ça.
Il y a un nom a retenir c'est Brian Lagunas qui est le "product owner" de Prism 6.0 qui sortira surement bientôt ;) et qui est totalement "Open Source".
Pour faire fonctionner quelques exemples comme :
GitHub - Brian Lagunas - InfragisticsWebinarSimpleMVVMPrism
L'installation du Prism Template Pack n'a pas suffit. J'ai du exécuter la commande suivante dans la Console du Gestionnaire de package :
PM> Install-Package System.Windows.Interactivity.WPF -Version 2.0.20525
Pour la suite je me permets de noter un autre lien :
GitHub - PrismLibrary / Prism
Have fun!