CodeS-SourceS
Rechercher un code, un tuto, une réponse

MEF et Silverlight - applications modulaires

Mai 2017


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

A voir également

Publié par odahan.
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.
Ajouter un commentaire

Commentaires

Donnez votre avis
Le livre blanc de Jounce - MVVM et MEF avec Silverlight
Utilisation du Binding au travers de l'objet DataBindingSource