Professional Enterprise .NET Published by Wiley Publishing, Inc. 10475 Crosspoint Boulevard Indianapolis, IN 46256 www.wiley.com Copyright 2009 by Wiley Publishing, Inc., Indianapolis, Indiana Published simultaneously in Canada ISBN: 978-0-470-44761-1 No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008, or online at http://www.wiley.com/go/permissions . Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties, including without limitation warranties of fitness for a particular purpose. No warranty may be created or extended by sales or promotional materials. The advice and strategies contained herein may not be suitable for every situation.
This work is sold with the understanding that the publisher is not engaged in rendering legal, accounting, or other professional services. If professional assistance is required, the services of a competent professional person should be sought. Neither the publisher nor the author shall be liable for damages arising herefrom. The fact that an organization or Web site is referred to in this work as a citation and/or a potential source of further information does not mean that the author or the publisher endorses the information the organization or Web site may provide or recommendations it may make. Further, readers should be aware that Internet Web sites listed in this work may have changed or disappeared between when this work was written and when it is read. For general information on our other products and services please contact our Customer Care Department within the United States at (877) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002.
Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic books. Library of Congress Control Number: 2009933374 Trademarks: Wiley, the Wiley logo, Wrox, the Wrox logo, Wrox Programmer to Programmer, and related trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries, and may not be used without written permission. All other trademarks are the property of their respective owners. is not associated with any product or vendor mentioned in this book. is not associated with any product or vendor mentioned in this book.
Dedicated to my wife Andrea, whose kindness, imagination, beauty, and patience make her the girl every man hopes to marry. Jon Arking Dedicated to my beautiful Lynsey thanks for the love, tea and the toast. And for Agatha and Columbo... probably the best rabbits in the world. Scott Millett About the Author
Jon Arking is an enterprise software architect working in the greater Philadelphia region. He has been designing, developing, and managing multi-tiered systems for over 14 years, specializing in system migrations and the design of distributed architectures.
Jon has experience programming in multiple languages and platforms, and has spent much of his career designing systems, managing teams, teaching classes, giving lectures and interviews, and publishing on a variety of technical topics. His company, Arking Technologies, specializes in designing enterprise systems for large companies in the Philadelphia area.
Scott Millett lives in Southsea, Portsmouth in the South of England where he is the senior developer for . Credits Acquisitions Editor Paul Reese Project Editor Ed Connor Technical Editor Doug Parsons Production Editor Kathleen Wisor Copy Editor Foxxe Editorial Services Editorial Director Robyn B. Siesky Editorial Manager Mary Beth Wakefield Production Manager Tim Tate Vice President and Executive Group Publisher Richard Swadley Vice President and Executive Publisher Barry Pruett Associate Publisher Jim Minatel Project Coordinator, Cover Lynsey Stanford Proofreader Jen Larsen, Word One Josh Chase, Word One Indexer Robert Swanson Cover Image Digital Vision/Punchstock Acknowledgments I owe a lot of thanks to many people for helping to make this book a reality. Thanks to Ed Connor and Jim Minatel for their patience and understanding during a very busy time in my career.
Huge thanks to my coauthor, Scott, for understanding my vision and helping to bring it to life. If you ever make it to Philly Ill have to show you how we roll on this side of the Pond! Thanks also to Vince, Sandra, John, and Ed at the Jug Handle Inn, who let a guy write a book at the bar on late Saturday nights. A special note of gratitude to my lovely mother, whose nagging and drama always kept me on course, and to my father who clearly helped shape me into the cantankerous, overbearing geek/meathead I am today. Most of all, thanks to my wife Andrea, and my children, Emma and Jake, who once again proved that their patience for me has no bounds! Jon Arking First thanks to Jim Minatel at Wiley for giving me the opportunity of writing for Wrox and suggesting me to Jon. Thanks to Jon for the chance to get involved on such a great project and for all the help, support and guidance during the writing process. The next time youre in England I will take you on a good old fashioned pub crawl! Thank you to Doug Parsons, the technical editor, for all of his hard work and a big thanks to Ed Connor who had the unenviable task, as the books Project Editor, to keep myself and Jon on track thank you for all of your help.
Finally special thanks to Lynsey, my beautiful wife to be for all the love and support you have given me before, during, and since writing this book and for reminding me whats important in life. Scott Millett Contents Introduction Computer programming and developing business software are not the same thing. Though many think that writing code is the same no matter how you do it or who you do it for, nothing could be further from the truth. Sure, youve got to have coding skills in order to land some of those fancy, big-paying gigs, but thats just the beginning. Nowadays, creating software for businesses requires knowledge of many different languages and disciplines. It requires both low-level programming skills along with higher-level, comprehensive design experience.
Most of all, it requires patience and tolerance of new ideas. Of course, there are plenty of people out there who dont agree with us. Most of us know at least one or two programmers who do their best work locked away in a geek closet, insulated from the complexities of the business world. Thats fine for some. After all, not everyone wants to build software that makes their whole company sing. Small application development will always have its rightful place in the community.