2013-12-18 48 views
1

我將在我們的WPF項目中使用,因爲我需要一個強大的插件架構,允許多個插件加載運行時。我仍然處於MAF-Addin管道框架的學習階段。託管AddIn框架(MAF) - 主機第三方插件

  • WPF主機應用程序將在運行時發現並加載其插件程序集。

  • 插件將由未知第三方在其自己的域中運行創建,因此必須對其進行沙盒處理以防止它們崩潰主應用程序。

我有一些非常基本的疑惑:在主機端

  • 第三方可以使用任何語言/技術編寫插件,並且將與MAF(System.Addins)工作?或者它必須是.NET的支持?

  • 第三方將爲我們編寫插件,我們將把他們的插件集成到我們的WPF應用程序中。我們是否需要向他們傳達關於我們的插件MAF(addIn)框架的特定要求?除了我們的應用程序主要API功能之外,他們是否需要遵循MAF的某些準則?

回答

1

關於第三方插件的語言/技術,它必須是.NET程序集。這並不意味着該插件的.NET程序集不能使用本機dll或COM對象。

關於插件開發人員的指導方針,它取決於您的合同。

如果你在宗教上遵循System.Addin合同指南,那麼插件開發人員不應該在乎它。他們只需要實現加載項的視圖。

另一方面,如果您沒有遵守合同準則(例如在合同中使用System.Object),那麼您可能需要插件開發者遵循特定條件下可能需要的額外準則(例如,單獨的AppDomains或Processes中的插件)。