A Common Substrate for all Development - Page 4
April 13, 2001
The major components of the .NET framework are shown in the
following diagram:
The framework starts all the way down at the memory management
and component loading level, and goes all the way up to multiple
ways of rendering user and program interfaces. In between, there
are layers that provide just about any system-level capability
that a developer would need.
At the base is the Common Language Runtime, often abbreviated to
CLR. This is the heart of the .NET framework, the engine that
drives key functionality. It includes, for example, a common
system of data types. These common types, plus a standard
interface convention, make cross-language inheritance possible.
In addition to allocation and management of memory, the CLR also
does reference counting for objects, and handles garbage
collection.
The middle layer includes the next generation of standard system
services such as ADO.NET and XML. These services are brought
under the control of the framework, making them universally
available and standardizing their usage across languages.
The top layer includes user and program interfaces. Windows
Forms (often informally referred to as WinForms) are a new
way to create standard Win32 desktop applications, based on the
Windows Foundation Classes (WFC) produced for J++. Web
Forms provide a powerful, forms-based UI for the web. Web
Services, which are perhaps the most revolutionary, provide a
mechanism for programs to communicate over the Internet using
SOAP. Web Services provide an analog of COM and DCOM for object
brokering and interfacing, but based on Internet technologies so
that allowance is made for integration even with non-Microsoft
platforms. Web Forms and Web Services, comprise the Internet
interface portion of .NET, and are implemented through a section
of the .NET Framework referred to as ASP.NET.
All of these are available to any language that is based on the
.NET platform. For completeness, there is also a console
interface that allows creation of character-based applications
(not shown in the diagram).
The Common Language Runtime
Let's start with a definition. A runtime is an environment in
which programs are executed. The Common Language Runtime is
therefore the environment in which we run our .NET applications
that have been compiled to a common language, namely Microsoft
Intermediate Language (MSIL), often referred to simply as IL.
Runtimes have been around even longer than DOS, but the Common
Language Runtime (CLR) is as advanced over traditional runtimes
as a light bulb is over a candle. Here's a quick diagrammatic
summary of the major pieces of the CLR:
That small part in the middle, called Execution Support, contains
most of the capabilities normally associated with a language
runtime (such as the VBRUNxxx.DLL runtime used with Visual
Basic). The rest is new, at least for Microsoft platforms.
Chapter 2 of this book will go into the Common Language Runtime
in depth. However, since understanding the CLR is key to
understanding the rest of .NET, here is a short introduction.
Avoiding Confusion the Role of the .NET Enterprise Servers - Page 3
Introducing .NET
Key Design Goals - Page 5
|