MEF et Silverlight - applications modulaires

MEF et Silverlight 4+ [Applications modulaires]

A propos de l'auteur

Formations .NET – Audit, Conseil, Développement

Articles 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

Présentation du livre blanc

Sommaire

Code Source    4

Préambule    5

MEF – Le besoin    6

Du lego, pas un puzzle !    8

MEF et MVVM    9

Principes de base : Exportation, Importation, Composition    10

L’exportation    11

L’importation    12

La composition    13

L’esprit de MEF    13

Les métadonnées    14

Exportation de métadonnées    15

Importation de métadonnées    15

Les métadonnées personnalisées    15

Point intermédiaire    16

Exemples pratiques    16

Le Hello World de MEF    16

Les namespaces    16

Le visuel    17

Le code    17

Gestion de plusieurs modules et métadonnées    19

Le visuel    20

Le principe de fonctionnement    20

Le Code    21

La MainPage    21

Le code C# de MainPage    22

Le code des modules    23

Point Intermédiaire    25

Métadonnées fortement typées    25

Digression    26

Binder le Background d’un UserControl à l’un de ses éléments    26

Colors n’est pas une énumération    28

Fin des digressions    29

Métadonnées via une Interface    29

Ajout de la seconde métadonnée    29

Création de l’interface des métadonnées    29

Modifier l’importation    30

Modification de la séquence d’affichage    30

Filtrage des métadonnées    30

Point intermédiaire    31

Attribut d’exportation personnalisé    31

Point intermédiaire    33

Organiser les déclarations    33

Les différentes exportations    34

Exportation de parties composables    34

Exportation de propriétés    34

Exportation de méthodes    35

Les exportations héritables    36

Public ou Private ?    36

Lazy<T> et le chargement différé    37

Chargement différé immédiat    38

MEF, MVVM et Chargement Dynamique de XAP    39

Le projet    40

Le projet en action    41

Ce que nous n’étudierons pas    44

ListBox    45

ComboBox    45

Par où commencer ?    45

Prism, MEF, Jounce, Unity, MVVM Light, Caliburn ?    46

MVVM Light    46

Prism    46

MEF    46

Unity    47

Jounce    47

Caliburn.Micro    47

L’heure du choix    47

L’architecture globale    48

Le partage des tâches    48

L’organisation de la solution    49

Le code de l’exemple    49

Les contrats    49

IWidgetBehavior    50

WidgetInfo    51

WidgetArea    51

IWidgetMetaData    52

WidgetExportAttribute    52

Le Shell    53

IDeploymentService    54

DeploymentCatalogService    55

MainPage    57

Les Bindings de la MainPage    59

MainPageViewModel    59

Le Widget1    61

Visuel et binding    61

Le code-behind    62

Le problème de l’interface métier    63

Widget1ViewModel    66

Le chargement dynamique    67

Les premières extensions    67

Catalogue de modules    69

Chargement du catalogue    70

Les extensions supplémentaires    72

Conclusion    73

Table des figures

Figure 1 - L'application idéale    7

Figure 2 - Dans la vraie vie...    7

Figure 3 - Une application est faite de "parties"    9

Figure 4 - Le principe d'exportation    11

Figure 5 - le principe d'importation    12

Figure 6 - le principe de composition    13

Figure 7 - Hello MEF !    17

Figure 8 - Hello MEF (clic)    17

Figure 9 - Modules multiples    20

Figure 10 - DynamicXAP - Le Shell au lancement    41

Figure 11 - DynamicXAP - Chargement des extensions    42

Figure 12 - DynamicXAP - Le rôle utilisateur    43

Figure 13 - DynamicXAP - Rôle Administrateur    43

Figure 14 - DynamicXAP - Rôle Anonyme    44

Figure 15 - Widget1 - Visuel    62

Figure 16 - Widget2 de Extensions.XAP    68

Figure 17 - Widget3 de Extensions.XAP    68

Figure 18 - Widget4    72

Figure 19 - Widget5    73

Code Source
Cet article 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.

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. Le dernier exemple utilise le toolkit MVVM Light de Laurent Bugnion.

Projets fournis

Exemple1     « HelloWord » , Importation de propriété et de champs

Exemple2    « MultipleModules », Importation de plusieurs modules

Exemple3    « TypedMetaData », Métadonnées fortement typées

Exemple4    « CustomAttribute », Attribut d’exportation personnalisé

Exemple5    « DynamicXap », Chargement dynamique et MVVM

Téléchargement

Le livre blanc peut être téléchargé à l'adresse suivante: http://www.e-naxos.com/Blog/post/MEF-et-Silverlight-(article-a-telecharger).aspx

Ce document intitulé « MEF et Silverlight - applications modulaires » 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