Le livre blanc de Jounce - MVVM et MEF avec Silverlight

Description

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)

Présentation du livre blanc

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

Avertissement

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

Ce document intitulé « Le livre blanc de Jounce - MVVM et MEF avec Silverlight » issu de CodeS SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Rejoignez-nous