|
Live in fragments no longer. Only connect. Edward
Morgan Forster
We wove a web in childhood, A web of sunny air.
Charlotte Brontë
Welcome to C# and the world of Windows, Internet and World-Wide-Web
programming with Visual Studio .NET and the .NET platform! This book is the
second in the new Deitel™ Developer Series, which presents leading-edge
computing technologies to software developers and IT professionals.
C# (pronounced "C-sharp") was developed by Microsoft expressly for its .NET
platform. C# provides the features that are most important to programmers,
such as object-oriented programming, graphics, graphical-user-interface (GUI)
components, exception handling, multithreading, multimedia (audio, images,
animation and video), file processing, prepackaged data structures, database
processing, Internet and World-Wide-Web-based multi-tier application
development, networking, Web services and distributed computing. The language
is appropriate for implementing Internet- and World-Wide-Web-based
applications that integrate seamlessly with Windows-based applications.
The .NET platform offers powerful capabilities for software development and
deployment, including language and platform independence. For example,
developers writing code in any (or several) of the .NET languages (such as C#,
Visual Basic .NET and Visual C++ .NET) can contribute components to the same
software product. In addition to providing language independence, .NET extends
program portability by enabling .NET applications to reside on, and
communicate across, multiple platforms. This facilitates the creation and use
of Web services, which are applications that expose functionality to
clients over the Internet.
The .NET platform enables Web-based applications to be distributed to
consumer-electronic devices, such as wireless phones and personal digital
assistants (PDAs), as well as to desktop computers. The capabilities that
Microsoft has incorporated into the .NET platform increase programmer
productivity and decrease development time.
Who Should Read This Book
Deitel & Associates, Inc. has several C# publications,
intended for different audiences. We provide information on
www.deitel.com,
here and inside this book’s back cover to help you determine which publication
is best for you.
Our first C# book, C# How to Program, was published
as part of our How to Program Series, for college and university
students. It provides a comprehensive treatment of C# and includes learning
aids and extensive ancillary support. C# How to Program assumes that
the reader has little or no programming experience. Early chapters focus on
fundamental programming principles. The book builds on this to create
increasingly complex and sophisticated programs that demonstrate how to use C#
to create graphical user interfaces, networking applications, multithreaded
applications, Web-based applications and more. We encourage professors and
professionals to consider the The Complete C# Training Course.
This package includes C# How to Program as well as the C# Multimedia
Cyber Classroom, an interactive multimedia CD-ROM that provides extensive
e-Learning features. The Complete C# Training Course and
C# Multimedia Cyber Classroom are discussed in detail later in this
Preface.
C#: A Programmer’s Introduction, is part of the new
Deitel™ Developer Series, intended for professional software
developers—from novices through experienced programmers. C#: A Programmer’s
Introduction is a part of the A Programmer’s Introduction subseries,
which is designed for programmers with little (or no) programming experience.
The book begins with C# programming fundamentals. The core of C#: A
Programmer’s Introduction emphasizes achieving program clarity through the
proven techniques of structured programming, object-based
programming, object-oriented programming (OOP) and event-driven
programming. The book provides a rigorous introduction to programming
principles in general and to C# fundamentals, in particular. It continues with
brief introductions to upper-level topics such as ASP .NET, ADO .NET and Web
services. Unlike the How to Program Series books, the Deitel™
Developer Series books do not include the extensive pedagogic features and
ancillary support materials required for academic courses.
This book, C# for Experienced Programmers, is also
part of the Deitel™ Developer Series. This publication is a part of the
For Experienced Programmers subseries, designed for the experienced
software developer who wants a deep treatment of a new technology with
minimal, if any, introductory material. C# for Experienced Programmers
delves deeply into the more sophisticated topics that are introduced briefly
in C#: A Programmer’s Introduction. There is considerable overlap
between these books.
A fourth publication, ASP .NET with C# for Experienced
Programmers, is forthcoming. This book was originally titled Advanced
C# for Experienced Programmers.
Each of our C# books presents many complete, working C#
programs and depicts their inputs and outputs in actual screen shots of
running programs. This is our signature Live-Code™ approach—we present
concepts in the context of complete working programs. Each book’s
source code is available free for download at
www.deitel.com.
Please examine both the Deitel™ Developer Series
professional books and the How to Program Series textbooks to determine
which best suits your needs. C#: A Programmer’s Introduction and C#
for Experienced Programmers are both derived from C# How to Program.
Depending on your particular needs, you should purchase either one or both of
these Deitel™ Developer Series books, or C# How to Program.
The C# books in the Deitel™ Developer Series were
written after the first edition of C# How to Program. We added to each
of these Deitel™ Developer Series books a chapter on the new Microsoft
Mobile Internet Toolkit for our readers who wish to develop wireless Internet
applications for wireless phones, pagers and PDAs. This material will be added
to the second edition of C# How to Program.
For a detailed listing of Deitel™ products and services,
please see the "advertorial" pages at the back of this book and visit
www.deitel.com.
Readers may also want to register for our new Deitel™ Buzz Online
e-mail newsletter (www.deitel.com/newsletter/subscribe.html),
which provides information about our publications, company announcements,
links to informative technical articles, programming tips, teaching tips,
challenges and anecdotes.
As you proceed, if you would like to communicate with us,
please send an e-mail to
deitel@deitel.com—we
always respond promptly. Please check our Web sites,
www.deitel.com,
www.prenhall.com/deitel
and
www.InformIT.com/deitel
for frequent updates, errata, FAQs, etc. When sending an e-mail, please
include the book’s title and edition number. We sincerely hope that you enjoy
learning C# with our publications.
Features of C# for Experienced Programmers
This edition contains many features, including:
Syntax Highlighting. This book uses five-way syntax
highlighting to emphasize C# programming elements in a manner similar to
that of Visual Studio .NET. Our syntax-highlighting conventions are as
follows:
comments
keywords
literal values
errors and ASP .NET directives
text, class, method and variable
names
"Code Washing."
This is our term for the process we use to format the book’s programs so
that they have a carefully commented, open layout. The code is grouped
into small, well-documented pieces. This greatly improves code
readability—an especially important goal for us, considering that this
book contains approximately 26,000 lines of code in 230 complete
Live-Code™ programs.
Web Forms, Web Controls and ASP .NET. The .NET
platform enables developers to create robust, scalable Web-based
applications. Microsoft’s .NET server-side technology, Active Server Pages
(ASP) .NET, allows programmers to build Web documents that respond to
client requests. To enable interactive Web pages, server-side programs
process information users input into HTML forms. ASP .NET is a significant
departure from ASP 3.0, allowing developers to program Web-based
applications using .NET’s powerful object-oriented languages such as C#
and Visual Basic .NET, rather than using only scripting languages.
ASP .NET also provides enhanced visual programming capabilities, similar
to those used in building Windows forms for desktop programs. Programmers
can create Web pages visually, by dragging and dropping Web controls onto
Web forms. Chapter , , introduces these powerful technologies.
Web Services and ASP .NET. Microsoft’s .NET
strategy embraces the Internet and Web as integral to software development
and deployment. Web services technology enables information sharing,
e-commerce and other interactions using standard Internet protocols and
technologies, such as Hypertext Transfer Protocol (HTTP), Extensible
Markup Language (XML) and Simple Object Access Protocol (SOAP). Web
services enable programmers to package application functionality in a
manner that turns the Web into a library of reusable software components.
In Chapter , , we present a Web service that allows users to
manipulate "huge integers"—integers too large to be contained in C#’s
built-in data types. In this example, a user enters two huge integers and
presses buttons to invoke Web services that add, subtract and compare the
two integers. We also present information related to Web services in
Appendix , Crystal Reports® for Visual Studio .NET, which
discusses a popular reporting program for database-intensive applications.
Crystal Reports, which is integrated into Visual Studio .NET, provides the
ability to expose a report as a Web service. The appendix provides
introductory information and directs readers to a walkthrough of this
process on the Crystal Decisions Web site,
www.crystaldecisions.com/netzone.
Object-Oriented Programming. Object-oriented
programming is the most widely employed technique for developing robust,
reusable software. This text offers a rich treatment of C#’s
object-oriented programming features. Chapter , , introduces how to
create classes and objects. These concepts are extended in Chapter ,
, which discusses how programmers can create powerful new classes quickly
by "absorbing" the capabilities of existing classes. Chapter , ,
familiarizes the reader with the crucial concepts of polymorphism,
abstract classes, concrete classes and interfaces, which facilitate
powerful manipulations among objects belonging to an inheritance
hierarchy.
XML. Use of Extensible Markup Language (XML) is
exploding in the software-development industry, in the e-business and
e-commerce communities, and is pervasive throughout the .NET platform.
Because XML is a platform-independent technology for describing data and
for creating markup languages, XML’s data portability integrates well with
C#-based portable applications and services. Chapter , , introduces
XML. In this chapter, we introduce basic XML markup and discuss the
technologies such as DTDs and Schema, which are used to validate XML
documents’ contents. We also explain how to manipulate XML documents
programmatically using the Document Object Model (DOM™) and how to
transform XML documents into other types of documents via Extensible
Stylesheet Language Transformations (XSLT).
Multithreading. Computers enable programmers to
perform many tasks in parallel (i.e., concurrently), such as printing
documents, downloading files from a network and surfing the Web.
Multithreading is the technology through which programmers can develop
applications that perform concurrent tasks. Historically, a computer has
contained a single, expensive processor, which its operating system would
share among all applications. Today, processors are becoming increasingly
inexpensive, making it possible to build affordable computers with many
processors working in parallel—such computers are called multiprocessors.
Multithreading is effective on both single-processor and multiprocessor
systems. .NET’s multithreading capabilities make the platform and its
related technologies better prepared to handle today’s sophisticated
multimedia-intensive, database-intensive, network-based,
multiprocessor-based, distributed applications. Chapter , ,
introduces this powerful capability.
ADO .NET. Databases store vast amounts of
information that individuals and organizations must access to conduct
business. As an evolution of Microsoft's ActiveX Data Objects (ADO)
technology, ADO .NET represents a new approach for building applications
that interact with databases. ADO .NET uses XML and an enhanced object
model to provide developers with the tools they need to access and
manipulate databases for large-scale, extensible, mission-critical
multi-tier applications. Chapter , , introduces the capabilities of
ADO .NET and the Structured Query Language (SQL) to manipulate databases.
Wireless Development. By some estimates, about
a billion people worldwide are using mobile devices, such as wireless
phones and PDAs, and this number is increasing rapidly. To simplify the
creation of Web content for mobile devices, Microsoft provides the Mobile
Internet Toolkit (MIT). The MIT, which is built on ASP .NET, allows
wireless content to be created using Visual Studio .NET’s object-oriented
languages. One program can be created that will be compatible with a
variety of devices and able to display different content based on the type
of device (e.g., a wireless phone versus a PDA). Chapter , ,
introduces wireless Web application development.
Visual Studio .NET Debugger. Debuggers help
programmers find and correct logic errors in program code. In Appendix
, , we explain how to use key debugger features, such as setting
"breakpoints" and "watches," stepping into and out of methods, and
examining the method call stack.
COM (Component Object Model) Integration. Prior
to the introduction of .NET, many organizations spent tremendous amounts
of time and money creating reusable software components called COM
components, which include ActiveX® controls and ActiveX DLLs
(dynamic link libraries) for Windows applications. In Appendix H, COM
Integration, we discuss some of the tools available in Visual Studio .NET
for integrating these legacy components into .NET applications. This
integration allows programmers to use existing sets of COM-based controls
with .NET components.
XML Documentation. Documenting program code is
crucial for software development, because different programmers often work
on an application during the software’s lifecycle, which usually includes
multiple versions and can span many years. If programmers document
software code and methods, other programmers working on the application
can learn and understand the logic underlying the code, thus saving time
and avoiding misunderstandings. To automate documenting programs, Visual
Studio .NET provides an XML tool for C# programmers. Appendix E, XML
Documentation, explains how a programmer can insert comments in the code,
which produces a separate file providing the code documentation.
Career Opportunities. Appendix , ,
introduces career services available on the Internet. We explore online
career services from both the employer’s and employee’s perspectives. We
list many Web sites where readers can submit applications, search for jobs
and review applicants. We also review services that build recruiting pages
directly into e-businesses. One of our reviewers told us that he had used
the Internet as a primary tool in a recent job search, and that this
appendix would have helped him dramatically expand his search.
Unicode®. As computer systems
evolved worldwide, computer vendors developed numeric representations of
character sets and special symbols for the local languages spoken in
different countries. In some cases, different representations were
developed for the same languages. Such disparate character sets hindered
communication among computer systems. C# supports the Unicode Standard
(maintained by a non-profit organization called the Unicode Consortium),
which maintains a single character set that specifies unique numeric
values for characters and special symbols in most of the world’s
languages. Appendix , Unicode®, discusses the standard,
overviews the Unicode Consortium Web site,
www.unicode.org
and presents a C# application that displays "Welcome to Unicode!" in
several languages.
XHTML. The World Wide Web Consortium (W3C) has
declared HTML to be a legacy technology that will undergo no further
development. HTML is being replaced by the Extensible Hypertext Markup
Language (XHTML)—an XML-based technology that is rapidly becoming the
standard for describing Web content. We use XHTML in Chapter , , and
offer an introduction to the technology in Appendix K, Introduction to
XHTML: Part 1, and Appendix L, Introduction to XHTML: Part 2. These
appendices overview headers, images, lists, image maps and other features
of this emerging markup language. (We also present a treatment of HTML in
Appendices I and J, because ASP .NET, used in Chapters 17 and 18,
generates HTML content).
Accessibility. Although the World Wide Web has
become an important part of many people’s lives, the medium currently
presents many challenges to people with disabilities. Individuals with
hearing and visual impairments, in particular, have difficulty accessing
multimedia-rich Web sites. In an attempt to improve this situation, the
World Wide Web Consortium (W3C) launched the Web Accessibility Initiative
(WAI), which provides guidelines for making Web sites accessible to people
with disabilities. Chapter , , describes these guidelines and
highlights various products and services designed to improve the
Web-browsing experiences of individuals with disabilities. For example,
the chapter introduces VoiceXML™ and CallXML™—two XML-based technologies
for increasing the accessibility of Web-based content for people with
visual impairments.
Bit Manipulation. Computers work with data in
the form of binary digits, or bits, which can assume the values 1 or 0.
Computer circuitry performs various simple bit manipulations, such as
examining the value of a bit, setting the value of a bit and reversing a
bit (from 1 to 0 or from 0 to 1). Operating systems, test-equipment,
networking software and many other kinds of software require that programs
communicate "directly with the hardware" by using bit manipulation.
Appendix O, Bit Manipulation, overviews the bit manipulation capabilities
that the .NET Framework provides.
Pedagogic Approach
C# for Experienced Programmers contains a rich
collection of examples that have been tested on Windows 2000 and Windows XP.
The book concentrates on the principles of good software engineering and
stresses program clarity. We are educators who teach edge-of-the-practice
topics in industry classrooms worldwide. We avoid arcane terminology and
syntax specifications in favor of teaching by example. The text emphasizes
good pedagogy.
We use fonts to distinguish between Visual Studio .NET’s
Integrated Development Environment (IDE) features (such as menu names and menu
items) and other elements that appear in the IDE. Our convention is to
emphasize IDE features in a sans-serif bold Helvetica font (e.g.,
Project menu) and
to emphasize program text in a serif bold Courier font (e.g.,
bool
x
=
true;).
Live-Code™ Teaching Approach
C# for Experienced Programmers is loaded with numerous
Live-Code™ examples. This style exemplifies the way we teach and write about
programming and is the focus of our multimedia Cyber Classrooms and
Web-based training courses as well. Each new concept is presented in the
context of a complete, working example that is followed by one or more windows
showing the program’s input/output dialog. We call this method of teaching and
writing the Live-Code™ Approach. We use programming languages
to teach programming languages. Reading the examples in the text is much
like entering and running them on a computer. Readers have the option of
downloading all of the book’s code examples from
www.deitel.com,
under the Downloads/Resources
link. Other links provide errata and answers to frequently asked questions.
World Wide Web Access
All of the source code for the examples in C# for
Experienced Programmers (and our other publications) is available on the
Internet as downloads from the following Web sites:
www.deitel.com
www.prenhall.com/deitel
Registration is quick and easy and these downloads are
free. We suggest downloading all the examples, then running each program as
you read the corresponding portion of the book. Make changes to the examples
and immediately see the effects of those changes— this is a great way to
improve your programming skills. Any instructions for running the examples
assumes that the user is running Windows 2000 or Windows XP and is using
Microsoft’s Internet Information Services (IIS). Additional setup instructions
for IIS and other software can be found at our Web sites along with the
examples. [Note: This is copyrighted material. Feel free to use it as
you study, but you may not republish any portion of it in any form without
explicit permission from Prentice Hall and the authors.]
Visual Studio .NET belongs to a family of products that are
available for purchase and download from Microsoft. Visual Studio .NET, which
includes C#, comes in four different editions—Academic, Professional,
Enterprise Developer and Enterprise Architect. Visual Studio .NET Academic
contains Visual Studio .NET Professional’s features in addition to features
designed for students and professors (e.g., an Assignment Manager that
documents assignment submission, Application Publishing Tools that aid in the
notification of assignments, code samples and more).
Microsoft also offers stand-alone products (Visual C# .NET
Standard, Visual C++ .NET Standard and Visual Basic .NET Standard) for various
.NET-languages. Each product provides an integrated development environment
(similar to Visual Studio .NET) and a compiler. Visit
msdn.microsoft.com/vstudio/howtobuy
for descriptions and ordering information.
Objectives
Each chapter begins with objectives that inform readers of
what to expect and gives them an opportunity, after reading the chapter, to
determine whether they have met the intended goals.
Quotations
The chapter objectives are followed by sets of quotations.
Some are humorous, some are philosophical and some offer interesting insights.
We have found that readers enjoy relating the quotations to the chapter
material. Many of the quotations are worth a "second look" after you
read each chapter.
Outline
The chapter outline enables readers to approach the
material in top-down fashion. Along with the chapter objectives, the outline
helps users anticipate topics and set a comfortable and effective learning
pace.
Approximately 26,000 Lines of Code in 230 Example Programs
(with Program Outputs)
We present C# features in the context of complete, working
C# programs. The programs range in size from just a few lines of code to
substantial examples containing hundreds of lines of code. All examples are
available as downloads from our Web site,
www.deitel.com.
665 Illustrations/Figures
An abundance of charts, line drawings and program outputs
is included.
402 Programming Tips
We have included programming tips to help readers focus on
important aspects of program development. We highlight hundreds of these tips
in the form of Good Programming Practices, Common Programming Errors,
Testing and Debugging Tips, Performance Tips, Portability
Tips, Software Engineering Observations and Look-and-Feel
Observations. These tips and practices represent the best the authors have
gleaned from many decades of programming and teaching experience. One of our
customers—a mathematics major—told us that she feels this approach is like the
highlighting of axioms, theorems and corollaries in mathematics books; it
provides a foundation on which to build good software.
52 Good Programming Practices
Good Programming Practices are tips that call attention
to techniques that will help developers produce programs that are clearer,
more understandable and more maintainable.
131 Common Programming Errors
Developers learning a language tend to make certain kinds
of errors frequently. Pointing out these Common Programming Errors
reduces the likelihood that readers will make the same mistakes.
33 Testing and Debugging Tips
When we first designed this "tip type," we thought the tips
would contain suggestions strictly for exposing bugs and removing them from
programs. In fact, many of the tips describe aspects of C# that prevent "bugs"
from getting into programs in the first place, thus simplifying the testing
and debugging processes.
46 Performance Tips
Developers like to "turbo charge" their programs. We have
included 46 Performance Tips that highlight opportunities for improving
program performance—making programs run faster or minimizing the amount of
memory that they occupy.
15 Portability Tips
We include Portability Tips to help developers write
portable code and to provide insights on how C# achieves its high degree of
portability.
96 Software Engineering Observations
The object-oriented programming paradigm necessitates a
complete rethinking of the way we build software systems. C# is an effective
language for achieving good software engineering. The Software Engineering
Observations highlight architectural and design issues that affect the
construction of software systems, especially large-scale systems.
25 Look-and-Feel Observations
We provide Look-and-Feel Observations to highlight
graphical-user-interface conventions. These observations help developers
design attractive, user-friendly graphical user interfaces that conform to
industry norms.
Summary
Each chapter ends with a summary that helps readers review
and reinforce key concepts.
Approximately 4,800 Index Entries (with approximately 6,150
Page References)
We have included an extensive Index. This resource enables
readers to search for any term or concept by keyword. The Index is especially
useful to practicing programmers who use the book as a reference.
"Double Indexing" of All C# Live-Code™ Examples
C# for Experienced Programmers has 230 Live-Code™
examples, which we have "double indexed." For every C# source-code program in
the book, we took the file name with the
.cs extension, such as
ShowColors.cs, and
indexed it both alphabetically (in this case, under "S") and as a subindex
item under "Examples." This makes it easier to find examples using particular
features.
C# Multimedia Cyber Classroom and The Complete C# Training
Course
We have prepared an interactive, CD-ROM-based, software
version of C# How to Program, called the C# Multimedia Cyber Classroom.
This resource, ideal for corporate training and college courses, is loaded
with interactive e-learning features. The Cyber Classroom is packaged
with the C# How to Program textbook at a discount in The Complete C#
Training Course. If you already have that book and would like to purchase
the C# Multimedia Cyber Classroom separately, please visit
www.InformIT.com/cyberclassrooms. The ISBN number
for the C# Multimedia Cyber Classroom is 0-13-064587-7. Many Deitel™
Cyber Classrooms are available in CD-ROM and Web-based training formats.
The CD-ROM provides an introduction in which the authors
overview the Cyber Classroom’s features. The textbook’s 204 Live-Code™
example C# programs truly "come alive" in the Cyber Classroom. If you
are viewing a program and want to execute it, you simply click the
lightning-bolt icon, and the program will run. You immediately will see—and
hear, when working with audio-based multimedia programs—the program’s output.
Click the audio icon, and one of the authors will discuss the program and
"walk you through" the code.
The Cyber Classroom also provides navigational aids,
including extensive hyperlinking. The Cyber Classroom is browser based,
so it remembers sections that you have visited recently and allows you to move
forward or backward among those sections. The thousands of index entries are
hyperlinked to their text occurrences. Furthermore, when you key in a term
using the "find" feature, the Cyber Classroom will locate occurrences
of that term throughout the text. The Table of Contents entries are "hot," so
clicking a chapter name takes you immediately to that chapter.
Readers like the fact that solutions to approximately half
the exercises in C# How to Program are included with the Cyber
Classroom. Studying and running these extra programs is a great way for
readers to enhance their learning experience.
Professionals and student users of our Cyber Classrooms
tell us that they like the interactivity and that the Cyber Classroom
is an effective reference due to its extensive hyperlinking and other
navigational features. We received an e-mail from a reader who said he lives
"in the boonies" and cannot attend a live course at a university, so the
Cyber Classroom provided an ideal solution to his educational needs.
Professors tell us that their students enjoy using the
Cyber Classroom and spend more time on the courses and master more of the
material than in textbook-only courses. For a complete list of the available
and forthcoming Cyber Classrooms and Complete Training Courses,
see the Deitel™ Series page at the beginning of this book, the product
listing and ordering information at the end of this book or visit
www.deitel.com,
www.prenhall.com/deitel
or
www.InformIT.com/deitel.
Deitel e-Learning Initiatives
e-Books and Support for Wireless Devices
Wireless devices will play an enormous role in the future
of the Internet. Given recent bandwidth enhancements and the emergence of 2.5
and 3G wireless technologies, it is projected that, within two years, more
people will access the Internet through wireless devices than through desktop
computers. Deitel & Associates, Inc., is committed to wireless accessibility
and has recently published Wireless Internet & Mobile Business How to Program.
To fulfill the needs of a wide range of customers, we are developing our
content in traditional print formats and in new electronic formats, such as
e-books, so that readers can access content virtually anytime, anywhere. Visit
www.deitel.com
for periodic updates on all Deitel technology initiatives.
e-Matter
Deitel & Associates, Inc., is partnering with Prentice
Hall’s parent company, Pearson PLC, and its information technology Web site,
InformIT.com, to
launch the Deitel e-Matter series at
www.InformIT.com/deitel in Fall 2002. The Deitel
e-Matter series will provide professionals with an additional source of
information on specific programming topics at modest prices. e-Matter consists
of stand-alone sections taken from published texts, forthcoming texts or
pieces written during the Deitel research-and-development process. Developing
e-Matter based on pre-publication manuscripts allows us to offer significant
amounts of the material well before our books are published.
Course Management Systems: WebCT, Blackboard, CourseCompass
and Premium CourseCompass
We are working with Prentice Hall to integrate our How to
Program Series courseware into four series of Course Management Systems-based
products: WebCT, Blackboard™, CourseCompass and Premium CourseCompass. These
enable instructors to create, manage and use sophisticated Web-based
educational programs. Course Management Systems feature course customization
(such as posting contact information, policies, syllabi, announcements,
assignments, grades, performance evaluations and progress tracking), class and
student management tools, a grade book, reporting tools, communication tools
(such as chat rooms), a whiteboard, document sharing, bulletin boards and
more. Instructors can use these products to communicate with their students,
create online quizzes and exams from questions directly linked to the text and
efficiently grade and track test results. For more information about these
upcoming products, visit
www.prenhall.com/cms. For demonstrations of existing
WebCT, Blackboard and CourseCompass course materials, visit
cms.prenhall.com/webct,
cms.prenhall.com/blackboard
and
cms.prenhall.com/coursecompass,
respectively.
Deitel and InformIT Newsletters
Deitel Column in the InformIT Newsletters
Deitel & Associates, Inc., contributes articles to the free
InformIT weekly e-mail newsletter, subscribed to by more than 750,000 IT
professionals worldwide. For registration information, visit
www.InformIT.com
and click the
MyInformIT
tab.
Deitel™ Buzz Online Newsletter
Our own free newsletter, the Deitel™ Buzz Online, includes
commentary on industry trends and developments, links to articles and
resources from our published books and upcoming publications, product-release
schedules, challenges, anecdotes and more. For registration information, visit
www.deitel.com/newsletter/subscribe.html.
The Deitel™ Developer Series
Deitel & Associates, Inc., is making a major commitment to
.NET programming through the launch of our Deitel™ Developer Series.
C#: A Programmer’s Introduction, C# for Experienced Programmers,
Visual Basic .NET for Experienced Programmers and Visual C++ .NET for
Experienced Programmers are the first .NET books in this new series. These
will be followed by several advanced books, beginning with ASP .NET with C#
for Experienced Programmers and ASP .NET with Visual Basic .NET for
Experienced Programmers.
The Deitel™ Developer Series is divided into three
subseries. The A Technical Introduction subseries provides IT managers
and developers with detailed overviews of emerging technologies. The A
Programmer’s Introduction subseries is designed to teach the fundamentals
of new languages and software technologies to developers from the ground up.
These books discuss programming fundamentals, followed by brief introductions
to more sophisticated topics. Finally, the For Experienced
Programmers subseries is designed for seasoned developers seeking to learn
new programming languages and technologies without the encumbrance of
introductory material. The books in this subseries move quickly to in-depth
coverage of the intermediate features of the programming languages and
software technologies being covered.
ASP .NET with C# for Experienced Programmers
Our forthcoming publication ASP .NET with C# for
Experienced Programmers (available in 2003) is geared toward experienced .NET
developers. This new book will cover enterprise-level Web-programming topics,
including: Creating multi-tier, database intensive ASP .NET applications using
ADO .NET and XML; constructing custom Web controls and developing Web
services. This book also will include configuration and security topics.
Updates on the status of this publication are posted at
www.deitel.com.
Before reading this book you should be familiar with C# at the level of either
C# How to Program or C# for Experienced Programmers.
Acknowledgments
One of the great pleasures of writing a book is
acknowledging the efforts of many people whose names may not appear on the
cover, but whose hard work, cooperation, friendship and understanding were
crucial to the production of the book. Because this publication has been
derived from C# How to Program, we would like to acknowledge those who
have helped us with both publications.
Many other people at Deitel & Associates, Inc., devoted
long hours to this project. Below is a list of our full-time employees who
contributed to this publication:
Sean E. Santry
Matthew R. Kowalewski
Jonathan Gadzik
Kyle Lomelí
Lauren Trees
Rashmi Jayaprakash
Laura Treibick
Betsy DuWaldt
Barbara Deitel
Abbey Deitel
We would also like to thank the participants in the Deitel
& Associates, Inc., College Internship Program who contributed to this
publication.
Jeffrey Hamm (Northeastern)
Kalid Azad (Princeton)
Christopher Cassa (Massachusetts Institute of Technology)
David Tuttle (Harvard)
Thiago Lucas da Silva (Northeastern)
Ori Schwartz (Boston University)
Elizabeth Rockett (Princeton)
Barbara Strauss (Brandeis)
Christina Carney (Framingham State)
Brian Foster (Northeastern)
Mike Preshman (Northeastern)
We are fortunate to have been able to work with the
talented and dedicated team of publishing professionals at Prentice Hall. We
especially appreciate the extraordinary efforts of our editors, Petra Recter
and Karen McLean of Prentice Hall and PH/PTR, respectively and Michael Ruel,
who managed the extraordinary review processes for our Deitel™ Developer
Series C# publications. We would also like to thank Mark L. Taub,
Editor-in-Chief for computer publications at PH/PTR, for conceptualizing the
Deitel™ Developer Series. He provided the necessary environment and
resources to help us generate the many books in this series. A special note of
appreciation goes to Marcia Horton, Editor-in-Chief of Engineering and
Computer Science at Prentice Hall. Marcia has been our mentor and our friend
for 18 years at Prentice Hall. She is responsible for all aspects of Deitel
publications at all Pearson divisions including Prentice Hall, PH/PTR and
Pearson International.
Laura Treibick, the Director of Multimedia at Deitel &
Associates, Inc., designed the cover. Tamara Newnam (smart_art@earthlink.net)
carried the cover through to completion, and produced the art work for our
programming-tip icons.
We wish to acknowledge the efforts of our first- and
second-round reviewers. Adhering to a tight time schedule, these reviewers
scrutinized the text and the programs, providing countless suggestions for
improving the accuracy and completeness of the presentation. We sincerely
appreciate the time these people took from their busy professional schedules
to help us ensure the quality, accuracy and timeliness of this book.
Merged reviewer list from C# How to Program and
C# for Experienced Programmers:
Hussein Abuthuraya (Microsoft)
Lars Bergstrom (Microsoft)
Indira Dhingra (Microsoft)
Eric Gunnerson (Microsoft)
Peter Hallam (Microsoft)
Habib Hegdarian (Microsoft)
Anson Horton (Microsoft)
Willis Johnson (Microsoft)
Latha Lakshminarayanan (Microsoft)
Kerry Loynd (Microsoft)
Tom McDade (Microsoft)
Syed Mehdi (Microsoft)
Shanku Niyogi (Microsoft)
Cosmin Radu (Microsoft)
Ratta Rakshminarayana (Microsoft)
Paul Randal (Microsoft)
Imtiaz Syed (Microsoft)
Ed Thornburg (Microsoft)
Richard Van Fossen (Microsoft)
Rishabh Agarwal (Delteq Systems Pte. Ltd.)
José Antonio González Seco (Sadiel S.A.)
Paul Bohman (WebAIM)
Alex Bondarev (SureFire Commerce, Inc.)
Ron Braithwaite (Nutriware)
Filip Bulovic (Objectronics PTY Ltd.)
Mark Burhop (University of Cincinnati)
Carl Burnham (Southpoint)
Matt Butler (Oakscape Inc.)
Andrew Chau (Rich Solutions, Inc.)
Dharmesh Chauhan (Microsoft Consultant, Singapore)
Shyam Chebrolu (SAIC Broadway & Seymour Group)
Kunal Cheda (DotNetExtreme.com)
Edmund Chou (MIT Student, www.devhood.com project,
Microsoft Intern)
James Chegwidden (Tarrant County College)
Vijay Cinnakonda (University of Toledo)
Michael Colynuck (Sierra Systems)
Jay Cook (Canon Development Americas)
Jeff Cowan (Magenic Technologies)
Robert Dombroski (AccessOnTime)
Shaun Eagan ((Eagan Consulting)
Brian Erwin (Extreme Logic)
Hamilton Fong (Montag & Caldwell, Inc.)
Gnanavel Gnana Arun Ganesh (Arun Microsystems)
Sam Gentile (Consultant)
Sam Gill (San Francisco State University)
John Godel (TJX)
David Haglin (Minnesota State University in Mankato)
Ric Heishmann (Northern Virginia Community College)
Jeff Isom (WebAIM)
Rex Jaeschke (Consultant)
Amit Kalani (MobiCast)
Priti Kalani (Consultant)
Yashavant Kanetkar
Bryan Keller (csharphelp.com)
Patrick Lam (EdgeNet Communications)
Yi-Fung Lin (MIT Student, www.devhood.com project,
Microsoft Intern)
Maxim Loukianov (SoloMio Corporation)
Gaurav Mantro (EDS PLM Solutions)
Jaimon Mathew (Osprey Software Technology)
Robert Meagher (Compuware NuMega Lab)
John Mueller
Arun Nair (iSpan Technologies)
Saurabh Nandu (Mastercsharp.com)
Simon North (Synopsys)
Jibin Pan (csharpcorner.com)
Graham Parker (VBUG)
Bryan Plaster (Valtech)
Chris Rausch (Sheridan Press)
Debbie Reid (Santa Fe Community College)
Bryn Rhodes (Softwise, Inc.)
Craig Schofding (C.A.S. Training)
Rahul Sharma (Maxutil Software)
Devan Shepherd (XMaLpha Technologies)
Srinivasa Sivakumar (Equity Office)
David Talbot (Reallinx, Inc.)
Satish Talim (Pune-Csharp)
Pavel Tsekov (Consultant)
John Varghese (UBS Warburg)
Peter Weng (MIT Student, www.devhood.com project, Microsoft
Intern)
Jesse Wilkins (Metalinear Media)
Warren Wiltsie (Fairleigh Dickinson University/Seton Hall
University)
Phil Wright (Crownwood Consulting Ltd.)
Norimasa Yoshida (MIT Graduate Student)
We would sincerely appreciate your comments, criticisms,
corrections and suggestions for improving the book. Please address all
correspondence to:
deitel@deitel.com
We will respond promptly.
Well, that’s it for now. Welcome to the exciting world of
C# programming. We hope you enjoy this look at Microsoft’s premier .NET
language. Good luck!
Dr. Harvey M. Deitel
Paul J. Deitel
Jeff Listfield
Tem R. Nieto
Cheryl H. Yaeger
Marina Zlatkina
About the Authors
Dr. Harvey M. Deitel, Chairman
and Chief Strategy Officer of Deitel & Associates, Inc., has 41 years
experience in the computing field, including extensive industry and academic
experience. Dr. Deitel earned B.S. and M.S. degrees from the Massachusetts
Institute of Technology and a Ph.D. from Boston University. He worked on the
pioneering virtual-memory operating-systems projects at IBM and MIT that
developed techniques now widely implemented in systems such as Unix, Linux™
and Windows XP. He has 20 years of college teaching experience, including
earning tenure and serving as the Chairman of the Computer Science Department
at Boston College before founding Deitel & Associates, Inc., with his son,
Paul J. Deitel. He is the author or co-author of several dozen books and
multimedia packages and is writing many more. With translations published in
Japanese, Russian, Spanish, Traditional Chinese, Simplified Chinese, Korean,
French, Polish, Italian, Portuguese and Greek, Dr. Deitel’s texts have earned
international recognition. Dr. Deitel has delivered professional seminars to
major corporations, and to government organizations and various branches of
the military.
Paul J. Deitel, CEO and Chief Technical Officer of
Deitel & Associates, Inc., is a graduate of the Massachusetts Institute of
Technology’s Sloan School of Management, where he studied Information
Technology. Through Deitel & Associates, Inc., he has delivered Java, C, C++
and Internet and World Wide Web programming courses to industry clients
including Compaq, Sun Microsystems, White Sands Missile Range, Rogue Wave
Software, Boeing, Dell, Stratus, Fidelity, Cambridge Technology Partners, Open
Environment Corporation, One Wave, Hyperion Software, Lucent Technologies,
Adra Systems, Entergy, CableData Systems, NASA at the Kennedy Space Center,
the National Severe Storms Laboratory, IBM and many other organizations. He
has lectured on C++ and Java for the Boston Chapter of the Association for
Computing Machinery and has taught satellite-based Java courses through a
cooperative venture of Deitel & Associates, Inc., Prentice Hall and the
Technology Education Network. He and his father, Dr. Harvey M. Deitel, are the
world’s best-selling programming language textbook authors.
Tem R. Nieto, Director of Product Development of Deitel
& Associates, Inc., is a graduate of the Massachusetts Institute of
Technology, where he studied engineering and computing. Through Deitel &
Associates, Inc., he has delivered courses for industry clients including Sun
Microsystems, Compaq, EMC, Stratus, Fidelity, NASDAQ, Art Technology, Progress
Software, Toys "R" Us, Operational Support Facility of the National
Oceanographic and Atmospheric Administration, Jet Propulsion Laboratory,
Nynex, Motorola, Federal Reserve Bank of Chicago, Banyan, Schlumberger,
University of Notre Dame, NASA, Hewlett-Packard, various military
installations and many others. He has co-authored numerous books and
multimedia packages with the Deitels and has contributed to virtually every
Deitel & Associates, Inc., publication.
Cheryl H. Yaeger, Director of Microsoft Software
Publications with Deitel & Associates, Inc., graduated from Boston University
in three years with a bachelor's degree in Computer Science. Cheryl has
co-authored various Deitel & Associates publications, including C# How to
Program, C# A Programmer’s Introduction, C# for Experienced
Programmers and Visual Basic .NET for Experienced Programmers as
well as contributed to other Deitel publications including Perl How to
Program, Wireless Internet & Mobile Business How to Program,
Internet and World Wide Web How to Program, Second Edition and Visual
Basic .NET How to Program, Second Edition.
Marina Zlatkina graduated from Brandeis University in
three years with degrees in Computer Science and Mathematics, and in her
fourth year earned a Master of Arts in Computer Science. During her Brandeis
career, she conducted research in databases and has been a teaching assistant.
Marina co-authored C# How to Program, C#: A Programmer’s
Introduction and C# for Experienced Programmers, and contributed to
another Deitel publication, e-Business & e-Commerce for Managers.
Jeff A. Listfield is a Computer Science graduate of
Harvard College. His coursework included classes in computer graphics,
networks and computational theory and he has programming experience in C, C++,
Java, Perl and Lisp. Jeff has co-authored C# How to Program, C#: A
Programmer’s Introduction and C# for Experienced Programmers, and
contributed to Perl How to Program.
About Deitel & Associates, Inc.
Deitel & Associates, Inc., is an internationally recognized
corporate instructor-led training and content-creation organization
specializing in Internet/World Wide Web software technology,
e-business/e-commerce software technology, object technology and computer
programming languages education. The company provides courses in Internet and
World Wide Web programming, wireless Internet programming, Web services (in
both Java and .NET languages), object technology, and major programming
languages and platforms, such as Visual Basic .NET, C#, Visual C++ .NET, Java,
Advanced Java, C, C++, XML, Perl, Python, ASP .NET, ADO .NET and more. Deitel
& Associates, Inc., was founded by Dr. Harvey M. Deitel and Paul J. Deitel,
the world’s leading programming-language textbook authors. The company’s
clients include many of the largest computer companies, government agencies,
branches of the military and business organizations. Through its 25-year
publishing partnership with Prentice Hall, Deitel & Associates, Inc.,
publishes leading-edge programming textbooks, professional books, interactive
CD-ROM-based multimedia Cyber Classrooms, Complete Training Courses,
e-books, e-matter, Web-based training courses and course management systems
e-content. Deitel & Associates, Inc., and the authors can be reached via
e-mail at:
deitel@deitel.com
To learn more about Deitel & Associates, Inc., its
publications and its worldwide corporate on-site curriculum, see the last few
pages of this book or visit:
www.deitel.com
Individuals wishing to purchase Deitel books, Cyber
Classrooms, Complete Training Courses and Web-based training
courses can do so through bookstores, online booksellers and:
www.deitel.com
www.prenhall.com/deitel
www.InformIT.com/deitel
www.InformIT.com/cyberclassrooms
Bulk orders by corporations and academic institutions
should be placed directly with Prentice Hall. See the last few pages of this
book for worldwide ordering details. To follow the Deitel publishing program,
please register at
www.deitel.com/newsletter/subscribe.html .
The World Wide Web Consortium (W3C)
Deitel & Associates, Inc., is a member of the World Wide
Web Consortium (W3C). The W3C was founded in 1994 "to develop common
protocols for the evolution of the World Wide Web." As a W3C member, Deitel &
Associates, Inc., holds a seat on the W3C Advisory Committee (the company’s
representative is our CEO and Chief Technology Officer, Paul Deitel). Advisory
Committee members help provide "strategic direction" to the W3C through
meetings held around the world. Member organizations also help develop
standards recommendations for Web technologies (such as XHTML, XML and many
others) through participation in W3C activities and groups. Membership in the
W3C is intended for companies and large organizations.
To obtain information
on becoming a member of the W3C visit
www.w3.org/Consortium/Prospectus/Joining.
[ top ]
© 1992-2005. Deitel & Associates, Inc. All Rights Reserved.
|