Choosing the Appropriate Automation Approach

Visual Studio provides several options for creating automation applications. The exact method to choose, however, depends largely on the impending task. To help guide you to the best method, consider the following factors.

Do you want to distribute the code or a compiled application?

  • Distribute code — Use a macro. You can deploy macros by copying a macro's project files to the new location. There is no setup or registration, but users of your macro must click the Tools menu, point to Macros, and then click Load Macro Project to start using them. You can also send a macro as text for use by others. For more information, see How to: Record Macros.

  • Distribute a compiled application — Use either an add-in or a wizard, or an application that uses the automation interfaces. Add-ins, wizards, and other applications that use the automation interfaces protect your intellectual property through compilation. However, to distribute them, you must use a deployment project or some other form of setup. For more information, see How to: Create an Add-In or Walkthrough: Creating a Wizard.

What programming language do you want to use to develop your automation application?

Does the task require user input?

How complicated is the task you are automating?

  • Very simple — If you can accomplish your task in just a few lines of code, a macro is appropriate.

  • Complicated — While macros can include forms, references, and classes, an add-in or wizard might be more appropriate.

How do you think your user will start your application?

  • Menus or command bars — Use an add-in.

  • A keyboard shortcut or the Macro Explorer — Use a macro.

  • New Project or New Item menu item — A wizard is typical for adding a new project or file to an application.

  • Autostarting with the IDE — Use an add-in.

What is the lifetime of your application?

  • I just need it for today — A temporary recorded macro may be sufficient.

  • I'll be using it long term — A macro, wizard, or add-in is suitable.

What do you need to develop?

See Also

Tasks

How to: Create an Add-In

Walkthrough: Creating a Wizard

Concepts

Automation Object Model Chart

Spectrum of Visual Studio Automation

Other Resources

Extending the Visual Studio Environment

Creating Add-ins and Wizards