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.

Create One <strong>Team</strong> Project per Application if You Want to Migrate Work<br />

Items and Other Assets Between Application Versions<br />

If you want to carry forward not only source code but also work items and other TFS<br />

assets between releases, consider using one team project per application. When you use a<br />

single team project for multiple versions of the application, all of the TFS assets are<br />

carried forward automatically for the next release. When you are ready to release a new<br />

version of your application, you can create a branch <strong>with</strong>in the project to represent the<br />

release and isolate that code.<br />

Keep the following key points in mind when using one project per application:<br />

• Parallel releases are forced to share work items schema, check in policies, and<br />

process guidance.<br />

• Reporting is more difficult; because reports default to the entire project, you must add<br />

filtering by release.<br />

• If you have hundreds of applications, each in its own project, you will run up against<br />

TFS performance and scale limits.<br />

• You will accumulate ‘baggage’ over multiple releases. The easiest way to address this<br />

issue is to create a new project and branch the code you want to carry forward into<br />

that project.<br />

Additional Resources<br />

• For more information about using team projects, see “When to use <strong>Team</strong> Projects” at<br />

http://blogs.msdn.com/ericlee/archive/2006/08/09/when-to-use-team-projects.aspx<br />

Create One <strong>Team</strong> Project per Version if You Want to Start <strong>with</strong> New Work<br />

Items and Other Assets <strong>with</strong> Each Application Version<br />

If you want each release to start fresh <strong>with</strong>out carrying forward work items and other TFS<br />

assets, consider using one project per release. When you use a new project for each<br />

release, you can modify work item schema, workflow, check-in policies, and other assets<br />

<strong>with</strong>out impacting the old release. This can be especially useful if the old release will be<br />

maintained by a separate team such as a sustained engineering team who may have a<br />

different process and workflow than your main development team.<br />

Keep the following key points in mind when using one project per release:<br />

• Although it is very easy to move the source code from one project to another, it is<br />

difficult to move work items and other TFS assets from one project to another.<br />

Because work items can only be copied one at a time to another project, if you want<br />

to copy sets of work items, you will need to write your own utility.<br />

• If you have hundreds of applications and releases, each in its own project, you will<br />

run up against TFS performance and scale limits.<br />

• Choose a structure you can live <strong>with</strong> in the long term because restructuring existing<br />

team projects is difficult.<br />

• Source can be easily shared among team projects as follows:<br />

o Branch source from one project to another.<br />

o Map source from another project into your workspace.

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

Saved successfully!

Ooh no, something went wrong!