1
votes

I am researching how I'd like to re-structure my companies source control with TFS. The hurdle that I keep getting hung up on is the proper way to structure the source control.

Consider the following 3 project examples:

  • ProjectA.UI
  • ProjectA.Common (domain classes used on both sides. Currently a part of the same solution as ProjectA.UI and included in the ProjectA.WCF solution.)
  • ProjectA.WCF

Option 1 (seperate all three into seperate solutions each under their own MAIN branch):

  • TeamProject
    • ProjectA
      • ProjectA.UI
        • MAIN
          • Source
            • .sln is here
      • ProjectA.Common
        • MAIN
          • Source
            • .sln is here
      • ProjectA.WCF
        • MAIN
          • Source
            • .sln is here

Option 2 (seperate all three into seperate solutions all under a MAIN branch):

  • TeamProject
    • ProjectA
      • MAIN
        • ProjectA.UI
          • Source
            • .sln is here
        • ProjectA.Common
          • Source
            • .sln is here
        • ProjectA.WCF
          • Source
            • .sln is here

Option 3 (put all three in the same solution under a MAIN branch):

Can someone point out some flaws in my designs or give me some pointers on a better idea?

1
Did you get your inspiration from the vs branching and merging guide? - rene
yes, I have looked over the ALM Rangers guide. - Zach Larson

1 Answers

3
votes

If the UI and WCF projects depend upon the Common project then all three should be in the same solution file. I personally would use option 3.

Benefits are:

  • Only one solution to build.
  • You can release all three projects from one branch.
  • When you branch (for a release or vNext) you get all the projects together.