|Important||This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here.|
Visual Web Developer Extensibility
Visual Studio provides a UI for managing several kinds of projects, including Web site projects. The EnvDTE and EnvDTE80 namespaces provide interfaces with objects and members for managing projects in Visual Studio, and the VsWebSite namespace additionally provides automation interfaces for managing Web site projects. Using the interfaces in these namespaces, you can create automation utilities that manage projects and Web site projects from macros or add-ins to Visual Studio.
The automation interfaces in the VsWebSite namespace extend the functionality of Web projects beyond the core project support in the EnvDTE and EnvDTE80 namespaces, providing project support for Web site projects. For example, there is no way to add a WebReference to a Project instance, but you can add one to a VSWebSite instance, which is a also a kind of project.
The functionality provided by VsWebSite is not available in Visual Web Developer Express Edition.
The primary class for automating Web site projects is VSWebSite, which encapsulates the methods and properties for automating a Web site project.
Most scenarios for automating project management tasks involve enterprise processes. For example, you can create a wizard for creating new Web sites within your organization. The wizard can ensure that intranet Web sites conform to procedures or standards, or it can notify appropriate people about a new Web site in the organization.
As additional examples, you might create applications that perform tasks such as the following:
Applying global modifications to all Web site projects in an organization.
Adapting all projects to new enterprise requirements.
Creating a report on the current contents of all Web sites.
Converting existing Web sites to Visual Studio 2005 Web site projects.
Or you might create an add-in to Visual Studio that logs all new connections to external Web services or sends e-mail when new items are added to a Web site project. For more information about creating add-ins for Visual Studio, see How to: Create Solution Add-ins.