J'ai téléchargé Prisme v4 et j'ai lancé le programme d'installation. Je suis allé dans le répertoire et j'ai exécuté les deux fichiers batch suivants :
- Ordinateur de bureau uniquement - Open Modularity With Mef QuickStart.bat
- Ordinateur de bureau uniquement - Open Modularity With Unity QuickStart.bat
Lorsque je compile ces applications, je ne vois pas de réelle différence. J'ai cherché MEF vs Unity et j'ai trouvé quelques pour/contre, mais rien qui indique spécifiquement si l'un est "meilleur" (et je sais que c'est subjectif) avec une utilisation dans Prism. Je suppose que si j'énumère mes besoins, quelqu'un pourra m'indiquer les technologies correctes à utiliser (même si ce n'est pas Prism 4).
- L'application doit être écrite en WPF ( PAS Silverlight).
- L'application principale sera extrêmement fine.
- L'application principale utilisera un service Web pour construire le menu des "apps/modules" auxquels une personne a accès.
- Les "apps/modules" seront entièrement contenus dans d'autres bibliothèques gérées.
- L'application principale obtient des vues et des modèles de vues en réfléchissant dans ces DLL.
- L'application principale doit alimenter ces "apps/modules" en services de journalisation, etc.
Par exemple :
Un utilisateur de base pourrait avoir les options suivantes :
- Enregistrement d'adresse en mode consultation seulement
Tous les éléments relatifs à l'adresse se trouvent dans Address.dll.
Un utilisateur avancé pourrait avoir les options suivantes :
- Nouvel enregistrement d'adresse
- Ouvrir l'enregistrement de l'adresse (mise à jour/suppression)
- Gérer les utilisateurs
Tous les éléments relatifs à l'adresse se trouvent dans Address.dll.
Tous les éléments liés à la gestion se trouvent dans Admin.dll.
L'application ne devrait pas réellement faire référence à l'une ou l'autre de ces DLL, je prévois d'y réfléchir de sorte que s'il y a 100 modules différents et qu'un utilisateur n'a accès qu'à 2 d'entre eux, seuls 2 d'entre eux sont téléchargés et utilisés. Alors qu'un utilisateur qui a accès à 10 d'entre eux obtient ces 10 modules.
J'ai déjà résolu le problème du téléchargement de la DLL via le WebService :)