如何使用MVC Web应用程序为ASP.NET设计插件体系结构

7wp*_*7wp 9 architecture asp.net-mvc plugins

简介: 现在我知道这个问题可能非常广泛,如果没有我提出具体问题,就很难回答.所以我问的只是一个方向,或对设计的简短高级解释,或者可能已经有一些框架可以帮助我开始...我不确定..我从来没有设计过一个插件以前的架构,所以也许有一些资源/示例你可以指点我在网上,这将有助于我学习,以便我可以拿出自己的解决方案.

我的问题的详细信息: 我的意图是我想为我在ASP.NET MVC中构建的新宠物项目创建一个插件架构.

我想设计它,以便它对应用程序的所有组件或至少大多数组件具有某种插件功能.

我想这样做的原因是,我可能能够以几乎零停机时间进行部署.我的想法是,当我想部署最新版本时,我会将新的DLL放入一个特定的文件夹中,然后应用程序会加载新的插件,就是这样.

举例来说,我可以说我在我的网络应用程序中添加了一个新的"联系人"功能,用户可以在其中搜索,添加和删除联系人.我希望能够通过插件来部署它.

Web应用程序甚至可以这样吗?还是我只是在做梦?

wom*_*omp 3

这绝对是可能的。

您将需要定义一个相当全面的接口来代表您的插件必须执行的所有操作。您应该通过区分应用程序的“核心”是什么以及可扩展点在哪里来处理它。例如,从哪里访问插件?它们是页面上的选项卡,还是侧边栏中的链接?每个插件需要具有哪些属性才能适合插件容器?

一般来说,插件是通过反射查找实现插件接口的程序集来枚举的。

只是为了鼓励,我们用一个企业产品来做到这一点,该产品为网站的“管理”界面提供了通用框架。开发人员只需放入构建特定属性页的插件 dll,它们就会显示在管理界面菜单中,所有导航都得到处理,而他们的 dll 只需要担心自己的域逻辑。