ASP.Net MVC 5 MEF如何以编程方式导入和导出零件?

时间:2014-07-26 13:40:46

标签: asp.net-mvc plugins content-management-system mef

我已经在Stackoverflow上阅读了很多关于如何使用MEF和MEF的帖子以及那些链接,我没有在所有问题中找到答案,搜索互联网是如何创建插件的MEF可以从管理员设置页面打开,关闭,安装和卸载。

我正在尝试为MVC创建自己的CMS,并希望将MEF用作我的插件框架的一部分。

只需要知道如何以编程方式安装,卸载,打开和关闭为MEF制作的插件。

考虑编写“插件”以使用MEF,然后将其打包到Nuget中,可以从管理员设置页面安装和卸载它。

Nuget将负责安装和卸载

MEF负责注册插件,有些人可以选择打开和关闭插件。

示例情况:

  1. 用户安装CMS

  2. 用户进入管理部门 - >插件

  3. 用户可以看到他们可以安装并用于CMS的插件列表

  4. 用户点击“安装”,MEF插件已安装到CMS中

  5. 用户点击“开启”,MEF插件已准备好供系统使用

  6. 用户想暂时关闭插件,用户点击“关闭”

  7. 用户不再需要插件并点击“卸载”,插件将完全从CMS系统中删除。

  8. 用户意识到他们意外删除了错误的插件,用户再次点击“安装”。

  9. 目标是能够从管理员设置类型的页面控制插件能够安装,卸载,打开和关闭,这将是CMS中的一个很棒的功能。

    我知道其他CMS使用这种类型的函数作为他们的插件,但不知道任何使用MEF作为其框架的一部分来执行此操作。

    大多数人使用他们自己的内部插件框架来实现这些功能。

    我希望能够使用MEF框架来帮助实现这一目标。

    另一个目标是基本上有一个系统,其中针对MEF并在Nuget中打包的“插件”基本上可以托管在像Nuget.org这样的地方。

    在Nuget Package中,使用MEF“插件”所需的一切都包含在Nuget包中。

    但是,因为它正在使用MEF,所以这个包在技术上只能包含1个DLL,当用户安装Nuget包时,MEF会在他们的网站上注册dll。

    示例可以是博客,在包中它包含所需的一切。

    用户访问Visual Studio安装Nuget Package“Blog”并安装1个dll,其中包含所需的一切。

    MEF将在用户网站上注册该软件包,就是这样。

    用户方没有任何配置或任何内容。

    从Nuget拉取并安装即可:)

    谢谢,

    Brian Davis

0 个答案:

没有答案
相关问题