E-mail Blog Facebook LinkedIn Twitter
User Testimonials

"I'm an avid supporter of MZ-Tools. It's a product I couldn't do without and your level of support is outstanding."

Jan Hyde (Visual Basic MVP)

"You will soon wonder how you ever lived without it."

Andy Maggs

"This is one of the most useful and best VB add-ins. Now that I have been using it I don't know how I ever worked without it. MZ-Tools has become my right hand in the VB IDE."

C. Kevin Provance

Resources about Visual Studio .NET extensibility

Visual Studio .NET provides the following main ways of extensibility:

  • Macros: macros can be recorded or you can code them by hand with the Macros Editor ("Tools", "Macros", "Macros IDE..."). Creating them is easy and quick, but macros can't create forms for data input and their code is visible to the end users.
  • Wizards (Visual Studio .NET 2002/2003): they are used to create a new project, a new file or a custom wizard for whatever use.
  • Templates and Starter Kits (Visual Studio 2005 and higher): they are packages files that can be used to create a new project or file.
  • Add-ins: add-ins are a high-level way of extending the IDE. They can add new commands, toolbars, top menus, context menus, buttons, options pages and toolwindows to the IDE, and they can respond to events that the IDE provides. Physically they are DLLs (managed or not), created from a Class Library project, implementing the IDTExtensibility2 interface (and likely the IDTCommandTarget interface) and that when registered correctly (XML files, Windows registry and/or COM) are discoverable by the Add-In Manager of Visual Studio (under the "Tools" menu) and can be loaded manually or automatically at startup. Most of the extensibility object model that add-ins can use is provided by the EnvDTE.dll, EnvDTE80.dll, VSLangProj.dll, VSLangProj2.dll and VSLangProj80.dll assemblies.
  • Packages: packages are a low-level way of extending the IDE. They can do the same things than add-ins and much more: they can provide new project types, new document types, new editors, integration with Source Code Control systems, new text editing features, new .NET languages, etc. Needless to say, packages are complex to create. Packages for Visual Studio .NET 2003 are created using C++ and the Visual Studio Industry Partner (VSIP) SDK, or with a managed language (C#, VB.NET) if you add the VSIP Extras on top of the VSIP SDK. Packages for Visual Studio 2005 are created with the new Visual Studio 2005 SDK. The SDKs require registration and several registration levels are available, being free the lowest one. Packages can use a set of low level services that the IDE provides and they can use also the EnvDTE.dll assembly used by add-ins. Conversely, add-ins can also use some services provided to packages.

The following section contains most of the resources that you will find on the World Wide Web about this subject.

Note: if you want to receive notifications about new resources, articles, and other news and interesting stuff related to VS extensibility, visit my Carlos Quintero's blog and subscribe to the RSS feed.

Web sites
MZ-Tools Articles Series (about add-ins)

Articles about getting started and general information: Articles about migrating from macros to add-ins: Articles about commands, buttons and commandbars: Articles about toolwindows: Articles about getting information: Articles about build configurations / platforms: Articles about custom pictures: Articles about the code model: Articles about Windows Forms: Articles about Web Forms: Articles about getting events: Articles about installing and uninstalling: Articles about troubleshooting, bugs and issues: Articles about Visual Studio themes: Articles about automating project creation: Other articles:
MZ-Tools Articles Series (about packages)
LearnVSXNow! Articles Series (about packages)

Forums and newsgroups
  • MSDN Forum Visual Studio extensibility
    This is the preferred forum to ask questions about Visual Studio extensibility. I and many Microsoft members of the Visual Studio extensibility and SDK teams visit this forum daily to answer questions.
  • microsoft.public.vsnet.ide
    Newsgroup to discuss use of the automation model, macros, add-ins, or wizards.
  • microsoft.public.vstudio.extensibility
    Despite its misleading name, this is also a newsgroup for Visual Studio .NET and Visual Studio 2005, not for Visual Studio 6.0. It covers macros, add-ins, wizards and Visual Studio Industry Partner Program (VSIP) SDK.
  • Visual Studio .NET Add-Ins Yahoo Group
    This used to be the best forum for answers about .NET add-ins during the years 2002-2004 but now it's quite dead. However, the Message history is a good resource to find answers of past questions. Free membership.
MSDN Webcasts: Visual Studio Extensibility (VSX) Developer Conference, September 2008: Visual Studio Extensibility (VSX) Developer Conference, October 2009: