Architecture Of .NET and Its Tools

.NET is tiered, modular, and hierarchal. Each tier of the .NET Framework is a layer of abstraction. .NET languages are the top tier and the most abstracted level. The common language runtime is the bottom tier, the least abstracted, and closest to the native environment. This is important since the common language runtime works closely with the operating environment to manage .NET applications. The .NET Framework is partitioned into modules, each with its own distinct responsibility. Finally, since higher tiers request services only from the lower tiers, .NET is hierarchal.

Microsoft .NET Architecture consists of four major components:

* Common Language Specification (CLS) ? blue in the diagram below
* Framework Class Library (FCL) ? red
* Common Language Runtime (CLR) ? green
* .NET Tools ? yellow

At the base of the diagram in gray is the operating system, which technically can be any platform but typically is Microsoft Windows 2000 or greater, accessed through the Win32 API (Application Programming Interface).

Common Language Specification (CLS)

The CLS is a common platform that integrates code and components from multiple .NET programming languages. In other words, a .NET application can be written in multiple programming languages with no extra work by the developer (though converting code between languages can be tricky).

.NET includes new object-oriented programming languages such as C#, Visual Basic .NET, J# (a Java clone) and Managed C++. These languages, plus other experimental languages like F#, all compile to the Common Language Specification and can work together in the same application.

Framework Class Library (FCL)

The FCL is a collection of over 7000 classes and data types that enable .NET applications to read and write files, access databases, process XML, display a graphical user interface, draw graphics, use Web services, etc. The FCL wraps much of the massive, complex Win32 API into more simple .NET objects that can be used by C# and other .NET programming languages.
Common Language Runtime (CLR)

The CLR is the execution engine for .NET applications and serves as the interface between .NET applications and the operating system. The CLR provides many services such as:

Loads and executes code
Converts intermediate language to native machine code
Separates processes and memory
Manages memory and objects
Enforces code and access security
Handles exceptions
Interfaces between managed code, COM objects, and DLLs
Provides type-checking
Provides code meta data (Reflection)
Provides profiling, debugging, etc.

.NET Tools

Visual Studio .NET is Microsoft?s flagship tool for developing Windows software. Visual Studio provides an integrated development environment (IDE) for developers to create standalone Windows applications, interactive Web sites, Web applications, and Web services running on any platform that supports .NET.

In addition, there are many .NET Framework tools designed to help developers create, configure, deploy, manage and secure .NET applications and components.