Default Project Templates in Visual Studio

When you create a new project, icons in the New Project dialog box and Add Project dialog box represent the available project types and their templates. Selecting an item from the Installed Templates pane populates a list of project templates. The project template that you choose determines the output type and other options available for that project. For information about how to find more templates online, see How to: Find and Install Templates Located Online.

Note

Different templates may be installed according to your Visual Studio version, edition, installation options, and other customizations. If you're missing a template that comes with your installation, run devenv.exe with the /installvstemplates switch. For more information, see How to: Restore Default Project Templates.

All project templates add the necessary files and references for the project type.

Templates by Category

The following tables list the default types of projects available in Visual Studio by category. Subcategories are indicated here in the format <Subcategory>/<TemplateName> where not otherwise specified. Some of the templates from various subcategories will also appear when the parent category is selected.

Note

Different templates may be installed according to your Visual Studio version, edition, installation options, and other customizations. If you're missing a template that comes with your installation, run devenv.exe with the /installvstemplates switch. For more information, see How to: Restore Default Project Templates.

Visual Basic and C# Windows Templates

The following templates appear under the Visual Basic/Windows or Visual C#/Windows subcategories.

Project Template

More Information

Class Library

Use the Class Library template to quickly create reusable classes and components that can be shared with other projects. For more information about creating component classes, see Component Classes.

Console Application

Console applications are typically designed without a graphical user interface (GUI) and are compiled into an executable file. You interact with a console application by typing instructions at the command prompt.

Empty Project

The Empty Project template can be used when you want to create your own project type. The template creates the necessary file structure needed to store application information. Any references, files, or components must be added manually. For more information on adding references, see Adding and Removing References.

Windows Forms Application

This creates a traditional standalone Windows application or a rich front-end to a distributed Web application. For more information, see Creating Windows Applications or Creating a Windows Application Project.

Windows Forms Control Library

The Windows Control Library project template is used to create custom controls to use on Windows Forms. For more information, see Windows Forms Controls.

Windows Service

Windows Service Applications (formerly called "NT services") are long running applications that do not have a user interface. They can monitor items such as system performance. For more information, see Introduction to Windows Service Applications.

WPF Application

The WPF Application template creates a project that uses Windows Presentation Foundation. For more information, see How to: Create a New WPF Application Project.

WPF User Control Library

Creates a WPF User Control, which builds on the functionality of existing WPF controls. For more information, see How to: Create a WPF UserControl Library Project.

WPF Browser Application

Creates a WPF application that runs in the browser. This application model is named XAML Browser Application (XBAP). For more information, see How to: Create a New WPF Browser Application Project or WPF XAML Browser Applications Overview.

WPF Custom Control Library

Creates a project in which to build a custom WPF control. For more information, see Control Authoring Overview.

Visual Basic and C# Web Templates

The following templates appear under the Visual Basic/Web or Visual C#/Web subcategories.

Note

These templates are only for Web application projects. They do not apply to Web site projects. For information about the difference between these types of Web projects, see Web Application Projects versus Web Site Projects.

Project Template

More Information

ASP.NET Web Application

Creates a new Web application that includes the following:

  • Folders to contain membership pages, client script files, and cascading style sheet files.

  • A data folder, which is granted permissions that will enable ASP.NET to read and write to it at run time.

  • A master page file.

  • Web pages called Default.aspx and About.aspx.

  • A global application class file.

  • A Web.config file.

If you are creating a local IIS Web application or a remote IIS site, Visual Studio creates the IIS Web application.

ASP.NET MVC 2 Web Application

The ASP.NET MVC 2 Web Application project template is used to build web applications that use a model-view-controller pattern. For more information, see ASP.NET MVC Overview.

ASP.NET Empty Web Application

Creates a new ASP.NET web application that includes a Web.config file but no other files.

ASP.NET Dynamic Data Entities Web Application

Creates a Dynamic Data Web application for use with ADO.NET Entity Framework. This Web application can target any relational database. For more information about Dynamic Data, see ASP.NET Dynamic Data Content Map.

ASP.NET Dynamic Data Linq to SQL Web Application

Creates a Dynamic Data Web application for use with Linq to SQL. This Web application can target any relational database. For more information about Dynamic Data, see ASP.NET Dynamic Data Content Map.

ASP.NET Server Control

Creates a server control to be used in ASP.NET web applications. For more information, see Walkthrough: Developing and Using a Custom Web Server Control.

ASP.NET AJAX Server Control

ASP.NET AJAX server controls consist of server and client code that integrate to produce rich client behavior. For more information, see Microsoft Ajax Overview.

ASP.NET AJAX Server Control Extender

ASP.NET AJAX extender controls enhance the client capabilities of standard ASP.NET Web server controls. For more information, see Microsoft Ajax Extender Controls Overview.

Visual Basic and C# Office Templates

The following Office project templates appear under the Visual Basic/Office or Visual C#/Office subcategories. These templates are organized further into 2010 and 2007 subcategories for projects that target Microsoft Office 2010 and the 2007 Microsoft Office system.

For more information about developing Office solutions, see Office Project Templates Overview.

Project Template

More Information

Excel 2007 Add-in

Excel 2010 Add-in

Creates an application-level add-in for Excel 2007 or Excel 2010. For more information, see Getting Started Programming Application-Level Add-Ins and Excel Solutions.

Excel 2007 Template

Excel 2010 Template

Creates a template customization for Excel 2007 or Excel 2010. For more information, see Getting Started Programming Document-Level Customizations for Excel and Excel Solutions.

Excel 2007 Workbook

Excel 2010 Workbook

Creates a workbook customization for Excel 2007 or Excel 2010. For more information, see Getting Started Programming Document-Level Customizations for Excel and Excel Solutions.

InfoPath 2007 Add-in

InfoPath 2010 Add-in

Creates an application-level add-in for InfoPath 2007 or InfoPath 2010. For more information, see Getting Started Programming Application-Level Add-Ins and InfoPath Solutions.

Outlook 2007 Add-in

Outlook 2010 Add-in

Creates an application-level add-in for Outlook 2007 or Outlook 2010. For more information, see Getting Started Programming Application-Level Add-Ins and Outlook Solutions.

PowerPoint 2007 Add-in

PowerPoint 2010 Add-in

Creates an application-level add-in for PowerPoint 2007 or PowerPoint 2010. For more information, see Getting Started Programming Application-Level Add-Ins and PowerPoint Solutions.

Project 2007 Add-in

Project 2010 Add-in

Creates an application-level add-in for Project 2007 or Project 2010. For more information, see Getting Started Programming Application-Level Add-Ins and Excel Solutions.

Visio 2007 Add-in

Visio 2010 Add-in

Creates an application-level add-in for Visio 2007 or Visio 2010. For more information, see Getting Started Programming Application-Level Add-Ins and Project Solutions.

Word 2007 Add-in

Word 2010 Add-in

Creates an application-level add-in for Word 2007 or Word 2010. For more information, see Getting Started Programming Application-Level Add-Ins and Word Solutions.

Word 2007 Document

Word 2010 Document

Creates a document customization for Word 2007 or Word 2010. For more information, see Getting Started Programming Document-Level Customizations for Word and Word Solutions.

Word 2007 Template

Word 2010 Template

Creates a template customization for Word 2007 or Word 2010. For more information, see Getting Started Programming Document-Level Customizations for Word and Word Solutions.

Visual Basic and C# SharePoint Templates

The following templates appear under the Visual Basic/SharePoint or Visual C#/SharePoint subcategories, and may be further sorted into 2007 and 2010.

Project Template

More Information

SharePoint 2007 Sequential Workflow

Workflow templates manage the life cycle of documents and list items in a SharePoint Web application. This template creates a sequential workflow. See SharePoint 2007 Workflow Solutions.

SharePoint 2007 State Machine Workflow

This template creates a state machine workflow. See SharePoint 2007 Workflow Solutions.

Empty SharePoint Project

Creates a SharePoint project with no project items. See SharePoint Project and Project Item Templates.

Visual Web Part

A Visual Web Part project is an Empty SharePoint project that contains a Visual Web Part item. For more information, see Creating Web Parts for SharePoint.

Sequential Workflow

Creates a sequential workflow project, which is a series of business logic steps, performed in sequence, until the last step is completed. See SharePoint 2007 Workflow Solutions.

State Machine Workflow

Creates a state machine workflow, which is a set of business logic states, transitions, and actions. The steps in a state machine workflow are not performed in sequence; instead, they are triggered by actions and states. See SharePoint 2007 Workflow Solutions.

Business Data Connectivity Model

Lets you integrate business data from back-end server applications, such as SQL Server, Siebel, and Service Advertising Protocol (SAP), into SharePoint. See Integrating Business Data into SharePoint.

Event Receiver

Lets you handle events for items in the SharePoint site, such as lists, Web items, and workflows. See How to: Create an Event Receiver.

List Definition

Lets you define all of the components of a SharePoint list, such as its fields, forms, views, and toolbar. See Walkthrough: Create a Custom Field, Content Type, List Definition, and List Instance.

Content Type

Lets you create custom content types based on an existing (base) SharePoint content type such as a document, announcement, or a task. See Walkthrough: Create a Custom Field, Content Type, List Definition, and List Instance.

Module

Contains any files that you want to accompany the SharePoint project, such as development notes or a Readme file. See Using Modules to Include Files in the Solution.

Site Definition

Contains all the elements that define a SharePoint site. See Walkthrough: Create a Basic Site Definition Project.

Import Reusable Workflow

Lets you import a reusable, declarative workflow created in SharePoint Designer 2010 into Visual Studio. See Walkthrough: Import a SharePoint Designer Reusable Workflow into Visual Studio.

Import SharePoint Solution Package

Lets you import an existing SharePoint site, exported to a .wsp file, into Visual Studio. Once imported into Visual Studio, you can customize its items and redeploy them. For more information, see Importing Items from an Existing SharePoint Site.

Visual Basic and C# Workflow Templates

The following templates appear under the Visual Basic/Workflow or Visual C#/Workflow subcategories.

All of the templates in this section create projects that use Windows Workflow Foundation. Windows Workflow Foundation enables model-driven workflow development, providing natural design visibility and hiding system-level concerns such as transactions, state management, and concurrency control.

For more information, see Windows Workflow Foundation Overview.

Project Template

More Information

Activity Designer Library

The Activity Designer Library template is used to create a custom activity designer. Custom activity designers are used to create the design-time experience for activity use, controlling how the activity and its property page appear in Visual Studio. For more information, see Creating a Custom Activity Designer.

Activity Library

The Activity Library template is used to create a composite activity from pre-existing activities. For more information, see Workflow Activity Authoring using the Activity class.

WCF Workflow Service Application

The WCF Workflow Service Application template is used to create a workflow that uses message activities to send and receive WCF messages. For more information, see Workflow Services Overview.

Workflow Console Application

The Workflow Console Application template is used to create a workflow that is hosted in a console application. The workflow is implemented as a Sequence activity. For more information, see How To: Create a Workflow.

Other Visual Basic and C# Templates

The following templates appear under other subcategories of the Visual Basic and Visual C# nodes, as indicated.

Project Template

More Information

Cloud Service/Enable Windows Azure Tools

Provides instructions for enabling Windows Azure Cloud Service projects by installing Windows Azure Tools. For more information, see How to: Enable Windows Azure Tools

Reporting/Reports Application

Creates a report project to fill in manually or with the Report Wizard.

Reporting/Crystal Reports Application

Creates a Crystal Reports reporting project.

Silverlight/Silverlight Application

Creates a standard Silverlight application project with the option to host it in a Web project. For more information, see How to: Create a New Silverlight Project.

Silverlight/Silverlight Navigation Application

Creates a Silverlight application project that contains user-interface (UI) components, such as headers, footers, and navigation sidebars.

Silverlight/Silverlight Class Library

Creates a Silverlight class library project for consumption by Silverlight applications.

WCF/Syndication Service Library

See WCF Visual Studio Templates.

WCF/WCF Service Library

See WCF Visual Studio Templates.

WCF/WCF Workflow Service Application

The WCF Workflow Service Application template is used to create a workflow that uses message activities to send and receive WCF messages. For more information, see Workflow Services Overview.

Visual C++ Windows Templates

Project Template

More Information

ATL/ATL Project

Creates a project that uses the Active Template Library.

CLR/Class Library

Creates classes to use in other applications.

CLR/CLR Console Application

Creates a console application.

CLR/Empty Project

Creates an empty project for creating a local application.

CLR/Windows Forms Application

Creates an application with a Windows user interface.

CLR/Windows Forms Control Library

Creates controls to use in Windows applications.

General/ Empty Project

Creates an empty project for creating a local application.

General/ Makefile Project

Creates a project for using an external build system.

General/ Custom Wizard

Creates a custom application wizard. For more information, see Designing a Wizard.

MFC/MFC Application

Creates an application that uses the Windows Foundation Class Library. For more information, see MFC Class Wizard.

MFC/MFC DLL

Creates a dynamic link library that uses the Windows Foundation Class Library. For more information, see MFC Class Wizard.

MFC/MFC ActiveX Control

Creates an ActiveX control that uses the Windows Foundation Class Library. For more information, see MFC Class Wizard.

Test/Test Project

Creates a test project to use for automated tests. For more information about how to create automated tests, see Creating Automated Tests.

Win32/Win32 Project

Creates a project to host a Win32 application, console application, DLL, or static library.

Win32/Win32 Console Application

Creates a Win32 console application.

Visual F# Templates

The following templates appear under the Visual F#/Windows or Visual F#/Silverlight subcategories. For information about Visual F# templates, see Using Visual Studio to Write F# Programs.

Other Project Types

These templates appear under the Other Project Types category. The projects in the Setup and Deployment section all use Visual Studio Installer Deployment and are intended to be added to an existing solution.

Project Template

More Information

Setup and Deployment/InstallShield 2010

See Choosing a Windows Installer Deployment Tool.

Setup and Deployment/Visual Studio Installer/Setup Project

See How to: Create or Add a Setup Project.

Setup and Deployment/Visual Studio Installer/Web Setup Project

See Setup and Deployment Projects.

Setup and Deployment/ Visual Studio Installer/Merge Module Project

See How to: Create or Add a Merge Module Project.

Setup and Deployment/ Visual Studio Installer/Setup Wizard

See Setup Wizard.

Setup and Deployment/ Visual Studio Installer/CAB Project

See How to: Create or Add a Cab Project.

Extensibility/Visual Studio Add-in

Visual Studio Add-ins add functionality to the Visual Studio and Visual Studio Macros environments. For more information, see How to: Create an Add-In.

Extensibility/Shared Add-in

Shared Add-ins can add functionality to one or more Microsoft Office applications, as well as to Visual Studio. For more information, see How to: Create an Add-In.

Visual Studio Solutions/Blank Solution

This creates a solution file and directory structure to add projects to. See Blank Solution Template.

Database

These templates appear under the Database category.

Project Template

More Information

SQL Server/SQL Server 2005 Database Project

Database projects provide ways to programmatically interact with databases. For more information, see How to: Create Database and Server Projects.

SQL Server/SQL Server 2005 Server Project

SQL Server/SQL Server 2005 Wizard

SQL Server/SQL Server 2008 Database Project

SQL Server/SQL Server 2008 Server Project

SQL Server/SQL Server 2008 Wizard

SQL Server/Data-tier Application

SQL Server/Visual Basic SQL CLR Database Project

SQL Server/Visual C# SQL CLR Database Proejct

Modeling Projects Templates

The following templates appear under the Modeling Projects category.

Project Template

More Information

Modeling Project

Test Projects Templates

The following templates appear under the Test projects/Test Documents subcategory.

Project Template

More Information

Test Documents

Creates a test project to use for automated tests. For more information about how to create automated tests, see Creating Automated Tests.

See Also

Tasks

How to: Find and Install Templates Located Online

How to: Restore Default Project Templates

Reference

General, Projects and Solutions, Options Dialog Box

Concepts

File Types and File Extensions in Visual Basic and Visual C#

Other Resources

Creating Windows-Based Applications

Office Development in Visual Studio