James W. Newkirk
Alexei A. Vorontsov
A Division of Microsoft Corporation
One Microsoft Way
Redmond, Washington 98052-6399
Copyright 2004 by James W. Newkirk and Alexei A. Vorontsov
All rights reserved. No part of the contents of this book may be reproduced or transmitted in any form or by any means without the written permission of the publisher.
Library of Congress Cataloging-in-Publication Data pending.
Printed and bound in the United States of America.
1 2 3 4 5 6 7 8 9 QWE 8 7 6 5 4 3
Distributed in Canada by H.B. Fenn and Company Ltd.
A CIP catalogue record for this book is available from the British Library.
Microsoft Press books are available through booksellers and distributors worldwide. For further information about international editions, contact your local Microsoft Corporation office or contact Microsoft Press International directly at fax (425) 936-7329. Visit our Web site at www.microsoft.com/learning/. Send comments to email@example.com .
Microsoft, Microsoft Press, Visual Basic, Visual C#, and Visual Studio are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries . Other product and company names mentioned herein may be the trademarks of their respective owners .
The example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious. No association with any real company, organization, product, domain name , e-mail address, logo, person, place, or event is intended or should be inferred.
This book expresses the author s views and opinions . The information contained in this book is provided without any express, statutory , or implied warranties. Neither the authors, Microsoft Corporation, nor its resellers or distributors will be held liable for any damages caused or alleged to be caused either directly or indirectly by this book.
Robin Van Steenburgh
Body Part No. X10-25670
This book is dedicated to my father,
William A. Newkirk
Practical wisdom is only to be learned in the school of experience. Precepts and instruction are useful so far as they go, but, without the discipline of real life, they remain of the nature of theory only ” Samuel Smiles
This book is dedicated to my mother,
Larisa L. Vorontsova
A thousand-mile journey begins with the first step and can only be taken one step at a time. ” An old saying
We would like to thank our technical reviewers, Martin Fowler, Lee Holmes, and Eric Gunnerson. The feedback and guidance that they provided during the writing process was invaluable. In addition to the technical reviews, we also received much needed feedback and criticism from the following individuals: Charlie Poole, Paul Karsten, Peter Provost, Gregor Hohpe, Dragos Manolescu, Michael Two, Kent Beck, Ron Jeffries, Jonathan Wanagel, Scott Densmore, Naveen Yajaman, David Astels, Ward Cunningham, Benjamin Mitchell, Chris Colleran, David Trowbridge, Srinath Vasireddy, and Andrew Slocum. Their input has greatly influenced the content of the book. It is a pleasure for us to acknowledge their contributions and express our appreciation for their efforts. We would also like to thank the following people at Microsoft Press: Linda Engelman for her help getting us started and everything she did to get the book completed as soon as possible; Robin Van Steenburgh for taking over Linda s big job; Devon Musgrave for his advice on the first draft; Kathleen Atkins for her help in getting the book completed; and Nancy Sixsmith for converting what we wrote into English.
Every book is an activity that always takes more time than you think. I (James) need to thank my wife, Beth, and my children, Erin and Grant, for allowing me the time that I needed to work on the book. In fact, I owe them for all the nights and weekends that they have given up while I worked on my latest scheme. Thank you. In addition, I would like to thank my coauthor Alexei. I thoroughly enjoyed the many hours we worked together trying to cobble together the thoughts and ideas first into a sample program and then into the text that became this book.
Writing this book took a great deal more time than can be explained, justified, or even be considered reasonable, but, without a doubt, it has been the most rewarding experience for me. I (Alexei) owe James a great deal of gratitude for giving me this opportunity. I have learned much in the process of working on the book. I would also like to thank my mentor and manager, Regan Stern, for recognizing the importance of my working on this book and supporting me in this effort.
About the Authors
James Newkirk is the development lead for the Microsoft Platform Architecture Guidance team, building guidance and reusable assets for enterprise customers through the Patterns & Practices series. Prior to joining Microsoft, he coauthored Enterprise Solution Patterns in .NET (Microsoft Press) and Extreme Programming in Practice (Addison-Wesley). In between writing books and consulting on software projects, James led the development of NUnit V2. He can be reached at firstname.lastname@example.org .
Alexei A. Vorontsov has been a software developer for more than eight years . He has developed software in a variety of environments, from scientific mathematical applications to enterprise systems. His interests include development, testing, and management of large distributed software solutions and pragmatic application of agile methods to meet the goals of enterprise system development in a cost-efficient manner.