La dernière version (5.1.1) de Mvvm Light fonctionne très bien sous UWP mais Laurent n’a pas eu le temps d’intégrer les habituels templates de projets à la librairie. Ce n’est pas très difficile à faire à la main mais on peut oublier un réglage ici ou là. Voici donc un template en attendant que les officiels (re)fassent leur apparition dans Mvvm Light !
Template MVVM Light
C’est tout bête mais les templates Visual Studio font gagner beaucoup de temps et permettent de démarrer très rapidement une application sans se poser trop de questions sur les pré-requis.
Mvvm Light n’est pas une librairie très complexe et comme je l’ai montré dans un article récent ajouter à la main les petites modifications au projet n’est pas sorcier. Encore faut-il savoir quoi changer, où le changer et quoi ajouter.
Partir d’un template est donc mille fois plus facile.
Mais pour l’instant Laurent n’a visiblement pas eu le temps d’ajouter les habituels templates au paquet Nuget de Mvvm Light 5.1.1 (la dernière quand j’écris ces lignes).
Un template temporaire
Comme je déteste les choses répétitives je me suis fais un template Mvvm Light. Et comme je suis généreux, plutôt que de le garder pour moi je vais le partager avec vous il est là, il attend juste d’être téléchargé :
Une fois le VSIX installé dans VS 2015, faites nouveau / projet puis chercher le template suivant :
A noter une petite curiosité : lorsqu’on créée un nouveau projet avec ce template deux références ne semblent pas être ajoutées, ce sont celles entourées de rouge dans la capture suivante :
Il ne s’agit pas d’un oubli mais d’un comportement étrange de VS 2015. La première chose à faire c’est de faire un Build. Puis essayez de changer la cible qui se met parfois par défaut à ARM. Passez là à x86 ou x64, après quelques essais de ce genre les deux références apparaissent enfin et tout rentre dans l’ordre. Car tant que VS s’obstine à ne pas les afficher les références les plus simples comme celles à “System” sont en erreur dans le code. Alors que le Build passe sans erreur lui…
Bref, une fois les références revenues à leur place (un peu magiquement) le template est fin prêt à être utilisé !
Un Run vous le prouvera :
De même qu’en mode design vous verrez s’afficher :
Selon les habitudes de Laurent j’ai conservé un IDataService et deux implémentations, l’une de design et l’autre de runtime. Donc au design on dispose de données de design (le message indique “debug” c’est une petite erreur mon clavier a fourché il faut lire “design” mais refaire le VSIX pour ça était un peu contraignant…).
Bref, vous trouverez dans ce template tout ce qu’on trouve généralement dans les templates fournis habituellement avec Mvvm Light à savoir des services, un répertoire pour les ViewModel avec le MainViewModel et le ViewModelLocator, une MainView connectée au MainViewModel et sa seule propriété “Hello”, la création de la ressource pour le locator dans App.xaml, l’initialisation du DIspatcherHelper, etc.
Tout cela est déjà fait et on peut donc travailler tout de suite…
Conclusion
La création d’un template installable en mode VSIX n’est pas très compliquée et cela simplifie tellement les choses…
En attendant les templates officiels qui finiront bien par arriver un jour,
bon dev et …
Stay Tuned !