2009-10-16 5 views

Répondre

0

CAB and SCSF fait exactement cela. Là vous avez un shell qui est votre forme de départ et là vous chargez les modules en fonction de ce que l'utilisateur demande. Les modules peuvent être chargés à partir du système de fichiers ou d'un autre stockage.

Il utilise un système de gestion des événements pour indiquer quel module devrait charger où, de telle sorte que vous pouvez avoir plusieurs équipes de développement où chacun travaille sur son propre module, ils ont seulement besoin de décider de l'API.

+0

Cher armannvg, Merci pour une réponse rapide, pouvez-vous fournir un exemple d'application dans C# qui implémente cela. – Vivek

+0

Je l'ai fait il y a quelque temps dans une entreprise cliente, je n'ai pas le code. Mais voici quelques ressources qui pourraient être utiles http://www.orbifold.net/default/?p=706 http://www.agileprogrammer.com/dotnetguy/articles/NewModuleLoaderForCAB.aspx – armannvg

0

Vous avez besoin d'un événement dans votre Shell, qui va avoir Menu. Shell s'abonnera à l'événement qui ajoutera des éléments de menu. Le module en charge doit déclencher un événement avec des arguments d'événement spécifiant les détails de l'élément de menu, y compris son contenu de propriété de tag unique à ajouter.

Lorsque vous cliquez sur les éléments de menu, déclenchez l'événement unique et envoyez l'étiquette associée à l'élément de menu. De cette façon, les modules individuels peuvent décider d'écouter et d'agir sur l'événement ou non en fonction de l'EventArgument (qui est l'étiquette associée au menu)

Nous avions un ensemble fixe de menus, les modules lors de l'exécution servaient à dicter quels menus doivent être activés ou désactivés. Suis assez sûr que vous pouvez également implémenter des menus dynamiques.

Questions connexes