我将在我们的WPF项目中使用,因为我需要一个强大的插件架构,允许多个插件加载运行时。我仍处于MAF-Addin管道框架的学习阶段。
WPF主机应用程序将在运行时发现并加载其插件程序集。
插件将由在自己的域中运行的未知第三方创建,因此必须对它们进行沙盒处理以防止它们崩溃主应用程序。
我有一些非常基本的疑惑:
第三方是否可以使用任何语言/技术编写addOns,并且可以在主机端使用MAF(System.Addins)?或者它必须是.NET支持?
第三方将为我们编写插件,我们将在他们的WPF应用程序中集成他们的插件。我们是否需要向我们的插件MAF(addIn)框架传达某些要求?除了我们的应用程序主API功能之外,他们是否还需要遵循MAF的某些准则?
答案 0 :(得分:2)
关于第三方插件的语言/技术,它必须是.NET程序集。这并不意味着插件的.NET程序集不能使用本机dll或COM对象。
关于插件开发人员的指南,这取决于您的合同。
如果您虔诚地遵循System.Addin
合同准则,那么插件开发人员就不应该关心它。他们只需要实现加载项的视图。
另一方面,如果您没有遵循合同准则(例如在合同中使用System.Object
),那么您可能需要插件开发人员遵循在特定条件下可能需要的额外指南(例如,单独的插件AppDomains或进程)。