Team Development with Visual Studio .NET and Visual SourceSafe

Retired Content
This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.


patterns & practices Developer Center

patterns and practices Index

.NET Architecture Center

Application Architecture for .NET: Designing Applications and Services


By Kenny Jones, Alex Mackman, Ray Escamilla, Brett Keown, and Edward Jezierski

Microsoft Corporation

January 2002

The patterns & practices team has decided to archive this content to allow us to streamline our latest content offerings on our main site and keep it focused on the newest, most relevant content. However, we will continue to make this content available because it is still of interest to some of our users.
We offer this content as-is, without warranty that it is still technically accurate as some of the material is undoubtedly outdated. Note that the content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

Summary: The roadmap helps you see what's available in each chapter of the guide and terminology used throughout the different chapters.


This guide provides guidance and recommendations to enable you to set up a team development environment and work successfully within it.

If you are beginning a .NET team development project, you first need to understand how to establish development processes that work in a team environment. You need to know how to set up and work with the team development features supported by the Microsoft® Visual Studio® .NET integrated development environment (IDE), and you also need to be aware of the development techniques (such as how to set assembly references in the correct way) that must be followed by your development team members to ensure successful team working.

The guide is divided into the following chapters:

  • Chapter 1, "Introducing the Team Environment." This chapter presents an overview of the team environment and introduces the key building blocks and processes. Read this chapter to gauge the scope of the guide and to understand the team development model upon which the guide is based.
  • Chapter 2, "ASP.NET Web Application Development Models." This chapter describes the approach you should adopt to build Web applications within a team development environment.
  • Chapter 3, "Structuring Solutions and Projects." This chapter explains how you should organize and structure Visual Studio .NET solutions and projects and presents the tradeoffs associated with single-solution and multi-solution development models. It also recommends folder structures that you can use to store projects locally and within Microsoft Visual SourceSafe™ (VSS).
  • Chapter 4, "Managing Dependencies." This chapter explains how you should handle assembly references, Web references, database references, and COM object references.
  • Chapter 5, "The Build Process." This chapter covers the build process and the role of the build server and automated build script that is used to generate system builds.
  • Chapter 6, "Working with Visual SourceSafe." This chapter provides a series of step by step procedures that walk you through common development tasks such as how to add solutions and projects to Visual SourceSafe, how to retrieve solutions from VSS, and how to check files in and out on a daily basis. This chapter gets you up to speed quickly on the essential tasks.
  • Chapter 7, "Setting Up and Maintaining the Team Environment." This chapter describes the infrastructure and the hardware and software requirements for all of the workstations and servers within the team environment. It also provides guidance on how to create and maintain a VSS database.
  • Appendix, "BuildIt". BuildIt is a Microsoft® .NET console application contributed by Sapient Corporation that automates the build process outlined in this article. BuildIt is designed, developed, and tested by Sapient Corporation and it is reviewed by Microsoft, including team members of the Microsoft patterns & practices and Visual Studio® .NET development system.

To get the most from this guide, you are encouraged to read all chapters in order. You can also access this entire guide in pdf format.

Who Should Read This Guide

This guide provides team-development guidelines for lead developers, developers, test team members, and system administrators. Read this guide if you plan to, or currently work on, a team-based .NET development project.

What You Must Know

To use this guide to establish a team development environment and a development process suited to .NET, you must have some development experience with Visual Studio .NET. This guide assumes you have either created or are familiar with .NET assemblies and Web services.

You should also be aware of the general issues and challenges traditionally associated with team-based software development projects. Ideally, you will have some experience with a source control system, preferably VSS.

Note   This guide focuses on the use of VSS version 6.0c (the version that ships with the Enterprise editions of Visual Studio .NET) as the source control system. However, much of the guidance and many of the discussed processes apply equally well to other change management systems, many of which can be directly integrated into the Visual Studio .NET IDE.


Terms such as "system," "solution," and "project," which are used extensively in this guide, tend to be heavily overloaded. The following sections describe the context in which this guide uses these terms.


The term "system" refers to the overall application that you are developing. Your system ultimately consists of the combined set of assemblies that you release into a production environment.

Inner and Outer System Boundaries

This guide also introduces the idea of an inner and outer system boundary. This division becomes important when you start to consider which components of your system are built in-house by your central build process and which components fall outside of the domain of the build process and are simply referenced as external dependencies. The following describes the system boundaries:

  • Inner system assemblies are built as part of your system build process.
  • Outer system assemblies are all other assemblies, including third-party components and .NET Framework assemblies.

Figure 1 illustrates the idea of the inner and outer system boundaries:


Figure 1. Inner and Outer System Boundaries


If you are new to Visual Studio .NET, the term "solution" will also be new. A solution essentially represents everything you are currently working on. Visual Studio .NET uses solutions as containers for individual projects—these generate your system components (.NET assemblies). Solution files maintain project dependency information and are primarily used to control the build process. Solutions are discussed further in Visual Studio .NET Solutions in Chapter 3, "Structuring Solutions and Projects".


In the context of this guide, there are three types of projects:

  • General development projects. The term "project" in its loosest sense refers to your team's current development effort.
  • Visual Studio .NET projects. Project files are used by Visual Studio .NET as containers for configuration settings that relate to the generation of individual assemblies. These are discussed further in Visual Studio .NET Projects in Chapter 3, "Structuring Solutions and Projects".
  • Visual SourceSafe Projects. A project in a VSS database is simply a collection of (usually logically related) files. A VSS project is similar to an operating system folder, with added version control support.

Feedback and Support

Questions? Comments? Suggestions? For feedback on the Team Development Guide, please email us at

The Application Blocks for .NET components and guides are designed to jumpstart development of .NET distributed applications. The sample code and guidance is provided "as-is." Support is available through Microsoft Product Support for a fee.

A newsgroup has also been created to assist you with the Application Blocks for .NET components and guides. Use this newsgroup to consult with your counterparts, peers, and Microsoft Support Professionals in an online, open forum.

Everyone else benefits from your questions and comments, and our development team is monitoring the newsgroup on a daily basis:

Newsgroup: Web-Based Reader

Newsgroup: NNTP Reader

Do you want to learn and harness the power of .NET? Work side by side with technology experts at the Microsoft Technology Centers to learn development best practices. For more information please visit


Many thanks to the following contributors and reviewers:

Michael Day, Martyn Lovell, Brad Bartz, Izzy Gryko, Bill Hiebert, Jeff Pflum, Bernard Chen (Sapient), Michael Monteiro (Sapient), Dimitris Georgakopoulos (Sapient), Korby Parnell, Susan Warren, Chris Falter, Joel West, Dave Quick, Allan Hirt, Cathan Cook, Chong Lee, Milind Lele, Chris Brooks, Martin Petersen-Frey, J.D. Meier, Edward Jezierski, Jacquelyn Schmidt, Jeremy Bostron, Frank Hackländer (Siemens), Reinhold Kienzle-Press (Siemens), Sharon Bjeletich, Andrew Roubin (Vorsite)

To read the first chapter of Team Development with Visual Studio .NET and Visual SourceSafe, please see Chapter 1, "Introducing the Team Environment."

patterns & practices Developer Center

Retired Content

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

© Microsoft Corporation. All rights reserved.