【问题标题】:Plugins for ASP.Net WebapplicationASP.Net Web 应用程序的插件
【发布时间】:2016-04-28 11:51:10
【问题描述】:

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

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

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

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

现在我的问题:

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

感谢您提供有关这方面的任何信息!

【问题讨论】:

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


    【解决方案1】:

    您应该看看 MEF(托管可扩展性框架),这是 Microsoft 创建的一个框架,用于启用插件应用程序。

    简而言之:您创建了一个带有合约(接口)的库。您将该库提供给您的客户,并告诉他们基于这些接口编写插件。

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

    一些研究网址:

    【讨论】:

      猜你喜欢
      • 2010-09-21
      • 1970-01-01
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      • 2012-12-30
      • 1970-01-01
      • 1970-01-01
      • 2010-11-24
      相关资源
      最近更新 更多