Visual Studio eXtensibility (VSX) is a feature which provides a way to extend the functionality of Visual Studio. Extensions can be developed for Visual Studio using VSX.
Mainly there are three ways of extensibility –
1. Macros – basic level of extensibility using which repetitive tasks can be automated by writing macros.
Macros provide the easiest way to extend Visual Studio there is even no need for VS SDK. Visual Studio has got functions to record macros and so we can automate repetitive tasks in a few minutes. Macros access the Visual Studio automation object model and easily combine VS commands with useful automation property values to get the desired behavior. (Source: Wikipedia)
2. Visual Studio Add-ins – powerful way of extending Visual Studio, can access VS object model, ability to create new Toolbars, Command Bars etc.
Add-ins are much more powerful to develop Visual Studio extensions, since they can access the Visual Studio object model and add new user interface elements to the IDE just like tool windows, option pages, menu and toolbar commands, etc. Functions added with an add-in look like if they were a part of the IDE. Add-ins can access services provided by not only the IDE itself but also by other add-ins or packages. (excerpt from Wikipedia)
3. VSPackages – most powerful way of extending the functionality of Visual Studio.
There is no doubt developing VS Packages is the most powerful way to add functionality to Visual Studio. The clear evidence for this is the fact that the whole Visual Studio functionality is built from packages integrated into the shell. All the languages, editors, the debugger, the project system and many more components are packages. From developers point of view it actually means that adding a new package to VS is just like adding core functionality to the VS IDE as if it were developed by Microsoft. The IDE does not make any distinction between Microsoft-created and third-party components; developers see all packages as part of VS IDE. Packages are binaries developed with the preferred language (C#, VB,.NET or C++), so from intellectual property guarding aspect they can be as safe as other .NET binaries. (excerpt from Wikipedia)
In addition to the above three customizations, Visual Studio can also be extended outside of IDE i.e., like from a Windows Application, Console Application etc using EnvDTE (Design Time Extensibility).
Visual Studio 2010 SDK provides tools and templates for building Visual Studio extensions. By using the Visual Studio 2010 SDK, you can build your own tool windows, create menu commands, and add extensions to the new Visual Studio editor and other features.
Download Visual Studio 2010 SDK – http://bit.ly/VisualStudio2010_SDK-Download
Get Started with Extending Visual Studio – http://msdn.microsoft.com/en-us/vstudio/ff677564
MSDN Forum for Visual Studio eXtensibility – http://social.msdn.microsoft.com/Forums/en-US/vsx/threads
Visual Studio Macros – http://msdn.microsoft.com/en-us/library/b4c73967.aspx
Automation and Extensibility Reference – http://bit.ly/VisualStudioAutomationExtensibilityReference