27
Perceptions on Build and Deployment process
Posted under Software developmentWith a TFS source control system and Visual Studio setting in a development environment, there are a couple of ways to manage builds. First off, I believe in continuous integration and monitoring. In simple terms it’s basically compiling, auto unit-testing, packaging and QAing on an everyday basis while the development is on. There are many tools that help us do this, nAnt, CruiseControl.Net, TFS Teambuild, Automated Build Studio etc. Some may or may not have all the features of a complete continuous integration setup. Also while CC is focused primarily on continuous integration as a whole, ABS is focused on build and deployment. I have not used or done any research on CC, so can’t talk about it much, but I’ve heard great things about it.
Continuous monitoring is going one step further and making sure that people and processes are aware of the data, results of the build process. Compilation warnings, errors, everything there is to do with the build in a neat, human-readable concise dashboard like format. One could even consider displaying the dashboard in a central place where developers sit or interact. The information is always accessible, fresh and brings awareness to act upon.
There is a beautiful discussion on Continuous monitoring at the HanselMinutes podcast.
The Team build in TFS 2005 is basically an XML file with instructions on how to go about the build process. This can involve copying files, labeling a branch, moving files, running executable and batch files, compiling a setup script etc. The experience of creating and maintaining a Team Build is very unintuitive and unfriendly. It’s not easy, if you want to do specific and unique steps in your build process.
There is some information on MSBuild with Visual Studio 2008 over at Somasegar’s blog
That’s where Automated build studio comes in. At $349 per licensed copy it’s a steal in my opinion. It saves hours of developer effort and energy in trying to get things going. It has super easy drag and drop interface, excellent integration with Visual studio, compiles all kinds of projects, does everything you need to do with a build. It can be easily scheduled as a task to run at a given time. You can get everything up and running literally in a matter of minutes. The only thing that I still need to figure out is getting set of workitems and changesets that go in to a specific build, I think it may be possible, but I don’t know yet. So basically the TFS server wouldn’t have the knowledge directly that a build has gone in. But wait, there is a Server setup for ABS and I believe that can take care of this. So if you install it on the server where TF is running, it get’s integrated with the TF. I haven’t tried it though, so I am not sure. Check more on ABS website.
So to sum it up, I think ABS is a great way to do build and deployment and with a scheduled task and a server setup it’s a great way of managing the whole process. I had an opportunity to use ABS v4 in my project and it has loads of great features from the time I used it last, the ABS v3. It just works.
I have read that at some point Microsoft will enable a ABS like interface right inside Visual Studio. But I think it will be years before it happens, May be 2010. I don’t know.
Mean while does anyone really like TeamBuild over ABS?
