It's not an IoC container, It's not MAF, it's not the Managed Entity Framework either 🙂 So what is it? There has been no shortage of discussion on this very topic since MEF was first announced. Quite simply, MEF makes building extensible apps, libraries and frameworks easy. It shares some common characteristics of other frameworks out there, but it also addresses a whole new set of problems that arise in building extremely large scalable extensible systems.
A picture tells a thousand words. I like to use this one for describing MEF.
In MEF everything is an extension, everything is extensible (extensions themselves included)
A bunch of recent posts from our community help to highlight some of the characteristics of what MEF is and what MEF isn't.
- Oren Eini - The Managed Extensibility Framework
- Sidar Ok - What is this Managed Extensibility Framework thing all about ?
There's also been a few posts on how to actually use it (which is another common question)
- Szymon Kobalczyk - Getting started with Managed Extensibility Framework
- Magnus Maartenson - Managed Extensibility Framework (MEF) used to make a Composite Web ASP.NET Forms Application
If your evaluating MEF or interested in understanding it's goals, I recommend you check out these posts which I am sure are the first of many to come. Also don't forget to grab the bits on our CodePlex site