我正在对一个大型Web项目进行重构/重组。该网站将包括可以在每个实现上安装或不安装的几个不同模块,以及一些客户特定模块。因此,我需要使用可插拔的体系结构。
[我们管理核心产品的解决方案以及每个客户的解决方案时,我认为最好的选择是构建一个非常简单且尽可能空的Web项目(WebHost
),将其包含在每个解决方案中加载相应的模块。在核心产品解决方案中,这将是标准模块,在客户解决方案中,这将是核心产品和客户模块中的已编译(dll +静态内容)模块。
此外,该公司还有几种产品,以后可能以类似的方式进行重构。因此,如果我可以完全独立于每个项目来创建此WebHost
,那就太好了。它不应具有任何特定于产品的参考,并且只能加载未知的Web模块。
经过一些研究,我认为最好的方法是MEF。有很多关于如何使用ASP.NET MVC + MEF的SO文章和文章。我开始按照SO this post创建PoC。我无法使其正常运行(see this post)。但是,在尝试使其工作时,我开始感觉到也许由于以下原因,这不是可行的方法:
WebHost
项目添加一些特定于模块的设置才能使其正常运行(请参阅我的其他已链接文章)。我不喜欢使用MEF或其他任何东西,因此,我想听听您对这种情况的建议。这里是我需要的摘要:
WebHost
应该可用于其他产品。