Visual Studio provides very powerful capabilities for us to extend its functional using various technologies and approaches. You can both automate routine actions using simplest macros and carry out a deep integration of any third-party or your own user components. In fact, while extending Visual Studio, you are limited only by your own imagination, so you can realize such eccentric solutions as integration of your favorite Instant Messenger client into the project window, or even an "achievements for developers" system like in videogames! After all, any serious developer must know and be able to adjust the development environment to his/her own needs, as well as be able to handle its possible "glitches".
At the same time, creating extensions is nowadays simple and transparent as never before, regardless of your previous experience of working with Visual Studio! You can both integrate a native library module that will be able to directly handle the low-level COM interfaces of the API environment, and a managed build that will have an access to almost all of these APIs through convenient managed wraps. While the native unit will surely provide the developer with the absolute control over the situation, using managed builds for extensions will help you get rid of a very complicated process of calculating the number of COM-objects instances and direct memory handling, allowing you to focus on implementing the functionality you need with all the power .NET Framework and Common Language Runtime can provide.
If you’ve got interested in the subject of extending Visual Studio, you can try it right now starting with 3 simple steps described in this article. This guide will allow you to create a completely functional managed extension module for all the Visual Studio versions literally within 10 minutes and start using your functional at once, while the rest articles of this series will help you find out the particular details.