(TUTORIAL) Introducing the .NET Platform
By learning about the .NET environment, you can gain an understanding of
what .NET is and what it means to you. This chapter covers the platform
issues most essential to building C# applications.
IN THIS CHAPTER
* What Is .NET?
* The Common Language Runtime (CLR)
* The .NET Framework Class Library (FCL)
* C# and Other .NET Languages
* The Common Type System (CTS)
* The Common Language Specification (CLS)
As a C# developer, it's important to understand the environment you are
building applications on: Microsoft .NET (pronounced “Dot Net”). After all,
your design and development decisions will often be influenced by
code-compilation practicalities, the results of compilation, and the behavior
of applications in the runtime environment. The foundation of all .NET
development begins here, and throughout this book I occasionally refer
back to this chapter when explaining concepts that affect the practical
implementation of C#.
By learning about the .NET environment, you can gain an understanding of
what .NET is and what it means to you. You learn about the parts of .NET,
including the Common Language Runtime (CLR), the .NET Framework
Class Library, and how .NET supports multiple languages. Along the way,
you see how the parts of .NET tie together, their relationships, and what
they do for you. First, however, you need to know what .NET is, which is
explained in the next section.
What Is .NET?
Microsoft .NET, which I refer to as just .NET, is a platform for developing
“managed” software. The word managed is key here—a concept setting
the .NET platform apart from many other development environments. I'll
explain what the word managed means and why it is an integral capability
of the .NET platform.
When referring to other development environments, as in the preceding
paragraph, I'm focusing on the traditional practice of compiling to an
executable file that contains machine code and how that file is loaded and
executed by the operating system. Figure 1.1 shows what I mean about
the traditional compilation-to-execution process.
In the traditional compilation process, the executable file is binary and can
be executed by the operating system immediately. However, in the
managed environment of .NET, the file produced by the compiler (the C#
compiler in our case) is not an executable binary. Instead, it is an
assembly, shown in Figure 1.2, which contains metadata and intermediate
language code.
As mentioned in the preceding paragraph, an assembly contains
intermediate language and metadata rather than binary code. This
intermediate language is called Microsoft Intermediate Language (MSIL),
which is commonly referred to as IL. IL is a high-level, component-based
assembly language. In later sections of this chapter, you learn how IL
supports a common type system and multiple languages in the same
platform.
.NET Standardization
.NET has been standardized by both the European Computer
Manufacturers Association (ECMA) and the Open Standards Institute
(OSI). The standard is referred to as the Common Language
Infrastructure (CLI). Similarly, the standardized term for IL is Common
Intermediate Language (CIL).
In addition to .NET, there are other implementations of CIL—the two most
well known by Microsoft and Novell. Microsoft's implementation is an open
source offering for the purposes of research and education called the
Shared Source Common Language Infrastructure (SSCLI). The Novell
offering is called Mono, which is also open source.
Beyond occasional mention, this book focuses mainly on the Microsoft .NET
implementation of the CLI standard.
courtesy : www.informit.com

