【问题标题】:Application plugin system应用插件系统
【发布时间】:2010-10-10 15:41:32
【问题描述】:

我正在编写一个 ASP.NET MVC 2 应用程序,开发人员可以使用插件对其进行扩展。我已经开始考虑如何创建一个插件系统。 (例如,像 Joomla 的)

我对如何做到这一点有些疑问。我在网上搜索了一下,发现有两种可能的解决方案。

  • 使用接口或抽象类来实现方法和插件结构、加载程序集、将对象转换为接口并在我需要挂钩系统时调用插件应具有的方法。

  • 使用 C# 事件加载程序集并引发我需要挂钩系统的事件。构造函数中的插件将使用我的应用程序提供的事件注册函数。

什么是最好的解决方案?有哪些性能注意事项?还有什么其他方法?

【问题讨论】:

    标签: c# asp.net-mvc reflection plugins


    【解决方案1】:

    与其编写自己的插件系统,不如考虑使用微软自己的插件框架Managed Extensibility Framework (MEF)。

    【讨论】:

    • 我不认为 MEF 是我真正需要的......它很复杂,我只需要一个基于插件的系统,允许开发人员编写自己的插件,将其注册到大型机和应用程序做剩下的......但我对什么用途,接口/抽象类或事件有疑问
    • MEF 非常适合我一直在做的事情。特别是使用 MEF 创建模块化 ASP.NET MVC 站点是我打算做的。我在博客上写了fidelitydesign.net/?p=130
    【解决方案2】:

    查看 Codeplex 上的 Orchard 项目。 Microsoft 开发人员已经建立了类似于您所描述的插件机制。它相当复杂的东西......

    【讨论】:

    • 这个果园的好项目!我会检查它
    猜你喜欢
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多