26.04.2015 Views

Team Development with Visual Studio Team Foundation Server

Team Development with Visual Studio Team Foundation Server

Team Development with Visual Studio Team Foundation Server

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

• Read the companion How To articles. Read the following companion How To<br />

articles for a step-by-step walkthroughs of various procedures discussed in this<br />

chapter.<br />

• How To: Structure ASP.NET Applications in <strong>Visual</strong> <strong>Studio</strong> <strong>Team</strong><br />

<strong>Foundation</strong> <strong>Server</strong>.<br />

• How To: Structure Windows Applications in <strong>Visual</strong> <strong>Studio</strong> <strong>Team</strong><br />

<strong>Foundation</strong> <strong>Server</strong>.<br />

• How To: Structure Your Source Control Folders in <strong>Visual</strong> <strong>Studio</strong> <strong>Team</strong><br />

<strong>Foundation</strong> <strong>Server</strong>.<br />

Strategies for Solution and Project Structure<br />

The three most common strategies used to structure solution and project files are:<br />

• Single solution. If you work on a small system, create a single solution and place all<br />

of your projects <strong>with</strong>in it.<br />

• Partitioned solution. If you work on a large system, use multiple solutions to group<br />

related projects together. Create solutions to logically group subsets of projects that a<br />

developer would be most likely to modify as a set, and then create one master<br />

solution to contain all of your projects. This approach reduces the amount of data that<br />

needs to be pulled from source control when you only need to work on specific<br />

projects.<br />

• Multiple solutions. If you are working on a very large system that requires dozens of<br />

projects or more, use multiple solutions to work on sub-systems but for dependency<br />

mapping and performance reasons do not create a master solution that contains all<br />

projects.<br />

In general you should:<br />

• Use a single solution strategy unless the resulting solution is too large to load into<br />

<strong>Visual</strong> <strong>Studio</strong>.<br />

• Use multiple solutions to create specific views on sub-systems of your application.<br />

• Use multiple solutions to reduce the time it takes to load a solution and to reduce<br />

build time for developers.<br />

Keep the following considerations in mind when designing a project and solution<br />

structure:<br />

• Each project generates an assembly at build time. Start by determining what<br />

assemblies you want to create and then use this to decide what projects you need. Use<br />

this to determine how to factor your codebase into projects.<br />

• Start <strong>with</strong> the simplest single solution structure. Only add complexity to your<br />

structure when it is really necessary.<br />

• When designing a multi-solution structure:<br />

• Consider project dependencies. Try to group those projects that have<br />

dependencies on one another as part of the same solution. This enables you to<br />

use project references <strong>with</strong>in your solution. By using project references<br />

instead of file references, you enable <strong>Visual</strong> <strong>Studio</strong> to keep build

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!