JEFF LEVINSON
Copyright 2003 by Jeff Levinson
All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher.
ISBN (pbk): 1-59059-070-8
Printed and bound in the United States of America 12345678910
Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, we use the names only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark.
Technical Reviewers: Mary Romero Sweeney, Eric Mashlan
Editorial Directors: Dan Appleman, Gary Cornell, Jason Gilmore, Simon Hayes, Karen Watterson, John Zukowski
Managing Editor: Grace Wong
Project Manager: Tracy Brown Collins
Project Editor: Janet Vail
Copy Editor: Kim Wimpsett
Compositor: Susan Glinert
Artist and Cover Designer: Kurt Krames
Indexer: Kevin Broccoli
Production Manager: Kari Brooks
Manufacturing Manager: Tom Debolski
Distributed to the book trade in the United States by Springer-Verlag New York, Inc., 175 Fifth Avenue, New York, NY, 10010 and outside the United States by Springer-Verlag GmbH & Co. KG, Tiergartenstr. 17, 69112 Heidelberg, Germany.
In the United States, phone 1-800-SPRINGER, email <orders@springer-ny.com>, or visit http://www.springer-ny.com.
Outside the United States, fax +49 6221 345229, email <orders@springer.de>, or visit http://www.springer.de.
For information on translations, please contact Apress directly at 2560 9th Street, Suite 219, Berkeley, CA 94710. Phone 510-549-5930, fax: 510-549-5939, email <info@apress.com>, or visit http://www.apress.com.
The information in this book is distributed on an "as is" basis, without warranty. Although every precaution has been taken in the preparation of this work, neither the author nor Apress shall have any liability to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the information contained in this work.
The source code for this book is available to readers at http://www.apress.com in the Downloads section.
For my grandparents Bobbie and Harry without whom I would never have made it this far.
Also, for Ric and Sandi Royce, my parents in every way that counts. Thank you both for everything.
—Jeff Levinson
About the Author
Jeff Levinson grew up in Southern California and attended San Diego State University. He subsequently went on to a career in the film and TV industry as a 1st Assistant Cameraman and a 2nd Assistant Director. After six years he decided to change careers to what had been simply a lifelong hobby—programming. He has done contract work for many large companies (EDS, U.S. Borax, Motorola, and Boeing) and several smaller companies. He currently works for Excell Data Corporation and has been contracted to Boeing Commercial Airplanes, Information Systems for more than two years as a senior developer/technical architect. He holds the following Microsoft certifications: MCP, MCSD, MCDBA, and MCAD. In his spare time he likes to play RPG games and spend as much time playing golf (more accurately, looking for his ball in the rough) as possible.
About the Technical Reviewers
Mary Romero Sweeney is the author of Visual Basic for Testers (Apress, 2001). She has been programming and testing software for many years and is a frequent speaker at Software Test conferences. Mary is a college professor and provides training and consultation on software development and test topics through Exceed Technical Training (http://www.ExceedTraining.com). Visual Basic, of course, is her favorite programming language, but when she is not programming and testing in Visual Basic, she spends time with her two kids, Ryan and Keilan. She has a bachelor's degree in mathematics and computer science from Seattle University.
Eric Mashlan has a degree in philosophy with a minor in theology. He started programming soon after cofounding 49 West Coffeehouse in Annapolis, Maryland. Eric sold his share in the restaurant, moved to Hawaii with his now-wife Angela, and got his first job developing mortgage software in Access. Ever syncretistic, he soon discovered the importance of the existential component of software design. He is often over-heard mumbling questions such as, "Who wrote this? Was there an architect? Why is it here? What is its purpose?"
Eric currently works for Fujitsu Consulting in Seattle, Washington, and has spent the past three years designing and developing finance and contract software for Boeing Commercial Airlines. Eric specializes in Visual Basic 6 and has been working with VB .NET since the Beta 1 release.
Acknowledgments
I am not going to list anyone in order of importance, except the first person on this list. This book would not be in your hands without the efforts of Mary Sweeny. She introduced me to my editor at Apress and worked tirelessly to technically edit this book. In addition, she provided excellent suggestions along the way. I truly believe this book would not be half of the work that it is without her. From clarifying my explanations to helping organize my thoughts, she helped with it all. Thanks for everything, Mary!
From Apress I would like to thank Karen Watterson, my editor. I thank her not only for providing much-needed encouragement but also for suggesting some additional content that I had not planned to include in this book. And I thank her for knowing almost everything going on in development circles, from major initiatives to little-known Web sites. I would also like to thank my project manager, Tracy Brown Collins, without whom I would never have gotten this book finished. She kept getting me back on track and pushed me when I needed it. If this book comes across as readable, it is entirely through the dedication of Kim Wimpsett, my copy editor. Being a typical developer, it seems that I needed some additional work on my grammar and organization…. And thanks to Janet Vail, my production editor, for catching all the last-minute mistakes and making life easy on me.
I would also like to offer a special thanks to Dan Appleman and Gary Cornell. I spent my early programming career reading everything that they wrote. To have this book published by their company is a huge honor for me.
Eric Mashlan, who also worked as a technical editor on this book, was a tremendous help. He not only helped find and correct mistakes, but he also offered helpful suggestions for the reader.
I owe a great deal of thanks to all of my coworkers at Boeing Commercial Airplanes, Information Systems. They have all been extremely supportive through a busy year, and the encouragement was much appreciated. I feel the need to point out two individuals in particular: David Nelson is an associate technical fellow within Boeing, and he offered a great deal of support and ideas, several of which are in this book. I appreciate all of the support you gave me, David—thanks! The other person I would like to thank is my project manager, Jeremy Winn. No other person over the course of the previous year has had a greater impact on my professional career than Jeremy. When a person reaches the level of being a technical architect and designing applications, they are assumed to have a certain level of knowledge. What Jeremy gave me was the ability to understand, deal with, and lead a team of developers in a professional manner. He showed me that the job of an architect is to be able to deal with everyone on an equal footing and from a position of knowledge and understanding. It is a gift I cannot even begin to repay, but I hope this will do for a start. Thank you, Jeremy.
Further, I would like to thank special individuals from Excell Data Corporation: Elaine Anderson and Brian Romas. As my resource managers they were both, in their unique ways, very supportive of this project and of my career in general. Of course, it might have been that they were being this way as part of their jobs… just kidding.
Last by definitely not least, I would like to thank all of the members of my family for their support over a tumultuous year and all of the years before now. In particular, my best friend, Adam Royce, has constantly been supportive of me in everything I have done in both my personal and professional life. Again, it is another debt I cannot repay. Thanks for everything, Adam!