Introduction
Many moons ago (circa 2001), I was given the opportunity to write a book on a forthcoming Microsoft
technology that was, at the time, dubbed NGWS (Next Generation Windows Software). As I began to
examine the source code provided by Microsoft, I noticed numerous code comments referring to the
“COOL” (Common Object Oriented Language) programming language.
While I worked on my first initial manuscript of C# and the .NET Platform using a pre-alpha
build (and no documentation to speak of), NGWS was eventually rebranded as the Microsoft .NET
platform. COOL, as you might guess, is what we now know today as C#.
The first edition of this book was released in step with .NET 1.0, beta 2. Since then, I have
updated the text to account for the numerous updates to the C# programming language, as well as the
explosion of new APIs introduced with each new release of the .NET platform.
Over the years, this book has (thankfully and gratefully) been very well received, by the press (a
JOLT award finalist and ReferenceWare programming book of the year), readers, and various university
programs in computer science and software engineering.
It has been just wonderful to communicate with readers and educators around the globe.
Thank you for all of your suggestions, comments, and (yes) criticism. I might not be able to respond to
every e-mail, but everything is taken under consideration, to be sure.
We’re a Team, You and I
Technology authors write for a demanding group of people (I should know—I’m one of them). You know
that building software solutions using any platform or language is extremely complicated and is very
specific to your department, company, client base, and subject matter. Perhaps you work in the
electronic publishing industry, develop systems for the state or local government, or work at NASA or a
branch of the military. Speaking for myself, I have developed children’s educational software (Oregon
Trail/Amazon Trail), various n-tier systems, and projects within the medical and financial industries.
The chances are almost 100 percent that the code you write at your place of employment has little to do
with the code I write at mine (unless we happened to work together previously!).
Therefore, in this book, I have deliberately chosen to avoid creating demonstrations that tie the
example code to a specific industry or vein of programming. Given this, I explain C#, OOP, the CLR, and
the .NET base class libraries using industry-agnostic examples. Rather than having every blessed
example fill a grid with data, calculate payroll, or whatnot, I’ll stick to subject matter we can all relate to:
automobiles (with some geometric structures and employee payroll systems thrown in for good
measure). And that’s where you come in.
My job is to explain the C# programming language and the core aspects of the .NET platform
the best I possibly can. As well, I will do everything I can to equip you with the tools and strategies you
need to continue your studies at this book’s conclusion.
lvi