Datasheet

The most interesting thing about this statement is how vague I’ve been but there are good reasons
for this. For a start, note that I didn’t say “developing applications on the Windows operating system.”
Although the Microsoft release of the .NET Framework runs on the Windows operating system, it is fast
becoming possible to find alternative versions that will work on others. One example of this is Mono, an
open source version of the .NET Framework (including a C# compiler) that will run on several operating
systems, including various flavors of Linux and Mac OS. More such projects are in the pipeline and may
be available by the time you read this. In addition, you can use the Microsoft .NET Compact Framework
(essentially a subset of the full .NET Framework) on personal digital assistant (PDA) class devices and
even some smartphones. One of the key motivational forces behind the .NET Framework is its intended
use as a means of integrating disparate operating systems.
In addition, the definition of the .NET Framework given above includes no restriction on the type of
applications that are possible. This is because there is no restriction the .NET Framework allows the
creation of Windows applications, Web applications, Web services, and pretty much anything else you
can think of.
The .NET Framework has been designed so that it can be used from any language. This includes the sub-
ject of this book, C#, as well as C++, Visual Basic, JScript, and even older languages such as COBOL. For
this to work, .NET-specific versions of these languages have also appeared, and more are being released
all the time. Not only do all of these have access to the .NET Framework, but they can also communicate
with each other. It is perfectly possible for C# developers to make use of code written by Visual Basic
programmers, and vice versa.
All of this provides a hitherto unthinkable level of versatility and is part of what makes using the .NET
Framework such an attractive prospect.
What’s in the .NET Framework?
The .NET Framework consists primarily of a gigantic library of code that you use from your client lan-
guages (such as C#) using object-oriented programming (OOP) techniques. This library is categorized
into different modules you use portions of it depending on the results you want to achieve. For exam-
ple, one module contains the building blocks for Windows applications, another for network program-
ming, and another for Web development. Some modules are divided into more specific submodules,
such as a module for building Web services within the module for Web development.
The intention here is for different operating systems to support some or all of these modules, depending
on their characteristics. A PDA, for example, would include support for all the core .NET functionality,
but is unlikely to require some of the more esoteric modules.
Part of the .NET Framework library defines some basic types. A type is a representation of data, and
specifying some of the most fundamental of these (such as “a 32-bit signed integer”) facilitates interoper-
ability between languages using the .NET Framework. This is called the Common Type System (CTS).
As well as supplying this library, the Framework also includes the .NET Common Language Runtime (CLR),
which is responsible for maintaining the execution of all applications developed using the .NET library.
4
Chapter 1
05_578472 ch01.qxd 9/22/05 10:54 PM Page 4