The .NET Framework (pronounced, dot net) is just one part of Microsofts .NET technology. The purpose of the .NET Framework is to create and run next-generation applications and XML Web services. Some of its main characteristics include the following:
It provides a multi-language object-oriented environment for programmers, whether code is stored and executed entirely locally or remotely.
It facilitates software deployment and minimizes versioning conflicts.
It provides an environment that promotes safe code execution, including that of less trusted third-party code.
It allows developers to create both Windows-based and Web-based applications in a consistent manner.
The .NET Framework has two principal components:
The .NET Framework class library: an object-oriented collection of reusable types. This is a fully-fledged application framework, meaning that developers can use it for the entire development process of applications. The Framework in turn has various components, such as:
ADO.NET: for connecting applications to databases
ASP.NET: for creating, deploying, and running Web applications and Web services (distributed applications)
Windows Forms: for writing smart client applications (Windows-based applications)
The Common Language Runtime (CLR): the runtime engine that executes managed code. It provides core services to managed code such as memory and thread management, type verification, and garbage collection; consequently, developers no longer have to worry about such things when it comes to managed code. Running code under the CLR isolates it from the operating system, which improves security and robustness. Managed code is compiled into the CPU-independent MSIL (Microsoft Intermediate Language) instruction set, which is then converted to CPU-specific code by the runtime. Unmanaged code runs outside of the runtime and lacks the security of managed code. Programming languages such as C#, VB.NET, J# all take advantage of the .NET Framework class library and of the services offered by the CLR.
A major goal of the .NET Framework is to promote and facilitate code reusability.