At first glance, building and deploying applications seem simple enough. But in fact, difficult releases without any confidence or processes backing them are very common. Integration and management of a new deployment can be laborious and fraught with risk. So as team size and volume of projects grow, management becomes more difficult and risk more pronounced.
This book is a guide to the implementation of good processes in a .NET environment. Author Marc Holmes focuses on actual implementation, and details patterns and anti-patterns to watch out for. He also provides a practical and in-depth look at NAnt and CruiseControl.NET, and solutions to common problem scenarios.
Delivering software? If you have bought this book, or grabbed it from a colleague’s desk, or even found it in the street and are looking at it with some interest, then I think it is quite likely that you have been struggling with the same problems as I have for some time. Successful build and release processes seem to be easy when given some casual thought. In principle, moving and configuring a Windows or web application from development through testing and staging environments ultimately to production is quite straightforward. In practice, though—as I am sure you have found—the process can be considerably more complex.
An application can have many aspects that require configuration as well as many assets to move around and store. A developer can easily miss these aspects. These factors can also go unnoticed for some time, and only cause a problem when the assets are needed “right now.” Builds and releases can take an extended amount of time. They will not usually “fail” in the sense that a piece of software is not delivered to the customer, but they will fail in various other ways. They may gradually add risk and complexity to the processes and reduce confidence in the platform. For example, they may rely on Bob being available because only he knows the configuration file.