| |
| |
Foreword | |
| |
| |
Preface | |
| |
| |
| |
Defining a Build | |
| |
| |
The Two Types of Builds: Developers and Project | |
| |
| |
Building from the Inside Out | |
| |
| |
More Important Build Definitions | |
| |
| |
How Your Product Should Flow | |
| |
| |
Microsoft Solution Framework | |
| |
| |
Summary | |
| |
| |
Recommendations | |
| |
| |
| |
Source Tree Configuration for Multiple Sites and Parallel (Multi-Version) Development Work | |
| |
| |
Definitions | |
| |
| |
How This Process Works: An Example Using VSS | |
| |
| |
Hatteras: A Look Into the Future of SCC at Microsoft | |
| |
| |
Summary | |
| |
| |
Recommendations | |
| |
| |
| |
Daily, Not Nightly, Builds | |
| |
| |
The Importance of a Successful Daily Build | |
| |
| |
What Are You Building Every Day? | |
| |
| |
Summary | |
| |
| |
Recommendations | |
| |
| |
| |
The Build Lab and Personnel | |
| |
| |
The Need for a Build Lab | |
| |
| |
Build Lab Rules | |
| |
| |
Hardware Configuration | |
| |
| |
Build Personnel | |
| |
| |
Summary | |
| |
| |
Recommendations | |
| |
| |
| |
Build Tools and Technologies | |
| |
| |
First, Every Build Needs a Script | |
| |
| |
Binary Generating Tools-Also Referred to Loosely as "Build Tools" | |
| |
| |
"You Provide the Nose; We Provide the Grindstone" | |
| |
| |
In Steps the 800-Pound Gorilla! | |
| |
| |
XML Is the Here, the Now, and the Future | |
| |
| |
What Build Tool Should You Be Using and When? | |
| |
| |
Summary | |
| |
| |
Recommendations | |
| |
| |
| |
SNAP Builds-aka Integration Builds | |
| |
| |
What Is a SNAP Build? | |
| |
| |
When to Use SNAP Builds | |
| |
| |
How SNAP Works | |
| |
| |
Sample Machine Configuration | |
| |
| |
Operations Staff | |
| |
| |
Managing Throughput | |
| |
| |
Summary | |
| |
| |
Recommendations | |
| |
| |
| |
The Build Environment | |
| |
| |
Setting Up the Environment | |
| |
| |
Setting Up a Developer or Tester Machine | |
| |
| |
A Makefile Example That Explains How This Works | |
| |
| |
Summary | |
| |
| |
Recommendations | |
| |
| |
| |
Versioning | |
| |
| |
Why Worry About Versioning? | |
| |
| |
File Versioning | |
| |
| |
Build Number | |
| |
| |
Source Code Control Trees | |
| |
| |
Should There Be Other Fields in the File Version Number? | |
| |
| |
DLL or Executable Versions for .NET (Assembly Versions) | |
| |
| |
How Versioning Affects Setup | |
| |
| |
Even Installing Correctly Does Not Always Work | |
| |
| |
Summary | |
| |
| |
Recommendations | |
| |
| |
| |
Build Security | |
| |
| |
Physical Security for the Build, Source, and Release Lab | |
| |
| |
Tracking Source Changes (All Check-Ins)-The Build Process | |
| |
| |
Binary/Release Bits Assurance | |
| |
| |
IT Infrastructure | |
| |
| |
Want More Security? | |
| |
| |
Summary | |
| |
| |
Recommendations | |
| |
| |
| |
Building Managed Code | |
| |
| |
The Official Definition of Managed Code | |
| |
| |
What Is the CLR, and How Does It Relate to Managed Code? | |
| |
| |
Managed Execution Process | |
| |
| |
The Definition of Assemblies As It Pertains to the .NET Framework | |
| |
| |
Delay Signing and When to Use It | |
| |
| |
One Solution or Many Solution Files? | |
| |
| |
Summary | |
| |
| |
Recommendations | |
| |
| |
| |
International Builds | |
| |
| |
Important Concepts and Definitions | |
| |
| |
| |
Internationally Ignorant Code | |
| |
| |
| |
Locale-Dependent Source | |
| |
| |
| |
Single Worldwide Source | |
| |
| |
| |
Single Worldwide Binary | |
| |
| |
USE Unicode | |
| |
| |
Summary | |
| |
| |
Recommendations | |
| |
| |
| |
Build Verification Tests and Smoke Tests | |
| |
| |
Smoke Test | |
| |
| |
Build Verification Tests | |
| |
| |
Summary | |
| |
| |
Recommendations | |
| |
| |
| |
Building Setup | |
| |
| |
The Basic Definitions | |
| |
| |
Setup Is Not a Testing Tool | |
| |
| |
Summary | |
| |
| |
Recommendations | |
| |
| |
| |
Ship It! | |
| |
| |
Software Release at Microsoft | |
| |
| |
Summary | |
| |
| |
Recommendations | |
| |
| |
| |
Customer Service and Support | |
| |
| |
Goals of Support | |
| |
| |
How Support Works and Communicates with the Product Teams | |
| |
| |
Summary | |
| |
| |
Recommendations | |
| |
| |
| |
Managing Hotfixes and Service Packs | |
| |
| |
Introduction to "Release Management with VSS" | |
| |
| |
Release Management: General Scenarios | |
| |
| |
Summary | |
| |
| |
Recommendations | |
| |
| |
| |
7 Suggestions to Change Your Corporate or Group Culture | |
| |
| |
What Is Corporate Culture? | |
| |
| |
It Starts at the Top | |
| |
| |
When All Else Fails | |
| |
| |
Don't Go Gipper | |
| |
| |
NASA Columbia and Challenger Disasters: When Management Pulls Rank and There Is a Big Disconnect Between the Manager's View and the Engineer's View | |
| |
| |
Summary | |
| |
| |
Recommendations | |
| |
| |
| |
Future Build Tools from Microsoft | |
| |
| |
MSBuild | |
| |
| |
Visual Studio Team System | |
| |
| |
Visual Studio Team Build | |
| |
| |
The Microsoft Shell (MSH, or Monad) | |
| |
| |
Summary | |
| |
| |
Recommendations | |
| |
| |
| |
Embedded Builds | |
| |
| |
Nuts and Bolts of the CE Build System | |
| |
| |
| |
Extreme Programming | |
| |
| |
Extreme Programming Fundamentals | |
| |
| |
Test-Driven Development and Refactoring | |
| |
| |
An Extreme Programming Scenario | |
| |
| |
Microsoft Case Study | |
| |
| |
References and Further Reading | |
| |
| |
| |
Testing Guide | |
| |
| |
Test Guide: A Compilation from the Developer Division at Microsoft | |
| |
| |
| |
Debug Symbols | |
| |
| |
The Windows Scenario That You May Run into with Your Applications | |
| |
| |
Final Thoughts | |
| |
| |
Index | |