The .NET Framework

The Microsoft .NET Framework is an integral part of the Microsoft Windows Operating System components that supports building and running applications and XML Web services that take advantage of this new technology.
The .NET Framework is designed to fulfill the following objectives:

  • To provide a consistent object-oriented programming environment where: 1) object code is stored and executed locally, 2) executed locally but Internet-distributed; or, 3) executed remotely.
  • To provide a code-execution environment that minimizes software deployment and versioning conflicts.
  • To provide a code-execution environment that promotes safe execution of code, including code created by an unknown or semi-trusted third party.
  • To provide a code-execution environment that eliminates the performance problems of scripted or interpreted environments.
  • To make the developer experience consistent across widely varying types of applications, such as Windows-based applications and Web-based applications.
  • To build all communication on industry standards to ensure that code based on the .NET Framework can integrate with any other code.

The .NET Framework has two main components:

  1. The common language runtime; and,
  2. The .NET Framework class library.

The common language runtime

The common language runtime is the foundation of the .NET Framework. You can think of the runtime as an agent that manages code at execution time, providing core services such as memory management, thread management, and remoting, while also enforcing strict type safety and other forms of code accuracy that promote security and robustness. In fact, the concept of code management is a fundamental principle of the runtime. Code that targets the runtime is known as managed code, while code that does not target the runtime is known as unmanaged code. More about the Common Language Runtime at:

The .NET Framework class library

The class library is the other main component of the .NET Framework, it is a comprehensive object-oriented collection of reusable types that you can use to develop applications ranging from traditional command-line or graphical user interface (GUI) applications to applications based on the latest innovations provided by the ASP.NET technology, such as Web Forms and XML Web services.
The .NET Framework can be accessed by unmanaged components that load the common language runtime into their processes and initiate the execution of managed code, thereby creating a software environment that can exploit both managed and unmanaged features.

The .NET Framework Runtime Hosts

The .NET Framework not only provides several runtime hosts, but also supports the development of third-party runtime hosts. For example, ASP.NET hosts the runtime to provide a scalable, server-side environment for managed code. ASP.NET for example, works directly with the runtime to enable ASP.NET applications and XML Web services.
The Microsoft Internet Explorer is an example of an unmanaged application that hosts the runtime (in the form of a MIME type extension). Using Internet Explorer to host the runtime enables you to embed managed components or Windows Forms controls in HTML documents. Hosting the runtime in this way makes managed mobile code similar to Microsoft ActiveX controls possible, but with significant improvements that only managed code can offer, such as semi-trusted execution and isolated file storage.