Sunday, May 16, 2010

Visual Studio 2010: How to extend the architecture tools

RightClickForExtension_thumb.jpg

    During Visual Studio 2010 planning, the Visual Studio team suffered the same thing that every development team suffers during planning: they had a ton of features they wanted to add and only so much time.  When it became obvious that they had to cut features, they decided to invest in an extensible infrastructure so they could deliver more features out of band.  This extensibility also allows end users to tweak the product.  To implement this, they utilized the Managed Extensibility Framework (MEF) throughout their architecture.

Now, Microsoft has a significant service agreement; we service products for 10 years after their release.  The only way that we can do this is if the bits are well-controlled.  Therefore, a developer can’t throw zip files on their blog to change existing code...it would become unmanageable.  So when new features are added out of band (like power tools and feature packs…more on that below), they have to be purely additive releases where they can’t change existing bits.

There are two main things that I want to cover regarding extensibility: how to extend the architecture tools and an upcoming feature pack release that is possible due to the extensible infrastructure.  

Create a New Extension for the Architecture Tools

To build Visual Studio extensions and extend the architecture functionality, you will need to download the Visual Studio 2010 SDK and the Visual Studio 2010 Visualization and Modeling SDK (this is the rename of the DSL Toolkit).

In Visual Studio 2010, go to the “File” menu item, then select “New” and “Project”.  In the left-hand sidebar of templates, expand “Modeling Projects” and click “Extensibility”.  You should see three extensions available:

Command Extension
Gesture Extension
Model Validation Extension
These are templates for creating MEF-based extensions for the Visual Studio UML Designers.  NOTE: these options will only be available after you’ve downloaded the two SDKs above.

Read more: Jennifer Marsman

Posted via email from jasper22's posterous