The title largely sums up my question but to expand, I'm a junior software engineer, but I'm also the primary developer for a fairly large department (mostly EE's) What would learning MEF do for me as a developer as far as professional growth, and what will it add to my projec that I can't manage manually?
views:
65answers:
2Using an extensibility framework like MEF would teach you good architectural design patterns. That is, instead of simply writing an application, you would also be writing an API that others can use to extend your application. You would create a platform instead of a one-off program.
All that is good for your resume; you're more of an architect than a simpler programmer. It's also good for yourself as a programmer on the project, as it makes it easier to add new functionality in a clean way.
Professionally using a technology that customers don't care about won't net you much of anything. Learning a new approach to building software, or a new concept will give you skills that apply to any language and platform.
In its most basic form, MEF is about favoring composition over inheritence. At the implementation detail level you can use it for doing application extensibility as well as dependency injection.
Learn how to apply the concepts first, and then you will be able to pick the right technology for the job instead of being locked into a single paradigm.