Structuring Solutions & Projects in Team Foundation Server
Team Foundation Server is a great Product.
No matter how great it is, the same questions do arise on any large scale development project I face, with any SCM & Build tool :
- How to manage dependencies between teams?
- How to deal with versioning and versions dependencies ?
Here are some simple rules & trick that we found appropriate to use with TFS:
- Dependencies within VS Projects in a Solution are “Project Dependencies”
- Dependencies between VS Projects within different Solutions within the same Team Project are Binaries Dependencies handled with an M: Drive (subst) that points to a local Binary Repository.
- Build Configuration within a Team Project deal manually with the build order.
- Dependencies between Projects within different Team Projects are Binaries Dependencies (Same with M drive).
Developers have an M: Drive mapped to a local copy of the repository.
Most dependencies reference the LATEST version (except in some cases where the explicitly reference a Released version ex : 1.0)
Developers work with their local copy. When the version is stable, that can update their local Repo with a script from the repository (robocopy), an build again ( with the latest build assemblies).
Comments on this are more than welcome.