How do I organize many projects on Team Foundation Services (TFS in the cloud)
cloud, tfs
Solution
I think the key is to understand the organisational structure on offer to you with `Team Foundation Service`. How you choose to organise it is ultimately up to you.
You have the following available to you in `Team Foundation Service`.
- One Project Collection
- In normal TFS you can have many Project Collections. In `Team Foundation Service` (at the time of writing), you can only have 1.
- Team Projects
- These are the projects that go into the Project colection.
- You can put many solutions into one `Team Project` or you can simply have one.
- Source Control Folders
- Each project obviously contains Source Control folders, so these could be further split up into projects.
I don't have as many projects as you, but I do something like this:
- Create dedicated `Team Projects` for major projects (solutions)
- Put similar minor projects (solutions) into one `Team Project`
- You can even nest things further. I have included a real world scenario I use for the SSRS report we write.
See below for an example how I do it:
- Collection (Project Collection)
- Major Project 1 (Team Project)
- trunk
- branches
- branch 1
- Group Of Minor Projects (Team Project)
- Minor Project 1
- trunk
- branches
- Minor Project 2
- trunk
- branches
- Minor Project 3
- trunk
- branches
- Major Project 2 (Team Project)
- trunk
- branches
- branch 1
- Group of SSRS Projects (Team Project)
- 2005
- Clients
- Client1
- trunk (Optional)
- branches (Optional)
- Client2
- Client3 Shared (All Clients)
- 2008
- Clients
- Client1
- Client2
- Client3 Shared (All Clients)
- 2008 R2
- Clients
- Client1
- Client2
- Client3 Shared (All Clients)
One point to remember is that builds are separated by `Team Project`. So this might impact your decision further.
Problem
How do I organize many projects on Team Foundation Services (TFS in the cloud). I have about 300 solutions (with multiple projects in each solution) that I want to source control in TFS. The problem is how do I organize them? A little background: I am an contract developer so I work for many clients and have many projects written in VB and C# ranging from VB6 to .net 4.5 and everything in between.