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

时间:2011-05-30 12:24:15

标签: asp.net-mvc plugins module

我正在设计一个应用程序的体系结构,其中包含许多子应用程序。这些子应用程序将由我们开发,但在稍后阶段。

我想将这些子应用程序创建为可安装的插件/模块,它可能有多个页面(.aspx页面),这些页面应该能够与主要核心应用程序交互并消耗其共享数据。

我严格要求可以通过操作配置添加文件夹 DLL 来安装插件/模块。

我的应用程序将是一个ASP.net Web应用程序。如果ASP.net MVC解决了目的,那么我也可以查找它。

我的应用程序将使用URL来识别要加载的模块。以下是我希望申请的一些网址的一些示例。

e.g。

http://www.myCoreApp.com/Module1/

http://www.myCoreApp.com/crm/

www.myCoreApp.com将托管我的核心应用程序,我的模块将在其中安装。

Module1,crm,accounting和xyz是My Core App上安装的模块。

2 个答案:

答案 0 :(得分:3)

你应该看一下MEF(Managed Extensibility Framework)。如果您的应用程序是ASP.NET Web窗体或MVC,或者即使是Winforms

,也没有区别

答案 1 :(得分:0)

我会选择MVC。

可以通过约定和检查某些初始化类型(如IModule)的实现来自动发现模块。

然后你可以在DI容器(如Windsor)中注册你的控制器,这样所有'共享'组件都将被容器注入。

HTH