为了确保我们采用正确的方法来构建我们的MEF插件,关于将每个插件作为单独的程序集是否有意义存在争议。
例如,假设我们有一个DataProcessors解决方案,我们开始为我们收到的每种不同类型的数据文件开发不同的处理器。当每个处理器联机时,我们希望能够让MEF目录包含这个新插件。但是,由于VS和我们的构建环境中的性能受到影响,我们担心其中包含约100个项目的解决方案。
我认为将这些处理器中的每一个隔离成一个组件是有意义的,这使得该组件的责任有限。但是有成本。
有没有人对一种方法是否比另一种方法更好有经验?
答案 0 :(得分:2)
我必须处理的情况与你的情况略有不同,因为我的每个项目都包含一个“模块”,其中包含许多MEF导出的功能。 如果我打算单独分发它们或计划向每个客户分发不同的功能,我通常只会分成不同的程序集。
我不认为你应该在组织没有MEF的类和程序集时做出的决定采用不同的方式。如果您始终使用所有这些导出释放所有产品,请将它们全部包含在一个程序集中。
我很想听听别人的意见!
答案 1 :(得分:0)
没有正确或错误的答案。您可以决定将多个处理器捆绑到同一个程序集中,也可以使用每个程序集方法。后者为您提供了最大的灵活性,但前者在分发时可能更有效。
我会查看您打算进行的更新的频率,并可能将它们组织成一组处理器,围绕一个共同的基本数据类型或操作。
E.g。我可以有一个整数处理器的集合,以及另一个字符串处理器的集合。
正如我所说,没有正确或错误的方法。