What is .NET Framework?


The .NET Framework is a platform created by Microsoft for building, running and deploying managed applications and managed web applications.

Platform

A platform is an environment for developing and running applications. A platform can be the operating system, hardware or special software like JRE and .NET Framework. For example, if you write a native C application targeting Windows 10,  Windows 10 is the platform for your C application. If you write Java application to run on JRE, JRE is the platform for your Java application.

There are two types of platform, the production platform and development platform.
  • The development platform is used by developers to develop application. This will require developers to set up other related software frameworks and libraries needed for application development.
  • The production platform is used for final product at client side. In this case, we only setup the required run-time components to run final application, we do not need to set up other libraries or frameworks that are required for software development.

Managed Application

In the .NET context, managed applications and managed web applications refer to all applications that run under the control of .NET Runtime. This means that those applications must be written in a form that conforms to the .NET Runtim Specification. For example, the program you develop in VB 2012 or Visual C# 2012 can be considered as managed applications.



Figure 1: Managed and Unmanaged Application in .NET Context



Figure 2: Managed and Unmanaged Web Application in .NET Context

The Three Main Components of .NET Framework

In the .NET Framework, there are three main components. They are CLR, .NET Framework Class Library and Development Framework.

Common Language Runtime (CLR)

CLR is the runtime environment of the .NET Framework for running managed applications. CLR has the ability to manage the execution of the code and help to simplify the process of application development because CLR provides a secure and robust environment for code execution. CLR provides common services such as memory management, multithreading, transition, exception handling, managing garbage collection and providing common type system (CTS).

.NET Framework Class Library

The .NET Framework Class Library or FCL is a set of reusable classes, interfaces and other value types that you can use to build application easily and effectively. All classes are grouped into namespaces. For example, the System.IO namespace contains all classes and methods that you can use to work with input and output such as reading and writing files. In addition to using predefined classes in FCL, you can extend these classes by creating your own class libraries.

Development Frameworks

In the .NET Framework, there are several development frameworks that you can use to build .NET applications. These development frameworks provide the starter code, necessary components and application infrastructure to get you started easily and quickly. Some of these frameworks are:

  • ASP.NET - this framework allows you build websites and web applications run that run on top of .NET Framework.
  • Windows Forms - this framework allows you to build desktop application.
  • WPF (Windows Presentation Foundation) - this framework allows you to build rich client applications.
  • WCF (Windows Communication Foundation) - this framework allows you to build service-oriented applications.
  • WF (Windows Workflow Foundation) - this framework allows you to build workflow solutions.
To read more about .NET Framework, follow the link below.