I’d like to take a moment to thank the numerous people who contributed to the production of this book and lent their unselfish support to the person who wrote it.

First, a tip of the hat to John Pierce, wordsmith par excellence, and Marc Young, who is the most thorough technical editor I’ve ever had the pleasure of working with. Both are veterans of many books and are among the best in the business at what they do. I hate to even think about what this book would look like had it not been for them.

Next, a profound thanks to the colleagues whom I pressed into service to read chapters and provide technical feedback: Francesco Balena, Jason Clark, John Lam, John Robbins, Kenn Scribner, and Dave Webster. I’m especially indebted to Jeffrey Richter for sharing with me his deep knowledge of the .NET Framework.

Special thanks also to the many people inside and outside Microsoft who answered my questions and helped me overcome technical obstacles. The list includes, but is not limited to, Peter Drayton, Rob Howard, Erik Olson, and Brent Rector.

And lest I forget, a heartfelt thanks to Microsoft Press illustrator Rob Nance, who got me out of a jam when I needed comic book covers for the sample programs in Chapter 6. Also to Microsoft’s Anne Hamilton, who allowed me the opportunity to write this book and waited patiently for me to deliver, and Claudette Moore, my agent and longtime friend, who pressed me to get this project off the ground.

Finally, to my family: my wife, Lori, and my children, Adam, Amy, and Abby. Writing a book is hard work. This time around I proved that it’s harder on the author’s family than it is on the author himself. These four endured a lot while I spent endless days and nights laboring over the manuscript, and words can’t express how good it feels to know that they’re always there for me, rooting for me every step of the way.

Look, kids. I’m done!