mai
2010
Après plus d’un mois de traduction, relecture et corrections diverses, je viens enfin de terminer un joli petit dossier sur l’utilisation de MEF (Managed Extensibility Framework), le framework permettant de créer facilement une application pouvant être étendue par le biais de plugins.
Sans plus attendre, voici le lien vers l’article : http://laedit.developpez.com/CSharp/MEF/Programming_Guide/
Et le sommaire :
I. Introduction
I-A. Qu’est-ce que MEF
I-B. Quels sont les problèmes que MEF peut résoudre
I-C. Comment fonctionne MEF
I-D. Vue d’ensemble de l’architectureII. Guide de programmation MEF
II-A. Héberger MEF dans une application
II-A-1. Ajout d’une Part directement dans le container
II-A-2. Ajout en utilisant un AssemblyCatalog
II-B. Définition des Composable Parts et des contrats
II-B-1. Composable Part
II-B-2. Contrats
II-B-2-1. Contrats d’interface / abstraits
II-B-3. Assemblage de contrats
II-C. Déclaration des exports
II-C-1. Export de Composable Part
II-C-2. Export de propriétés
II-C-3. Export de méthodes
II-C-4. Héritage d’export
II-C-5. Découverte de Composable Parts privées
II-D. Déclaration des imports
II-D-1. Import de propriétés
II-D-2. Paramètre de constructeur
II-D-2-1. Import de paramètres
II-D-3. Import de champs
II-D-4. Imports optionnels
II-D-5. Import de collections
II-D-6. IPartImportsSatisfiedNotification
II-E. Imports différés
II-F. Exports et métadonnées
II-F-1. Ajouter des métadonnées à un export
II-F-1-1. Utiliser l’attribut ExportMetadata
II-F-1-2. Utiliser un attribut d’export personnalisé
II-F-2. Importer des métadonnées
II-F-2-1. Utiliser des métadonnées fortement typées
II-F-2-2. Utiliser des métadonnées faiblement typées
II-F-2-3. Le filtrage des métadonnées et l’attribut DefaultValueAttribute
II-G. Utilisation des catalogues
II-G-1. AssemblyCatalog
II-G-2. DirectoryCatalog
II-G-3. AggregateCatalog
II-G-4. TypeCatalog
II-G-5. DeploymentCatalog – uniquement dans Silverlight
II-G-6. Utilisation d’un catalogue dans un Container
II-H. Catalogues filtrés
II-I. Cycle de vie des Parts
II-I-1. Shared, Non Shared et propriété
II-I-2. Disposer le container
II-I-3. Container et références des Parts
II-I-4. Scoped operations et récupération rapide des ressources
II-I-5. Hiérarchie des containers
II-I-6. Ordre de disposition
II-I-7. AddPart / RemovePart
II-J. Recomposition
II-J-1. Mises en garde
II-J-2. La recomposition et Silverlight
II-K. Requêter le CompositionContainer
II-K-1. GetExportedValue
II-K-2. GetExport
II-K-3. GetExportedValueOrDefault
II-L. Composition Batch
II-M. Débogage et diagnostics
II-M-1. Diagnostiquer les problèmes de composition
II-M-1-1. Problèmes liés au rejet
II-M-1-2. Dump Composition State
II-M-1-3. Trouver les root causes probables
II-M-1-4. Débogage des proxies
II-M-2. Mefx : outil d’analyse en ligne de commande
II-M-3. Tracer les informations de composition
II-N. FAQ
II-N-1. Comment avoir des exports utilisant un objet Type
II-N-2. Comment utiliser des containers imbriquésIII. Fonctionnalités spécifiques à Silverlight
III-A. Héberger MEF dans Silverlight en utilisant le CompositionInitializer
III-A-1. Utilisation de CompositionInitializer depuis des éléments XAML
III-A-2. Mises en garde dans l’utilisation de CompositionInitializer.SatisfyImports
III-B. Redéfinir la configuration de l’hôte
III-B-1. Redéfinition grâce aux catalogues
III-B-1-1. Configurer la découverte des Parts dans le XAP courant
III-B-2. Redéfinition grâce à un container
III-C. Instanciation dynamique et ExportFactory<T>
III-C-1. ExportFactory<T>
III-C-2. ExportLifetimeContext<T>
III-D. Partitionnement d’application avec le DeploymentCatalog
III-D-1. DeploymentCatalog
III-D-2. Télécharger des Parts après le démarrage de l’application
III-D-3. Composer dynamiquement les Parts téléchargées et utiliser la recomposition
III-D-4. Téléchargement des Parts à la demande après démarrage de l’application et basé sur les actions de l’utilisateur
III-D-5. Gestion des erreurs durant le téléchargement
III-D-6. Mise à jour de la progression
III-D-7. Annulation du téléchargement
III-D-8. Utilisation du DeploymentCatalog quand l’application est hors-ligne ou Out of Browser
III-D-9. Mises en garde contre l’utilisation du DeploymentCatalogIV. Codes sources et exemples
V. Liens
VI. Remerciements
VII. Contact