如何在ASP.net/ASP.net MVC中开发基于可插拔/可安装模块的应用程序

问题描述

|| 我正在设计一个应用程序的体系结构,其中将包含许多子应用程序。这些子应用程序将由我们开发,但会在稍后阶段。 我想将那些子应用程序创建为可安装的插件/模块,其中可能具有多个页面(.aspx页面),这些页面应能够与Main Core Application交互并也使用其共享数据。 我严格要求通过操作配置或添加文件或DLL的文件夹来安装插件/模块。 我的应用程序将是一个ASP.net Web应用程序。如果ASP.net MVC解决了这个问题,那么我也可以寻找。 我的应用程序将使用URL来标识要加载的模块。以下是一些我希望拥有其应用程序的URL的示例。 例如 http://www.myCoreApp.com/Module1/ http://www.myCoreApp.com/crm/ www.myCoreApp.com将托管我的核心应用程序,其中将安装我的模块。 Module1,crm,accounting和xyz是My Core App上已安装的模块。     

解决方法

        您应该看一下MEF(托管扩展框架)。如果您的应用程序是ASP.NET Web表单或MVC,甚至是Winforms,也没有关系     ,        我会去MVC。 可以自动发现模块-可能是通过约定并通过检查某种初始化类型(如IModule)的实现来实现的。 然后,您可以在DI容器(例如Windsor)中注册控制器,以便所有“共享”组件都将被该容器注入。 高温超导