views:

143

answers:

2

We are building a website, which is serving only asmx-webservices. These webervices are consumed by Windows Mobile clients.

Our developers write the code and test most of the functions on their development machines. Then they use the "Publish Website" function in Visual Studio to precompile the website and to copy it to a network share. This share points to a IIS6 root folder.

After that, they use our mobile clients to do integration tests with the latest version of the webservices.

Sometimes it is the case, that the developers use the remote debugger to debug on the integration machine.

This process has some major drawbacks:

  • The code which is currently running is not necessary checked in, so you never know which version is running on the machine
  • One developer can easily overwrite the published build of another developer
  • While one developer is debugging the remote machine, execution of the services is blocked for the others

What is your best practise to develop such kind of system in a team? Do we need automated builds? We have no unit tests for that system.

Our company will install the TFS this week. Is there a template or something which supports out process?

+3  A: 

Your developers can't simply upload new versions of the site without checking in the sources to the source control system.

There are several ways to fix this:

  • Only one dev has access rights to write on the server.
  • Create a build script which gets the latest version from source control and then copies the binaries to the test server. This way your developers MUST check in everything. You can deploy using a deploy script on the server itself, or manual deploy.
Gerrie Schenck
+1 Agree that only one "build manager" should have access to the production server
Dave Swersky
+2  A: 
  • The official site should only be uploaded from your official build machine. This should get the latest source from your VCS, build and upload.

  • Devs should each have their own sandbox to test in.

GeekyMonkey