Often when people think about build, they think just about the act of compiling some source code – when I hit F5 in the IDE, it builds, right? Well yes, kind of. In a real production build system, there is so much more to it than that. There are many kinds of builds – F5, desktop, nightly, continuous, rolling, gated, buddy etc. The variety of build types is reflective of the important role build plays in the software development process and the varied ways it does so. Build is a key integration point in the process. It is where developers’ work comes together; it is where developers hand off to test and where release hands off to operations. No wonder there are so many requirements on it.
As I mentioned, build is about a lot more than compiling the code. It can include making sure the right code is assembled, compiling, testing, version stamping, packaging, deployment and more. Of course, because software systems are all different and organizations are different, many of the activities need to be completely different. As a result, extensibility plays a major role. In TFS 2010, we increased the extensibility options by including a build workflow engine (based on the .NET Workflow Foundation) on top of the existing msbuild capabilities. Unfortunately, as flexibility increases, so does the amount you need to know to make sound decisions and fully automate your build workflow.
This book is a great resource to help you understand the variety of roles build plays in software development and how you can leverage msbuild and TFS. It will show you how to use “out of the box” solutions, provide guidance on when to customize, what the bestcustomization approaches are and details on and examples of how to actually do it. I think it will be an invaluable resource to keep on your reference shelf.