A couple of times recently I’ve wanted a super short summary of what MEF is and why you care. I thought I’d share what I came up with here. MEF stands for Managed Extensibility Framework.
MEF allows you to compose parts at runtime to alter application behavior based on the current environment. The most common way to alter behavior is to include dll’s in a directory. The most common way to code MEF is through attributes. Both of these decisions are flexible because MEF itself is extensible and can work in many different ways. The Visual Studio 2010 IDE uses a good deal of MEF. You can use MEF for plug-ins for your application, improve testability, and to create a system of small replaceable parts. You may find other creative ways to use MEF.
I don’t know whether MEF is addicting, but composability definitely is !