2010-10-10 66 views
1

我正在編寫一個ASP.NET MVC 2應用程序,其中開發人員可以使用插件對其進行擴展。我已經開始考慮如何創建一個插件系統。 (例如Joomla的)應用程序插件系統

我對如何做到這一點懷疑。我通過網絡搜索,發現有兩種可能的解決方案。

  • 使用接口或抽象類來實現的方法和一個插件結構,加載組件,把對象的接口並調用,當我需要掛鉤系統中的插件應具有的方法。

  • 使用C#事件來加載程序集並在需要掛鉤系統時引發事件。構造函數中的插件將使用我的應用程序提供的事件註冊函數。

什麼是最佳解決方案?有哪些性能方面的考慮?還有哪些其他方法?

回答

1

查看Codeplex上的Orchard項目。 Microsoft開發人員已經構建了一個類似於您所描述的插件機制。它的相當複雜的東西...

+0

這個果園很棒的項目!我會查一下 – Stefano 2010-10-12 17:40:53

4

與其編寫自己的插件系統,您應該考慮使用微軟自己的插件框架Managed Extensibility Framework(MEF)。

+0

我不認爲MEF真的是我需要的...它很複雜,我只需要一個基於插件的系統,允許開發人員編寫自己的插件,註冊到大型機和應用程序完成剩下的工作......但我對使用什麼,接口/抽象類或事件有所懷疑 – Stefano 2010-10-10 16:27:08

+0

MEF對我一直在做的工作非常好。特別是使用MEF創建模塊化的ASP.NET MVC站點是我所要做的。我博客了這個http://www.fidelitydesign.net/?p=130 – 2010-10-11 17:48:00