2011-03-09 27 views
4

我真的很喜欢WinForms中的插件架构。我想在Asp.net中使用插件架构。但我搜索插件弧。在asp.net中,我创建了asp.net MVC示例。坚果我不想使用微软mvc存储​​库。我想使用经典的asp.net项目。但我没有找到足够的结果....如何在ASP.NET中使用插件架构?

+0

本身没有标准的插件架构。 MEF(如Jan Remunda指出的)是一种选择,但在某些情况下它可能是一种矫枉过正。你希望能够做到什么。 – 2011-03-09 07:26:12

+1

因为在WINFORMS中没有插入式曲面,Especialyl。你在说什么? – TomTom 2011-03-09 07:33:53

+0

我想在没有asp.net的情况下使用ASP.NET插件架构mvc 1-2-3 – programmerist 2011-03-09 07:44:19

回答

14

你可以滚你自己。

一个插件架构需要一些不那么复杂的零件:

  • 的一种方式,以确定哪些插件DLL位于
  • 一个接口或基类的定义,所有的插件都必须坚持。这是最重要的一个。它决定了你的插件可以暴露什么功能,以及它可以与你的应用程序集成的深度。
  • 插件被加载并执行的地方(时间)。 (即:不插件执行每个网页请求呢,还是匹配一定的名字要求?抑或是页手动调用插件吗?)

一旦你这个想通了,实例化一个插件的实例简单。无论你在一个Web应用程序或客户端上运行它的工作原理是相同的:

System.Reflection.Assembly a = System.Reflection.Assembly.LoadFrom(plugin_path); 
t = a.GetType("IPlugin"); 
IPlugin plugin = (IPlugin)Activator.CreateInstance(t); 

然后,你可以使用plugin.DoSomething()实际上从插件调用功能。 (无论是渲染html的一部分还是保存到数据库或其他东西)

+0

你可以给一些有用的示例链接在asp.net – programmerist 2011-03-09 07:47:35

+0

+1 - 如何理论上把这个好的轮廓 – 2011-03-09 09:05:46

+0

为什么重新发明轮子和写样板代码就像那样,当有这么多完美功能的图书馆呢? – MattDavey 2011-03-09 09:05:52

3
+0

没有MEF我可以这样做吗?我正在使用VS 2008 – programmerist 2011-03-09 07:21:18

+0

http://stackoverflow.com/questions/740438/something-like-mef-managed-extensibility-framework-for-net-framework-2-0 – 2011-03-09 07:40:29

+0

是的,与反思(如HS写),但你必须编写自己的逻辑。如果您的许多组件都具有更大的适应性,MEF则是更好的解决方案。 – 2011-03-09 07:57:57