MEF: Getting Started
One of my side-projects (“ Tomato Timer ”) has plugins as a central design characteristic. Now, I have never built an application that relies on plugins before – so when it came to thinking about what framework I could use – MEF was an obvious strong candidate. What is MEF ? MEF stands for “Managed Extensibility Framework”. It’s a framework developed by Microsoft for .NET developers to allow them to easily pull components out from the main compiled assembly, and dynamically “compose” them at run time. This behaviour is shared amongst most modern IoC Containers and is a very powerful pattern. The ability to easily swap out components not only facilitates plugins, but ease of testability, maintenance and improved design. Why Did I Choose MEF ? I decided to go with MEF because: I have never worked with it before. I want to compare it’s usage against IoC containers. I like saying “ I am doing MEF ” on the phone to my non-geeky friends who then get concerned for m