Table Of Content1 YEAR UPGRADE
BUYER PROTECTION PLAN
C # . N E T
We b D eve l o p e r ’s G u i d e
Develop and Deliver Enterprise-Critical Desktop and Web
Applications with C# .NET
•Complete Case Studies with Ready-to-Run Source Code and Full Explanations
• Hundreds of Developing & Deploying,Migrating,and Debugging Sidebars,
Security Alerts,and C# .NET FAQs
• Complete Coverage of Web Services and the Integrated Development
Environment(IDE)
Adrian Turtschi
DotThatCom.com
Jason Werry
Greg Hack
Joseph Albahari
Saurabh Nandu Technical Editor
Wei Meng Lee Series Editor
167_C#_FM.qxd 12/5/01 10:16 AM Page i
s o l u t i o n s @ s y n g r e s s . c o m
With more than 1,500,000 copies of our MCSE, MCSD, CompTIA, and Cisco
study guides in print, we continue to look for ways we can better serve the
information needs of our readers. One way we do that is by listening.
Readers like yourself have been telling us they want an Internet-based ser-
vice that would extend and enhance the value of our books. Based on
reader feedback and our own strategic plan, we have created a Web site
that we hope will exceed your expectations.
Solutions@syngress.com is an interactive treasure trove of useful infor-
mation focusing on our book topics and related technologies. The site
offers the following features:
(cid:2) One-year warranty against content obsolescence due to vendor
product upgrades. You can access online updates for any affected
chapters.
(cid:2) “Ask the Author” customer query forms that enable you to post
questions to our authors and editors.
(cid:2) Exclusive monthly mailings in which our experts provide answers to
reader queries and clear explanations of complex material.
(cid:2) Regularly updated links to sites specially selected by our editors for
readers desiring additional reliable information on key topics.
Best of all, the book you’re now holding is your key to this amazing site.
Just go to www.syngress.com/solutions, and keep this book handy when
you register to verify your purchase.
Thank you for giving us the opportunity to serve your needs. And be sure
to let us know if there’s anything else we can do to help you get the
maximum value from your investment. We’re listening.
www.syngress.com/solutions
167_C#_FM.qxd 12/5/01 10:16 AM Page iv
Syngress Publishing,Inc.,the author(s),and any person or firm involved in the writing,editing,or
production (collectively “Makers”) of this book (“the Work”) do not guarantee or warrant the results to be
obtained from the Work.
There is no guarantee of any kind,expressed or implied,regarding the Work or its contents.The Work is
sold AS IS and WITHOUT WARRANTY.You may have other legal rights,which vary from state to state.
In no event will Makers be liable to you for damages,including any loss of profits,lost savings,or other
incidental or consequential damages arising out from the Work or its contents.Because some states do not
allow the exclusion or limitation of liability for consequential or incidental damages,the above limitation
may not apply to you.
You should always use reasonable care,including backup and other appropriate precautions,when working
with computers,networks,data,and files.
Syngress Media®,Syngress®,“Career Advancement Through Skill Enhancement®,”and “Ask the Author
UPDATE®,”are registered trademarks of Syngress Publishing,Inc.“Mission Critical™,”“Hack Proofing™,”
and “The Only Way to Stop a Hacker is to Think Like One™”are trademarks of Syngress Publishing,Inc.
Brands and product names mentioned in this book are trademarks or service marks of their respective
companies.
KEY SERIAL NUMBER
001 CDFE48952P
002 NHBN9436KH
003 BAEN24P7BV
004 HY9W84UJTA
005 RTW9B39RE4
006 JSE4FAHT82
007 VTS8TYCGF2
008 AUTGFLDCWR
009 833K74SLAF
010 VFR4MHY3XW
PUBLISHED BY
Syngress Publishing,Inc.
800 Hingham Street
Rockland,MA 02370
C# .NET Web Developer’s Guide
Copyright © 2002 by Syngress Publishing,Inc.All rights reserved.Printed in the United States of America.
Except as permitted under the Copyright Act of 1976,no part of this publication may be reproduced or
distributed in any form or by any means,or stored in a database or retrieval system,without the prior
written permission of the publisher,with the exception that the program listings may be entered,stored,
and executed in a computer system,but they may not be reproduced for publication.
Printed in the United States of America
1 2 3 4 5 6 7 8 9 0
ISBN: 1-928994-50-4
Technical Editor:Saurabh Nandu Freelance Editorial Manager:Maribeth Corona-Evans
Co-Publisher:Richard Kristof Cover Designer:Michael Kavish
Acquisitions Editor:Catherine B.Nolan Page Layout and Art by:Shannon Tozier
Developmental Editor:Kate Glennon Copy Editor:Darren Meiss
CD Production:Michael Donovan Indexer:Rich Carlson
Distributed by Publishers Group West in the United States and Jaguar Book Group in Canada.
167_C#_FM.qxd 12/5/01 10:16 AM Page v
Acknowledgments
We would like to acknowledge the following people for their kindness and support in
making this book possible:
Richard Kristof and Duncan Anderson of Global Knowledge,for their generous access
to the IT industry’s best courses,instructors,and training facilities.
Ralph Troupe,Rhonda St.John,and the team at Callisma for their invaluable insight into
the challenges of designing,deploying and supporting world-class enterprise networks.
Karen Cross,Lance Tilford,Meaghan Cunningham,Kim Wylie,Harry Kirchner,Kevin
Votel,Kent Anderson,and Frida Yara of Publishers Group West for sharing their
incredible marketing experience and expertise.
Mary Ging,Caroline Hird,Simon Beale,Caroline Wheeler,Victoria Fuller,Jonathan
Bunkell,and Klaus Beran of Harcourt International for making certain that our vision
remains worldwide in scope.
Annabel Dent of Harcourt Australia for all her help.
David Buckland,Wendi Wong,Marie Chieng,Lucy Chong,Leslie Lim,Audrey Gan,and
Joseph Chan of Transquest Publishers for the enthusiasm with which they receive our
books.
Kwon Sung June at Acorn Publishing for his support.
Ethan Atkin at Cranbury International for his help in expanding the Syngress program.
Jackie Gross,Gayle Vocey,Alexia Penny,Anik Robitaille,Craig Siddall,Darlene Morrow,
Iolanda Miller,Jane Mackay,and Marie Skelly at Jackie Gross & Associates for all their
help and enthusiasm representing our product in Canada.
Lois Fraser,Connie McMenemy,and the rest of the great folks at Jaguar Book Group for
their help with distribution of Syngress books in Canada.
vv
167_C#_FM.qxd 12/5/01 10:16 AM Page vi
Contributors
Todd Carrico (MCDBA,MCSE) is a Senior Database Engineer for
Match.com.Match.com is a singles portal for the digital age.In addition to its
primary Web site,Match.com provides back-end services to AOL,MSN,and
many other Web sites in its affiliate program.Todd specializes in design and
development of high-performance,high-availability data architectures primarily
on the Microsoft technology.His background includes designing,developing,
consulting,and project management for companies such as Fujitsu,Accenture,
International Paper,and GroceryWorks.com.In addition to his contribution to
C# .NET Web Developer’s Guide,Todd has also contributed chapters to other
books in the Syngress .NET Series including the ASP .NET Web Developer’s
Guide,and the VB .NET Developer’s Guide.Todd resides in Sachse,TX,with his
wife and two children.
Mark Tutt is a Senior Software Engineer with MICROS Systems.MICROS
provides complete information management solutions for the hospitality
industry,including software,hardware,enterprise systems integration,consulting,
and support.Mark is the principle designer of a number of software packages,
including Guest Service Solution,a customer relationship management system
for the MICROS Restaurant Enterprise Series platform.In addition to his
product development duties,Mark is a key contributor to the design and devel-
opment of system integration software and customer-specific product exten-
sions that allow MICROS clients to fully integrate MICROS products into
their overall technology plans.Mark currently resides in Baltimore,Maryland
with his wife Malinda and their twin sons,Fred and Jackson.
Jason Werry (MCSD) runs a consulting firm,Synergy Data Solutions,in
Australia.He currently provides strategic and technical consulting to his clients
and specializes in Windows-based enterprise systems development.Jason has an
extensive background using Microsoft technologies and is currently developing
state-of-the-art,Web-based applications on the .NET platform.His clients have
ranged from a Taiwanese multimedia company to various government depart-
ments and local startups.A natural born programmer,Jason started coding
Z80 processors in Assembly at age 13.Since then he has used most popular
vi
167_C#_FM.qxd 12/5/01 10:16 AM Page vii
programming languages and presently enjoys working with SQL Server,MTS,
IIS,Visual Basic,and C#.Jason holds a bachelor’s degree in Mathematics/
Computer Science from The University of Queensland.He dedicates his
writing to his loving wife,LiHsing.
Patrick Coelho (MCP) is an Instructor at The University of Washington
Extension,North Seattle Community College,Puget Sound Center,and Seattle
Vocational Institute,where he teaches courses in Web Development (DHTML,
ASP,XML,XSLT,C#,and ASP .NET).Patrick is a Co-Founder of
DotThatCom.com,a company that provides consulting,online development
resources,and internships for students.He is currently working on a .NET
solution with contributing author David Jorgensen and nLogix.Patrick holds a
Bachelor’s of Science degree from the University of Washington,Bothell.
Patrick lives in Puyallup,WA with his wife Angela.
David Jorgensen (MCP) is an Instructor at North Seattle Community
College,University of Washington extension campus,and Puget Sound Centers.
He is also developing courses for Seattle Vocational Institute,which teaches
.NET and Web development to the underprivileged in the Seattle area.David
also provides internship opportunities through his company DotThatCom.com,
which does online sample classes and chapters of books.David holds a bach-
elor’s degree in Computer Science from St.Martin’s College and resides in
Puyallup,WA with his wife Lisa and their two sons Scott and Jacob.
Greg Hack is a Senior Software Engineer with Allscripts Healthcare Solutions.
Greg has over 15 years experience developing software on platforms ranging
from the mainframe to the desktop using a wide variety of languages and tech-
nologies.Recent work includes a Web-based application that allows patients to
view their medical records and a Pocket PC application that delivers clinical
information to physicians at the point of care.
Axel Goldbach is a Senior Consultant with modulo3 GmbH,a consulting
company based in Germany and specializing in project management consulting
throughout Europe.modulo3 is a process implementation specialist for the
major networking frameworks,including eXtreme Programming,MSF and
V Modell.Axel currently provides senior-level strategic and technical consulting
to all modulo3 clients in Germany and Central Europe.His duties include anal-
ysis and development of multi-tiered applications in heterogeneous environments.
vii
167_C#_FM.qxd 12/5/01 10:16 AM Page viii
Axel also works as a technical scout and trainer for modulo3.His training spe-
cialties include programming languages,networking,and academic fields such as
development methodology,parser- and interpreter-technology,theory of com-
plexity,and provable correct software.
Joseph Albahari is a freelance consultant and developer with over 10 years
experience in designing networked systems.He has led a string of successful
projects,from custom application frameworks for start-up companies,to high-
performance OLAP and data warehousing systems for telecommunications
giants.His knowledge in object-oriented user interface design has been called
upon in the planning or production of many large and complex systems,where
well-balanced abstractions are of key importance.Joseph is also experienced in
SQL Server database administration,and has developed high-performance solu-
tions for clients with specialized requirements—such as a replication system
providing field level synchronization,or a high-throughput bulk-copying agent.
Joseph holds a Bachelor’s degree in computer science and physics.
Adrian Turtschi (MCSE,MCSD) is Lead Architect Solution Development
with Avanade (Germany),where he is responsible for the solution offering in
the mobile computing space.He has been working on the Microsoft .NET
platform since fall 2000,specializing in developing enterprise systems using Web
Services.He is particularly interested in using Web Services to bridge platform
and system boundaries.Prior to joining Avanade,Adrian worked for KPMG’s
Global Knowledge Exchange in Boston,where he helped design and develop
KPMG's global knowledge management and collaboration solution,used by its
100,000 professionals world-wide.Adrian has work experience in Switzerland,
the Netherlands,and the US.He has degrees in Mathematics and Computer
Science.He currently lives in Berlin,Germany.
viii
167_C#_FM.qxd 12/5/01 10:16 AM Page ix
Technical Editor and Reviewer
Saurabh Nandu is the Founder of www.MasterCSharp.com which concen-
trates on teaching C# and .NET.He worked with HTML,JavaScript,Flash 5.0
before he started programming in Java.Saurabh has been impressed by the
power and flexibility of .NET.He is currently employed by YesSoftware Inc.
as Technical Evangelist.
Technical Editor’s Acknowledgements
I would like to thank my friend Nanu Jogi without whose direction I would
have never got into working on the .NET Platform.I would also like to thank
my family,especially my brother Pritesh,for their support.
Series Editor
Wei Meng Lee is Series Editor for Syngress Publishing’s .NET Developer
Series.He is currently lecturing at The Center for Computer Studies,Ngee
Ann Polytechnic,Singapore.Wei Meng is actively involved in Web development
work and conducts training for Web developers and Visual Basic programmers.
He has co-authored two books on WAP.He holds a Bachelor’s degree in
Information Systems and Computer Science from the National University of
Singapore.The first and second books of the .NET series,VB .NET Developer’s
Guide (ISBN:1-928994-48-2),and ASP .NET Developer’s Guide (ISBN:
1-928994-51-2) are currently available from Syngress Publishing.
ix
167_C#_FM.qxd 12/5/01 10:16 AM Page x
About the CD
This CD-ROM contains the code files that are used in each chapter of this book.The
code files for each chapter are located in a chXX directory (for example,the files for
Chapter 8 are in the ch08 directory).Any further directory structure depends on the pro-
jects that are presented within the chapter.
To work with the examples provided,you will need at least the Windows 2000 or
Windows XP Professional operating system with the latest service packs,IIS 5.x,and IE
6.0,since ASP.NET and Web Services (a part of ASP.NET) are not supported on earlier
operating systems such as Windows 9x/WindowsME/WindowsNT.Also needed is the
.NET SDK Beta2 (the latest public release available while writing this book) and the
Visual Studio.NET Beta2 IDE.
The C# .NET Web Developer’s Guide provides you with extensive examples that will
help solve the problems you might face while developing applications for the .NET
Platform rather than concentrating on the theory of C# and .NET programming.
Therefore code is the main feature of this book.
The chapters contain both code snippets and sample programs that illustrate the
principles discussed.Chapter 2 presents a series of sample programs that introduce con-
cepts in C# that are different from other object-oriented languages.Chapter 4 helps you
understand the basics of building Graphical User Interface (GUI)-rich Windows Forms
applications;the examples presented in this chapter are the launch pad for Windows
Forms applications used in other chapters.Similarly,code presented in Chapter 8 helps
you to interact with various databases using ADO.NET;again,this chapter acts as a foun-
dation for further chapters’database coverage.Chapter 9 will acquaint you with using
.NET Class Libraries to interact with XML and its related technologies.
Chapters 5,6,and 11 discuss technologies and Application Program Interfaces (APIs)
that help two applications to communicate and interact with each other. Chapter 5
focuses on enabling applications to communicate over the TCP and UDP protocols and
provides an overview of the techniques used to interact with Web pages programmatically.
Code examples in Chapter 6 and Chapter 11 concentrate on using Simple Object Access
Protocol (SOAP) and object serialization and deserialization.
x
167_C#_FM.qxd 12/5/01 10:16 AM Page xi
Chapter 7 examples examine message delivery in distributed applications using
Microsoft Message Queuing (MSMQ).Chapter 10 takes a comprehensive look at
ASP.NET and helps you build various applications of increasing complexity and func-
tionality,starting with an XML Poll,progressing to a SQL-powered Message Board,and
ending with a Shopping Cart.
Lastly,to end on a lighter note,Chapter 12 takes you through building a Jokes Web
Service.The code in this chapter helps you build both the Jokes Web Service as well as
the Windows Forms Client for the service.
Look for this CD icon to obtain files used
in the book demonstrations.
xi
Description:Microsoft's C# ("C sharp") is a modern, object-oriented programming language built from the ground up to exploit the power of XML-based Web services on Microsoft's new .NET platform. With its Visual C++ development system heritage, C# will enable millions of C and C++ developers to use existing skil