Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

We have a ASP3.0 application with a few ASP.NET (2.0) dittys mixed in. (Our longtime goal is to migrate everything to ASP.NET but that's not important for this issue)

Our current test/deploy workflow is like this:

1 Use notepad++ or VS2008 to fix a bug/feature (depending on what I have open)
2 Open my virtual test-server
3 Copy the fixed file over, either with explorer, or if I can be bothered to open it, WinMerge
4 Test that the fix works
5 Close the virtual test-server
6 Connect to our host with VPN
7 Use WinMerge to update the files necessary
8 Pray to higher powers that the production environment is not so different that something bombs.

To make things worse, only I have access to my "test-server". So I'm the only one testing it.

I really want to make this a bit more robust, I even have a subversion setup running. But I always forget to commit changes... And I don't even work in my checked out folder, but a copy of what is currently in production...

Can someone recommend some good reading on deploying, testing, staging and stuff like that. I currently use VS2008 and want to use subversion or GIT (or any other free VCS). Since I'm the only developer, teamsystem is not really an option (cost-related). I have found myself developing an "improved" feature, only to find a bug in the same feature in the production system. And since my "improved" feature incorporated deleting some old functionality, I have to fix bugs directly in production... That's not a fun feeling...

(I have inherited this system recently... So it's not directly my fault that it is like this ;) )

share|improve this question
1  
Should migrate this to StackOverflow as it is all about development tools & process. –  Richard May 25 '10 at 8:52
    
I put it here because a similar question on SO was migrated here... Where should environment and deployment questions be put? –  Christian Wattengård May 25 '10 at 9:46
add comment

1 Answer

up vote 2 down vote accepted

Very roughly.

Here's what you need:

  1. Central sourcecode repository (SVN, Git, or any other modern VCS)
  2. CI server (see TeamCity, Bamboo or CruiseControl.NET)
  3. Tool similar to Chinchillin or MSDeploy

And here's how your process should look like:

  1. You check out latest source code to your dev box
  2. Fix it here, test, fix again
  3. When fixed, commit changes to the repository
  4. Press a button in a CI dashboard that will build and deploy staging version of your website
  5. Test your website on a staging server
  6. Press yet another button in a CI dashboard that will take previously built staging version (this is crucial!) of your webapp and deploy it to the production.

For branching, you may refer to this article for inspiration and ideas.

share|improve this answer
    
Yes.. This is the workflow I have been thinking about. The only thing missing here is working on different branches of the code (ref the new feature old bug scenario I mentioned) –  Christian Wattengård May 25 '10 at 11:20
    
@Christian See my edit. –  Anton Gogolev May 25 '10 at 12:26
    
That article was good. I could adapt that to single-user with some tinkering... How would you do CI with ASP.NET/cASP ? –  Christian Wattengård May 26 '10 at 6:32
    
@Christian Doing CI for ASP(.NET) is not much different than doing CI with anything else. For a list of CI servers, see my edit. –  Anton Gogolev May 26 '10 at 10:01
    
Thanks man... That InfoQ article really helped me. Now lets see if I can make some progress in this mess ;) –  Christian Wattengård May 27 '10 at 7:27
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.