ASP.Net Web应用程序的插件

时间:2016-04-28 11:51:10

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

我正在使用ASP.NET MVC框架开发用C#编写的Web应用程序。

我想允许我的客户为Web应用程序编写自己的插件。每个客户都有自己的数据库。

我有一些想法如何做到这一点:

  1. 我将提供一个允许用户上传他的程序集dll的界面。这会将dll存储在客户端的特定plugins-folder中。
  2. 我将为类和方法注释提供一些C#接口和属性。
  3. 服务器的业务逻辑将检查每个插件并使用这些属性或接口实现搜索类和方法,以覆盖或更改它在某些点上的默认行为。
  4. 为了提高性能,我会实现某种形式的缓存,每次上传新插件时都会失效。
  5. 现在我的问题:

    我如何允许用户编写插件?我的意思是如何为此提供某种SDK?用户主要需要C#接口和注释,但开发人员还希望在将插件上传到生产服务器之前测试该插件。我可以将我的webapplication包装在某种DLL中,开发人员可以加载它以进行测试但不读取源代码吗?或者还有其他方法吗?

    感谢您提供任何相关信息!

1 个答案:

答案 0 :(得分:3)

您应该看一下MEF(Managed Extensibility Framework),这是Microsoft为了启用插件应用程序而创建的框架。

简而言之:您创建了一个包含契约(接口)的库。您将该库提供给客户并告诉他们根据这些接口编写插件。

然后你告诉你的应用程序,当它需要width时,需要在插件文件夹中搜索IPlugin的实现并使用它。

一些研究网址: