C# and the .NET Framework at a Glance
Let’s introduce the main characters in this story – C# and the .NET Framework. Having a clear view of
how the various terms and technologies associated with .NET fit together will help you when you design
your C# programs and will make the process of learning about .NET easier.
Introducing C#
C# is a programming language. Like any language, C# has a syntax and a vocabulary. Programming
languages, like C# or Java, differ from natural languages, such as English or French. Learning a new
programming language is easier than learning a natural language. There are only a handful of words in a
programming language vocabulary; C# has around 100 keywords. That may seem daunting, but you’ll
use some keywords more than others and you probably won’t use some of them at all.
Programming languages have very rigid syntaxes—the keywords have to be used in a certain way.
English is fluid and flexible because it is used for so many different reasons. Programming languages are
terse and precise because they are used for one reason: to express your instructions to the computer as
clearly and unambiguously as possible. Helpfully, there is a universal, authoritative specification for C#.
Grammarians can vigorously debate the history and meaning of words in English, but in C# the history
of all keywords is that they were defined by Microsoft and the meaning is contained in the C# language
specification, which you can find at http://msdn.microsoft.com/en-us/library/ms228593.aspx. I am not
suggesting that you run off and read the language specification right now; it is a dry, precise, overlytechnical
document in the way that formal specifications tend to be. But if you are ever in doubt about
the exact meaning and use of a C# term, the specification provides the authoritative reference.
Introducing the .NET Framework
The .NET Framework runs .NET programs. For client applications, this means that the user must install
the framework before running your program for the first time (although many developers include the
.NET Framework in their program installers to make life easier for the user). For servers, the .NET
Framework must be installed before running .NET-based services, such as web applications. There are
two parts to the .NET Framework, described in the following sections.