My favorite part of development is building reusable and extensible frameworks and libraries. The Managed Extensibility Framework on CodePlex is all about this very subject.
Per the Managed Extensibility Framework CodePlex site:
"MEF presents a simple solution for the runtime extensibility problem. Until now, any application that wanted to support a plugin model needed to create its own infrastructure from scratch. Those plugins would often be application-specific and could not be reused across multiple implementations.
- MEF provides a standard way for the host application to expose itself and consume external extensions. Extensions, by their nature, can be reused amongst different applications. However, an extension could still be implemented in a way that is application-specific. Extensions themselves can depend on one another and MEF will make sure they are wired together in the correct order (another thing you won't have to worry about).
- MEF offers a set of discovery approaches for your application to locate and load available extensions.
- MEF allows tagging extensions with additonal metadata which facilitates rich querying and filtering"
It is still in the preliminary stages right now, so if you like getting involved early now is a good time. Glenn Block, who was previously with Patterns & Practices, is now with the MEF Team so we have a familiar and friendly face.
Check out the MEF Project here.