views:

177

answers:

2

I'm trying to find the best way logically separate projects in TFS 2010. Currently we have three separate projects:

  1. A core framework project which is run on a server
  2. A console application that references the core framework dll.
  3. A web application that also references the core framework dll.

TFS partitions projects into Team Projects. All of these three are really separate "projects", but the last two depend on the framework .dll reference. In the Java world you can set up dependency management where the core framework would build and publish to a central repository in the company and the client projects could be checked out separately and just reference the dll in the repository so no projects would break.

Does TFS manage dependencies? Should these three projects be set up in separate team projects or the same one? Can you build across team projects?

What is the best way to set up team projects so that there are minimal dependency issues, but are also partitioned so that they can be individually worked on and build scripts can access all projects for CI?

+1  A: 

TFS is pretty weak when it comes to managing dependencies, but if you're happy to live in a single solution file, you can share project between solutions reasonable well by using: File->Source Control->Add Project from Source Control...

This way, when you get a solution, you get all it's projects as well.

The downside is that you will have to pull and build everything every time.

Unfortunately, at our place, this was too limiting on just about every level and we've had to set up our own tooling to provide prebuilt libraries and dependency management.

Jim T
+1  A: 

TFS Team projects are not comparable to what you may understand as a software project/solution. Basically a Team project is a container for a bunch of stuff that you want to keep together.

So I think it's best in your case to have one team project for all the three software projects you mention above. They obviously are interdependent and have to be maintained together anyway. Regarding CI, you can access each software project on it's own or all in one go, you can do whatever is most useful for you.

HTH.
Thomas

Thomas Weller
What if there are separate teams working on each of the three different projects?
Ryan Hayes
One team must not necessarily correlate to one TFS Team project. You can well organise it such that more than one team works within such a context, if this makes sense for you.
Thomas Weller