Code Version Control on Windows

At work a large number of our projects are ongoing additions to existing websites. I like to think that this means when we win a customer that they’re so happy with our customer support and relationships, and so pleased with our problem solving solutions that they have no reason to go anywhere else. I’m sure this is mostly true.

This does mean that I spend much of my time working in Classic ASP. A lot of people will shout down classic asp based on its age alone, but they’re still a lot to like about it

  • it’s still a pretty solid VB implementation 
  • 99% of the time the customer doesn’t care what the codebase base is
  • and we can work wonders with it

Now, Classic ASP is very loose code, essentially just text files in whatever layout or framework you decide to use. Also each programmer in our company tends to work on their own projects, or at least their own code modules, so we don’t have to worry much about code merging. This means that you can run some basic version control by knocking the database to offline and RARing up the entire build folder with a date as the filename.

However, it is always more fun to be using the newest and best tools for the job, so when we get projects that I can route into .NET I jump at the chance. Using .NET introduces some code complexities that could be made to work with the above “system”, but if we’re using VS2010 for development, then we want a 2010 version solution.

I spent some time with two different options VisualSVN and Team Foundation Server.

If you ask anyone in the Open Source world which system to use, you’ll probably be told SubVersioN (or git depending on who you talk to). VisualSVN seems to be a very capable implementation of this, built with Visual Studio integration in mind. I liked this product a lot.

However, we have access to the full Microsoft range so Team Foundation Server became our only real choice. A very capable product this can link into several of the other Microsoft options such as Exchange (for outlook integration) and Sharepoint, you really can manage a product from your desktop. Unfortunately with all that integration it’s a bit of a minefield to configure. Installation has some very specific steps that need to be followed. Even once it’s installed, the permissions system requires so many little tweaks it can leave your head spinning. Essential is the Team Foundation Server Administration Tool, this made the user admin a breeze.

TFS can do a lot for you, but with a small team like ours I think it’s overkill, I’d love to go back to using VisualSVN. I think we’ll need to sit as a team and make the decision what works best for us.

Horses for courses, eh ?