The following series of articles is dedicated to the development of the extension package for Visual Studio 2005/2008/2010/2012 IDEs utilizing .NET framework and C# programming language. The following topics will be covered:
- basic information on creating and debugging of MSVS plug-ins and maintaining these extensibility projects for several versions of Visual Studio inside a common source code base;
- overview of Automation Object Model and various Managed Package Framework (MPF) classes
- extending interface of the IDE though the automation object model's API (EnvDTE) and MPF (Managed Package Framework) classes with custom menus, toolbars, windows and options pages;
- utilizing Visual C++ project automation model for gathering data needed to operate an external preprocessor/compiler, such as compilation arguments and settings for different platforms and configurations;
The content of these articles is based on our experience in developing an MSVS extension package plug-in for PVS-Studio static analyzer. A more detailed in-depth references for the topics covered here are available at the end of each article through the links to MSDN library and several other external resources.
The articles will cover the extension development only for Visual Studio 2005 and later versions. This limitation reflects that PVS-Studio also supports integration to Visual Studio starting only from version 8 (Visual Studio 2005). The main reason behind this is that a new extensibility API model was introduced for Visual Studio 2005, and this new version is not backward-compatible with previous IDE APIs.
Other articles in this series to be published
- Creating, debugging and deploying extension packages for Microsoft Visual Studio 2005/2008/2010/2012. (you are here)
- Visual Studio Automation Object Model. EnvDTE interfaces.
- Visual Studio commands.
- Visual Studio tool windows.
- Integrating into Visual Studio settings.
- Visual C++ project model.
This looks like a very cool series and one that I'll be watching. When done, this looks like it would make a good ebook...