Effective use of workspaces in Visual Studio?

I am wondering what is the best way to use workspaces in visual studio. We have another 150 web services that are part of the same $ / MyTeamProject team project, not linked at all. The reason they are all part of the same team project is because they are all supported by the same group of people in our organization.

Each web service has the following structure

$ / MyTeamProject / WebService1
$ / MyTeamProject / WebService1 / Main
$ / MyTeamProject / WebService1 / Release / 1.0
$ / MyTeamProject / WebService1 / Release / 1.1

$ / MyTeamProject / WebService2
$ / MyTeamProject / WebService2 / Main
... etc.

I am wondering how to properly use workspaces with this setup, as currently there is only a mapping for a team project, so all my web services are part of the same workspace. Should I create a mapping for upstream and for each release branch as a separate workspace or should I map each web service to its own workspace such as $ / MyTeamProject / WebService1?

Any help would be appreciated.

I cannot put each of the webservices in its own team project, as tfs is divided among several groups with the same number of projects, and therefore we are limited to our own project for all webservices.

+1


source to share


2 answers


You said web services are not linked at all. Then I assume they are released separately.



I see no reason to use multiple workspaces in your scenario. I suggest removing the mapping from the "MyTeamProject" top-level project. Then you have the flexibility to map subfolders to any local folder you want.

+1


source


If you have one workspace for each web service, you get 150 * # jobs. It will be very difficult to control assembly versions, labeling, etc. Fewer workspaces means fewer assemblies to manage.

I would recommend having a release workspace. Typically, you will probably only be working on one release at a time, and this will allow you to efficiently manage all the code for one release. Also you can map your client workspaces into a more logical structure, as you hinted in the question.

for example

\ Projects \ MyTeamProject \ Main \ WebService1
\ Projects \ MyTeamProject \ Main \ WebService2 ...



\ Projects \ MyTeamProject \ Release1.0 \ WebService1
\ Projects \ MyTeamProject \ Release1.0 \ WebService2 ...

\ Projects \ MyTeamProject \ Release1.1 \ WebService1
\ Projects \ MyTeamProject \ Release1.1 \ WebService2 ...

etc.

0


source







All Articles