.NET Framework is technology platform in software products. It was developed by Microsoft company and it is primarily intended for Microsoft Windows. It contains wide library of classes named Framework Class Library (FCL). It allows interoperability across a few programming languages, i. e. every language can use code written in another. Programs written for .NET Framework are executed in software environment, which is named as Common Language Runtime (CLR), application virtual machine, which offers services as security, memory management and solving exceptions. Therefore, the pc code, written in framework .NET, is called controlled managed code.
Programmers produce software with help of their source code combination with .NET Framework and other libraries. Framework is intended to be used often for new applications, which are being developed for Windows platform. Microsoft also creates integrated development environment, which is mostly for .NET software, called Visual Studio.
.NET Framework was originally proprietary software, however the firm tried almost immediately to start with standardization and that even before the first release. Despite of the effort of standardization, the developers expressed disapproval with some of the conditions of free usage, especially as regards to patents. From that time, Microsoft changed the .NET development in accordance with the new trends towards to community development, including the patent actualization.
CLI offers platform, which is independent on language. The platform is used for development and starting the applications. Implementation of the main aspects of .NET Framework within CLI aren’t these functions bound to concrete language but they are available across all the languages, which support Framework.
CLR is virtual machine, which is used to execute the .NET Framework and offers a lot of services such as:
All programs written for .NET Framework are executed on CLR. Programs are simultaneously compiled in Common Intermediate Language code (CIL) and not directly compiled to machine code. During the start, it changes this CIL code to machine code for the given architecture corresponding to Just-in-Time (JIT) compilator.