(Disclosure: I used to be on team that wrote MEF, and my current team (C#) use it extensively throughout Visual Studio and our components)
As Scott mentioned, MEF is effectively an Dependency Injection/IoC container. Do a quick read up on the benefits/downfalls of DI, and the same things apply to MEF and whether it makes sense to use it in your situation. MEF is typically used with attributes, whereas other containers are typicall POCO, so if you are allergic to that – a different container choice would be better for you. Other than diagnostics (diagnosing when something goes wrong – which isn’t something limited to MEF), I happen to like using MEF – but Autofac (disclosure: written by a friend of mine) seems to be container of choice these days outside of MS (One more thing to be aware of is that MEF is not thread-safe by default, so be sure to isolate containers between requests, or alternately turn on thread-safety via the options passed to the container and measure the performance impact). From: [email protected] [mailto:[email protected]] On Behalf Of Corneliu I. Tusnea Sent: Tuesday, June 2, 2015 11:56 PM To: ozDotNet Subject: Re: MEF - Microsoft Extension Framework. Opinions requested. Scott, I couldn't agree with you more. MEF feels one of those "Patterns & Practices" thing that gets pushed onto us by MS at times but everyone hates and it's f* impractical in any real life scenario. On Wed, Jun 3, 2015 at 4:09 PM, Scott Barnes <[email protected]<mailto:[email protected]>> wrote: MEF was built to put the PRISM genie back in its bottle. MEF is also the in-house approach to the stuff Autofac and other IOC stuff do for you these days as well. If you like to sprinkle [Import] [Export] throughout the code base and are happy with its existence than it's really down to Pepsi vs Coke argument. Keeping in mind MEF exists nowhere .NET exists so you don't necessarily have to play the game of "Which Nuget packaged just updated today, guess which one...*slap to the face*...wrong!" :) Jokes aside, did you just throw your co-worker under a bus in the .NET forums thats....public :) you could also ask him "How does MEF differ from other solutions out there?" see what comes back, he/she may have a valid answer... or it could be "Because the Patterns & Practices team used it and all hail our overlords in building 16... (or am i showing my age there)" --- Regards, Scott Barnes http://www.riagenic.com On Mon, Jun 1, 2015 at 9:23 AM, Greg Keogh <[email protected]<mailto:[email protected]>> wrote: I agree, using MEF for really granular quick-turnaround things like pieces of web pages seems overkill and of little benefit unless you're creating some sort of clever fancy general purpose extensible web framework. MEF works great for dynamically discovering plug-in "chunks" of functionality in extensible ways, so long as that's what you want to do! A few years ago I spent hours learning the MEF lingo to use it to pick a DLL at runtime, but weeks later I decided it just cluttered up my quite simple code and I replaced it all with about 15 lines of code that looped through GetTypes() and Activated the one I wanted -- Greg K On 1 June 2015 at 06:48, Davy Jones <[email protected]<mailto:[email protected]>> wrote: Thanks Davy Sent from my iPhone On 31 May 2015, at 16:36, Piers Williams <[email protected]<mailto:[email protected]>> wrote: On the face of it, I think I would gently dissuade your colleague. Having a level of modular isolation for areas of a webapp is not in of itself a bad thing, but you'd be much better off using something like Aufofac's modules *if the need presented* than MEF. MEF is a plugin framework, and even there it leaves a bit to be desired. I struggle to think of a scenario in which I'd use it (again). On 27 May 2015 6:19 pm, "David Rhys Jones" <[email protected]<mailto:[email protected]>> wrote: Hi all, I recently joined a new team and one of the Developpers is one of those guys that likes to complicate things for the hell of it. The current technology he is trying to push is MEF (Extension Framework) with every web page / section in a new plugin. Can I have some opinions on what it's really like to use MEF. Thanks Davy Si hoc legere scis nimium eruditionis habes.
