If your project is in need of extensibility, Chris Eargle thinks that you should seriously consider Visual Studio 2010's Managed Extensibility Framework.
Extensibility has been redesigned in Visual Studio 2010 to use a new framework open for use in other products. A market that was once served by only a few vendors has seen a tremendous amount of growth in a short period of time.
- Product: Visual Studio 2010
- Versions: 2010 Professional, 2010 Premium, 2010 Ultimate, Test Professional 2010
- Cost: 2010 Professional $1,199 ($799 without MSDN), 2010 Premium $5,469, 2010 Ultimate $11,899, Test Professional 2010 $2,169
- Supported operating systems: Windows 2003 Server, Windows XP, Windows Vista, Windows 7
- Additional information: Product Web site
Who is the target market?Anyone who needs a control, a template, or a tool for Visual Studio 2010 can now search for it in the Online Gallery available from within the Extension Manager (Figure A). Although there are many tools using the older Visual Studio Extensibility (VSX) framework, newer tools are taking advantage of the Managed Extensibility Framework (MEF). Unlike VSX, MEF is designed for anyone whose projects need extensibility. Figure A
Visual Studio 2010 Extension Manager. (Click the image to enlarge.)
What problems does it solve?Finding the right plug-in for Visual Studio involved a lot of research in the past. Whether a developer relied on magazine articles, search engine results, or forum postings, it was difficult to discover all available options and find out how well the plug-ins were rated. That has changed with the Online Gallery (Figure B). Plug-ins are now categorized, rated, and available from within Visual Studio. The gallery is available online as the Visual Studio Gallery, and the online version supports products for older versions of Visual Studio. Figure B
Online Gallery is available through the Extension Manager in the Tools menu. (Click the image to enlarge.)Access to the Online Gallery is available through the Extension Manager in the Tools menu (Figure C), which also provides the ability to disable, uninstall, and update installed plug-ins. Figure C
Online Gallery is available through the Extension Manager in the Tools menu. (Click the image to enlarge.)
The Managed Extensibility Framework provides the most value to developers who would like to create their own extensions for Visual Studio. The most powerful way to build extensions in the past was with the Visual Studio Extensibility framework, which has been affectionately referred to as the "dark arts." Despite the efforts of some to educate other developers on how to create Visual Studio packages using VSX, only a few vendors have released plug-ins. Since the release of MEF and early versions of Visual Studio 2010, developers have taken advantage of the much easier-to-use framework to create their own, and oftentimes free, tools for the Online Gallery.
There has been little standardization for creating plug-in architectures in .NET, which has led many to create their own custom solutions. With the inclusion of MEF in .NET 4 and Visual Studio 2010, extensibility will likely be standardized under one framework.
- Online Gallery
- Extension Manager
- Managed Extensibility Framework
Although the extension ratings are visible from within Visual Studio, it is not possible to rate one without visiting the Web site. The Web site also contains many more features as well, including reviews and discussions. These features should have been included in the Extension Manager, but someone will probably write an extension for it.
There are many extension points available in Visual Studio 2010, but solutions involving new toolbars or windows often need to be done with the Visual Studio Extensibility framework. Extensions involving the modification of code, such as refactoring, are still modifying text. Third-party products provide a better experience modifying the code without writing custom code DOM providers.
Bottom line for business
The Extension Manager with Online Gallery allows developers to customize their IDE easier than ever before. Developers can be more productive by having instant access to the tools they need, but there is risk in having that access; for instance, installing multiple tools will sometimes cause odd problems, particularly when one is buggy or there is unexpected interaction between tools. The Disable feature is nice for recovering in such a situation. Of greater concern is the ease of downloading unapproved controls or templates. This is a policy matter, and it should be enforced as such.
If one of your projects is in need of extensibility, you should seriously consider the Managed Extensibility Framework. It is a well-designed solution with many resources available for learning. There is no need to convert a working extensibility solution unless MEF provides enough value to warrant such a change.
More about Visual Studio 2010 on TechRepublic
- What's new in Visual Studio 2010 and .NET 4
- Product Spotlight: Visual Studio 2010 IDE
- Poll: What do you think of Visual Studio 2010 and .NET 4?