Projects as Containers
To help you to organize and perform common tasks on the items that you are developing, Visual Studio projects are used as containers within a solution to logically manage, build, and debug the items that comprise your application. The output of a project is usually an executable program (.exe), a dynamic-link library (.dll) file or a module, among others.
A project can be as simple or as complex as you need to meet your requirements. A simple project might consist of a form or HTML document, source code files, and a project file. More complex projects might consist of these items plus database scripts, stored procedures, and references to an existing XML Web Services.
All Visual Studio development products provide a number of pre-defined project templates. You can use one of the many project templates to create the basic project container and a preliminary set of items that you might need to develop your application, class, control, or library. For example, if you chose to create a Windows application, the project offers a Windows form item for you to customize. Likewise, if you chose to create a Web application, the project offers a Web form item. For more information about your language's project types and templates, see Default Project Templates in Visual Studio.
Projects and their templates allow you to concentrate on the specific functionality you want to implement as the project handles common management and build tasks for you. For more information, see Project Items. You can work with the default settings provided, or you can customize your build configurations. For more information, see Build Configurations.
Also, you can create your own templates. For more information, see Visual Studio Templates.
Each project template creates and maintains a project file to store the metadata specific to that project. This project file is created and maintained for you while you work within the integrated development environment (IDE). The extension for the project file and the actual content is determined by the type of project it defines, so a complete description is not within the scope of this topic. Web site projects do not maintain project files. For more information, see Web Application Projects versus Web Site Projects.
In general, the project file stores the configuration and build settings you specify for the project and its set of items. Some projects keep a list of the files associated with the project and the location of the file.
When an item is added to a project, the location of its physical source file on disk is also added to the project file. When the link is removed from the project, this information is deleted from the definition file. Each project template determines which commands are available for each item. For more information, see Item Management in Projects.