Integrate/use System.Addin


MEF should integrate/use System.Addin under the cover so that we also have the benefits of versioning, isolation, recoverability and security, which are all vital components of an extensibility framework. It would be sad to have to choose between those and the great API that MEF provides.

See the discussion found at http://www.codeplex.com/MEF/Thread/View.aspx?ThreadId=40335.
Closed Oct 24, 2011 at 11:05 PM by
In the time since this issue was raised we have continued to recommend that users manually integrate System.AddIn with MEF where required. Closing with the expectation that this will be reopened if necessary.


gblock wrote Dec 1, 2008 at 5:44 PM

Just as a side note, we're planning to do some samples around MEF/MAF integration to illustrate how you can lever MAF components within MEF.

KathleenDollard wrote Feb 8, 2009 at 5:08 PM

FWIW, I believe that guidance for using MAF behind MEF is the right approach. The complexity of MAF for many applications is massive overkill - wasting precious human resources (this comment is based mostly on System.AddIn and what appears to be base complexities - I haven't played with MAF much). Its very hard to justify this complexity in an appilication at V1.

The sweet spot would be to allow a catalog or MAF to sit behind MEF in an interchangable manner. That way if either security or versioning force a project to move to MAF it is unknown to outside apps that are interacting with MEF.

The sweet spot is because apps can set up for MEF becuase they might want external versioning in the future (MAF) and only internal (MEF) extensions are currently justiifed.

If they are combined, the simpler approach of MEF needs to be the primary surface. FWIW, it is rare, exceedingly rare, when I talk about System.AddIn (its a piece of three of my common talks) that I find anyone who has ever heard of it. Complexity is the problem, no matter how sweet the long term implicaitons of the versioning model is. Of course that said, there is often one or two people whose eyes light up because they have either dealt with AppDomains (more common) or versioning on their own.

stephenc wrote Mar 3, 2009 at 5:24 PM

I don't care whether MEF integrates System.AddIn or not -- just please don't abandon the System.AddIn support! I really depend on isolation, recoverability, and versioning.

stephenc wrote Mar 9, 2009 at 6:58 PM

Let me rephrase my last comment (I can see that it was vague and too emotional)

I really depend on all the power and flexibility of the System.AddIn classes (and excellent helpers like the Pipeline generator tool) -- Versioning, Isolation, and Recoverability are essential to my application framework. If MEF could incorporate all that functionality by wrapping MAF, I would love it (I agree with Kathleen's recommendations and rationale). But if I was forced to choose between MEF and MAF, I would have to choose MAF for my particular product requirements. Based on the number of votes this item is getting, it seems like there may be other folks in the same boat.


theperm wrote Jun 21, 2009 at 6:51 PM

Bump, any progress on this item?

nblumhardt wrote Jul 16, 2009 at 10:25 PM

I've assigned this to our post-.NET 4 list for consideration. As noted by earlier posters, MEF and MAF can be used together today; a more integrated approach would be very useful however.