In order to move from raw source code to a fully functioning application, many things need to happen. For instance, applications written using a static language such as C# must be compiled and, perhaps, copied to a special folder (such as the bin folder in the case of an ASP.NET web application). An application may also require a number of other artifacts to function properly, such as images, script files, or even entire database schemas. The act of preparing these artifacts—as well as anything else that an application requires in order to function—is often referred to as “the build.”
Previous chapters explored the idea that, while humans are notoriously bad at performing repetitive tasks with accuracy, computers handle these types of tasks with ease and precision. Chapter 17 demonstrated a great example of this by taking advantage of the computer’s talents to perform automated testing of an application.
This chapter expands on the theme of automating the various aspects of software development by applying automation techniques to the act of building and deploying your application. Along the way, we’ll explore how to use automation to improve the interaction between members of your development team and the other groups involved in creating, validating, and delivering your software.
Though the examples in this chapter demonstrate common automated build and deployment scenarios using Microsoft’s MSBuild and Team Foundation Server tools, there are numerous ...