Table of Contents

building client/server applications with an example-driven approach
Building Client/Server Applications with VB.NET: An Example-Driven Approach
byJeff Levinson ISBN:1590590708
Apress 2003

Written for developers with a working knowledge of Visual Basic .NET, this manual describes the full process of application development and details each step in creating an n-tier solution.

Table of Contents
Building Client/Server Applications with VB .NET—An Example-Driven Approach
Chapter 1 - Understanding Application Architecture: An Overview
Chapter 2 - Building an N-Tier Application
Chapter 3 - Creating the Application Infrastructure
Chapter 4 - Handling Errors with Class
Chapter 5 - Building Business Objects
Chapter 6 - Creating the Windows User Interface
Chapter 7 - Revisiting Objects and Rules
Chapter 8 - Reusing Code
Chapter 9 - Understanding Server-Side Business Rules
Chapter 10 - Using Reflection
Chapter 11 - Implementing Web Services and the UDDI
Chapter 12 - Creating a Web Forms Interface
Chapter 13 - Globalizing and Localizing Your Application
Appendix A - Adding Support for Unicode Characters
Appendix B - Recommended Reading
List of Figures
List of Tables
List of Listings
List of Sidebars

Building Client/Server Applications with VB .NET: An Example-Driven Approach is based on Release 1.0 of the .NET Framework / Release 1.0 of Visual Studio .NET + .NET Framework Service Pack 1. Jeff Levinson walks readers through how to write a complete application-no "snippets" of code- and will show readers examples of how, when, and why to perform a task. Building Client/Server Applications with VB .NET: An Example-Driven Approach will be "the" manual on software development for Enterprise application development.

About the Author

Jeff Levinson was born and raised in Tarzana, California (San Fernando Valley). He started developing in BASIC on the Apple computer and Commodore-64 as a hobby at the age of 7. Jeff attended San Diego State University, and after college, turned to his hobby of programming in order to make a living. He currently works for Boeing Commercial Airplanes in the Business Systems division and has contracted for Motorola and US Borax. He has taught client/server programming at San Diego State University in Continuing Education and currently teaches part time at Bellevue Community College in Washington.

Building Client/Server Applications with VB .NET—An Example-Driven Approach


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 <>, or visit

Outside the United States, fax +49 6221 345229, email <>, or visit

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 <>, or visit

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 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 ( 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.


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!