Je pense que je vais prendre le modèle MEF. Mais j'ai du mal à voir s'il correspond à ce que j'essaie de faire.
J'ai une application qui fait appel à des plugins tiers pour effectuer un traitement vidéo. Le plugin peut être FFMPEG.exe ou x264.exe, peu importe. Le processus d'appel des plugins se fait par l'intermédiaire du ProcessStartInfo (essentiellement par la ligne de commande) et en passant un certain nombre de paramètres, par exemple
ffmpeg.exe -in "c:\vid.avi" -out "c:\vid.avi" -Xheight 100 -Xwidth 100
or
x264.exe -in "c:\vid.avi" -out "c:\vid.avi" -Yheight 100 -Ywidth 100
Il est évident que chaque plugin aura ses propres jeux de paramètres. Est-il approprié d'utiliser MEF pour que l'interface soit la même quel que soit le plugin utilisé (alebit via un contrat public) ? Si oui, dois-je écrire une classe wrapper pour chaque plugin implémentant le contrat ?
Est-ce la bonne façon d'utiliser le MEF ? D'un côté, j'essaie de rendre mon application extensible en permettant aux clients de choisir leurs plugins. Mais en réalité, je ne suis pas sûr que le MEF ne soit pas excessif et que l'utilisation de fichiers de configuration pour stocker la commande ne soit pas une meilleure approche ?