The .NET Framework contains such a large selection of topics that it is impossible to
cover all of them in a single book of any depth. This section introduces the focus of
this book, and provides an overview of the contents and conventions used in the text.
The end of this section describes the online forum available for any questions or com-ments on the book, and explains how the source code used in the book can be down-loaded from the Internet.
Before we discuss the bookspecifically, we should introduce the concept of
namespaces. A namespace defines a group, or scope, of related classes, structures, and
other types. A namespace is a bit like a family: it defines a group of distinct members
with a common name and some shared sense of purpose.
All objects in the .NET Framework, and indeed in C# itself, are organized into
namespaces. The Systemnamespace, for example, includes objects related to the
framework itself, and most namespaces defined by .NET are nested within the Sys-temnamespace. The System.Windowsnamespace defines types and namespaces
related to the Windows operating system, while the System.Webnamespace defines
types and namespaces related to web pages and servers.
This organization into namespaces permits two objects with the same base name
to be distinct, much like two people can both share the same first name. For example,
the Buttonclass in the System.Web.UI.WebControlsnamespace represents a
button on a web page, while the Buttonclass in the System.Windows.Forms
namespace represents a button in an application window. Other namespaces in .NET
include the System.IOnamespace for file and directory related objects, the Sys-tem.Datanamespace for database-related objects, the System.Drawingnamespace
for graphical objects, and the System.Securitynamespace for security objects. An
overview of the more commonly used namespaces in .NET is provided in appendix B.