Jounce est un nouveau framework (ou toolkit) créé par Jeremy Likness (MVP Silverlight travaillant aux USA pour Wintellect) et publié sur CodePlex (jounce.codeplex.com) où le toolkit est défini de la façon suivante :
Jounce est un framework pour Silverlight ayant pour but de fournir des blocs de base pour la construction d'applications de gestion et d’entreprise modulaires qui suivent le modèle MVVM et qui utilisent MEF (Managed Extensibility Framework). Jounce s’inspire de frameworks existants que vous êtes invités à découvrir, dont Prism.
Le PDF de l'article ainsi que les nombreux codes sources exemples peuvent être téléchargés sur Dot.Blog, www.e-naxos.com/blog (lien fourni en fin d'articles)
Version 1.0 Septembre 2011
Sommaire
Code Source 5
Préambule 6
MEF 6
MVVM 7
Jounce vs MVVM Light 7
Différences et similitudes 8
Pourquoi utiliser MEF 10
Quel choix au final ? 10
Que propose Jounce ? 11
La Librairie 12
Présentation 12
Le code 13
Le Tree Map et les espaces de noms 13
L'organisation du code 15
Graphe des dépendances 17
L'organisation des espaces de noms 19
Les bases 20
L'architecture globale d'un projet 21
Les références à MEF 21
La référence à Jounce 22
App.xaml, Application Service, et messagerie 22
La MainPage. Connexion au ViewModel et Blendabilité. 25
MainPage.xaml 25
Le support des données de conception 26
Le code de MainPage 30
MainPage.Xaml 30
MainPage.Xaml.cs 31
L'interface du ViewModel 31
Le ViewModel « réel » 32
Le ViewModel de design 32
Point intermédiaire 33
L'essentiel sur ... 33
L'Application Service 33
Marquage d'une Vue 35
Marquage d'un ViewModel 36
BaseViewModel, BaseNotify et IViewModel 36
ViewModelRouter 40
Créer des routes 44
Point Intermédiaire 44
BaseEntityViewModel 45
L'exemple BaseEntityVM 46
Le résultat final 46
Le code, généralités 47
L'interface du ViewModel 48
Le ViewModel de conception 48
Le ViewModel de runtime 49
La région IMainViewModel 49
La région des validations 51
La région du constructeur 54
La région du code privé 55
La Vue - Code-behind 56
La Vue - Xaml 56
Point Intermédiaire 57
Les Commandes 58
L'exemple du clic sur un Rectangle 61
L'exemple du Slider 63
ActionCommand 66
Le code de l'exemple 69
Point intermédiaire 73
La messagerie EventAggregator 73
L'exemple 75
Le visuel 75
Le code 76
L'émetteur 77
Le récepteur 77
Navigation simplifiée : Event Aggregator et ViewRouter 79
Naviguer ? 79
ViewRouter 80
Le mécanisme 80
L'exemple 82
Les régions 82
L'exemple 83
Chargement de XAP 86
Logger personnalisé 88
Créer un Logger personnalisé 89
Workflows 94
Qu'est qu'un Workflow Jounce ? 95
L'exemple 96
Le visuel 96
Le code 97
VSM Aggregator et GotoVisualState 99
GotoVisualState 101
Exemple 102
Visual State Aggregator (VSA) 104
Conclusion 108
Table des Figures et des Tableaux
Figure 1 - Tree Map des namespaces (en IL) 14
Figure 2 - le tree map (en nombre de classes) 15
Figure 3 - L'oganisation des sources de Jounce 16
Figure 4 - Graphe des dépendances 18
Figure 5 - Le template Jounce 20
Figure 6 - L'arbre du projet template 21
Figure 7 - MainPage par défaut 26
Figure 8 - Le mécanisme des données de conception 28
Figure 9 - L'application BaseEntityVM en cours d'utilisation 47
Figure 10 - InvokeCommandAction et le Slider 66
Figure 11 - ActionCommand. Affichage de l'application 67
Figure 12 - ActionCommand. Sélection d'une personne 68
Figure 13 - ActionCommand. Le bouton a été cliqué 68
Figure 14 - Event Aggregator - Envoi de message 75
Figure 15 - Event Aggregator - Exception non gérée 76
Figure 16 - Logger personnalisé 93
Figure 17 - Workflow 96
Figure 18 - Mr Smiley est content ! 102
Figure 19 - Mr Smiley est triste ! 103
Figure 20 - VSA - Panel A (B désactivé) 104
Figure 21 - VSA - Panel B activé 104
Tableau 1 - Similitudes et Différences entre Jounce et MVVM Light 8
Code Source
Ce livre blanc est accompagné du code source complet des exemples. Si vous le recevez sans ces derniers il s'agit d'une copie de seconde main. Téléchargez l'original sur www.e-naxos.com/blog.
Décompressez le fichier Zip dans un répertoire de votre choix. Attention les projets nécessitent Silverlight 4 et Visual Studio 2010 au minimum, Expression Blend 4 est conseillé mais non obligatoire. Les exemples utilisent tous le framework Jounce téléchargeable sur CodePlex (voir l'adresse dans le Préambule) mais possèdent leur propre copie de la dll et peuvent être exécutés sans installation de Jounce préalable.
Code des exemples fournis sous la forme d'une solution contenant les divers projets.
Solution ODJounceSamples.sln
Exemple1 BasicJounceApp
Exemple2 BaseEntityVM
Exemple3 SLInvokeCommand (dans une solution à part, n'utilise pas Jounce)
Exemple4 CommandDemo
Exemple5 EventAggregator
Exemple6 SimpleNavigation
Exemple7 SimpleNavitationWithRegion
Exemple8 CustomLogger
Exemple9 Workflow
Exemple10 GotoVisualState
Exemple11 VSMAggregator
==Téléchargement du livre=
Lien de téléchargement: http://www.e-naxos.com/Blog/post/Article-JOUNCE.aspx
Formations .NET - Audit, Conseil, Développement, UX
Articles et Livres Blancs gratuits à télécharger www.e-naxos.com
Dot.Blog, le blog www.e-naxos.com/blog
© Copyright 2011 Olivier DAHAN
MICROSOFT MVP Silverlight 2011, MVP Client App Dev 2010, MVP C# 2009
Reproduction, utilisation et diffusion interdites sans l'autorisation de l'auteur. Pour plus d'information contacter odahan@e-naxos.com