Background:
3-5 programmers working with TFS. We support legacy apps as well as build new apps. I am implementing elements of continuous delivery and I want to have a good structure to start with. At present there is very little interdependency of apps but in the future there will be some shared components.
I plan to implement a "single trunk" branching strategy (in other words, NO BRANCHING) except for the very rare case where a long feature branch is required -- which I will work to ensure never happens.
Question:
Given this, which source code structure is better and why? Are there any material impacts to choosing one over the other (workspaces, etc)?
SINGLE MAIN BRANCH
$/MAIN/src/ApplicationA/ApplicationA.sln
$/MAIN/src/ApplicationA/Project1.csproj
$/MAIN/src/ApplicationA/Project2.csproj
$/MAIN/src/ApplicationB/...
$/MAIN/src/SharedModule/...
vs. MAIN BRANCH PER APPLICATION
$/ApplicationA/MAIN/src/ApplicationA.sln
$/ApplicationA/MAIN/src/Project1.csproj
$/ApplicationA/MAIN/src/Project2.csproj
$/ApplicationB/MAIN/src/...
$/SharedModule/MAIN/src/...