A.4 Other Projects

Visual Studio .NET also supports a variety of other project types.

A.4.1 Database Projects

There is one kind of database project supported by Visual Studio .NET:

Database Project

This project template is unusual in that projects of this type are never built and do not produce any output. Database projects just contain SQL scripts. (You can execute these scripts on a database if you choose to but would not usually do so as part of the normal build process of a solution.) These projects can contain creation scripts, which allow you to build new databases with a particular schema. They can also contain change scripts, which track changes you have made to a database, and let you apply these changes to another database. Note that you are not required to create a Database project just to use the visual Database tools (the interactive tools that let you add and edit tables and stored procedures). These tools can be used in any context. However, if you have a database project open while you use these tools, they are able to keep track of the changes you make. See Chapter 5 for more information on the visual database tools and database projects.

A.4.2 Enterprise Template Projects

Enterprise Template Projects are a special kind of project in VS.NET that are available only in the Enterprise editions. Software architects can use these to create a blueprint of the way in which a particular type of application should be built within their organization. Based upon these templates, programmers can create applications or components that will automatically conform to the prescribed architecture. (Most of the templates described next are prebuilt architectures that ship with VS.NET, but you can use the Enterprise Template Project to add your own.) See the VS.NET documentation for more information about how to use and make these types of projects.

Visual Basic Simple Distributed Application

This creates a solution with seven different projects (each intended to be a different layer in a single distributed application):

  • Business Services

  • Business Façade

  • Business Rules

  • Data Access

  • System Frameworks

  • Web Service Projects

  • WebUI and WinUI

Visual C# Simple Distributed Application

This template creates the same set of projects as the Visual Basic Simple Distributed Application, but using C#.

Visual Basic Distributed Application

This template creates the same number of projects as the Visual Basic Simple Distributed Application (seven), but with each of those projects holding onto subprojects of each type (i.e., allowing multiple Data Access or Web Service projects in one distributed application).

Visual C# Distributed Application

This template creates the same set of projects as the Visual Basic Distributed Application, but using C#.

Distributed Application

This template creates the same set of projects as the Visual Basic or C# Distributed Application but allows each individual project to use either VB or C#.

Enterprise Template Project

This template creates a project that allows you to specify how you would like a distributed application built and generates a new project template that can be used in VS.NET.

A.4.3 Visual Basic/Visual C# Building Blocks

A building block project is a type of project that you can add to an Enterprise Template Project. The following types are included with VS.NET, but others can, of course, be added and customized to your own specification.

Business Façade

This type of project is used to create a shim layer to isolate the UI layer from the Business Rules layer in an application.

Business Rules

This project type is intended to hold the classes that implement the main business rules.

Data Access

This project type holds the classes that access the database for the Business Rules layer.


This project type holds the classes that perform system-level services (e.g., caching of HTML pages). Such projects may or may not be application-specific.

ASP.NET Web Service

This creates a web service project that is intended to be the shim layer between the web service-based client and the business layer (similar to the Business Façade layer, but accessible remotely).


This creates a web application using ASP.NET that is used to expose the application (using the Business Façade layer) to HTML-based clients.


This creates a Windows application that is used to create a UI for the application. (This would typically access the application logic via the ASP.NET Web Service layer.)

A.4.4 Visual Studio Analyzer Projects

Visual Studio Analyzer is a tool used for simple performance monitoring of the applications you create using VS.NET.

Analyzer Wizard

This steps you through a wizard to create a project that you can use to monitor your application.

Analyzer Project

This template creates an empty Analyzer Project to which you can add different parts of your application in order to monitor their performance using Visual Studio Analyzer.

A.4.5 Extensibility Projects

The following extensibility projects are available under Visual Studio .NET:

Visual Studio .NET Add-in

This template creates a VS.NET add-in. You can use C++ (unmanaged), C#, or Visual Basic. (This template does not support J#.) See Chapter 8 for more information about writing add-ins.

Shared Add-in

This template creates an add-in that can be loaded into multiple hosts (e.g., VS.NET, Office, etc.).

A.4.6 Application Center Test Projects

The following Application Center Test project is available under Visual Studio .NET:

ACT Project

This template creates a project for testing a web application with Application Center Test.