I will be using in our WPF project because I need a robust add-in architecture that allows multiple plugins to load run time. I am still in learning phase of MAF-Addin pipeline framework.
The WPF host application will discover and load its plugin assemblies at runtime.
Plugins will be created by unknown 3rd parties running in their own domain, so they must be sandboxed to prevent them from crashing the main application.
I have some very basic doubts:
Can third parties use any language/technology to write addOns and that will work with MAF(System.Addins) on host side? or It has to be .NET supportive?
Third parties will be writing plugins for us and we will be integrating their plugins within our WPF app. Do we need to convey certain requirements to them in regards to our plugin MAF (addIn) framework? Do they need to follow certain guidelines for MAF besides our application main API functionality?
Regarding the language/technology for the third-party plugins, it will have to be a .NET assembly. This does not mean that the .NET assembly of the plugin cannot use native dlls or COM objects.
Regarding the guidelines to the plugin developers, it depends on your contracts.
If you have followed the
System.Addin
contract guidelines religiously then the plugin developers should not care it. They only have to implement the view of the add-in.If on the other hand you did not follow the contract guidelines (e.g. by using
System.Object
in your contracts) then you will probably need plugin developers following extra guidelines that might be needed under specific conditions (e.g. plugins in separate AppDomains or Processes).