.NET Framework is a software platform released by Microsoft in 2002. The platform is based on the Common Language Runtime (CLR), which is suitable for different programming languages. CLR functionality is available in any programming language that uses this environment.
It is believed that the .NET Framework was Microsoft’s response to Sun Microsystems’s Java platform (now owned by Oracle), which was now very popular.
Although .NET is a proprietary technology of Microsoft Corporation and is officially designed to work under the operating systems of the Microsoft Windows family, there are independent projects (primarily Mono and Portable.NET) that allow you to run .NET programs on some other operating systems. Currently, the .NET Framework is developing in the form of .NET Core, which initially implies cross-platform development and operation.
The program for the .NET Framework, written in any supported programming language, is first translated by the compiler into a common intermediate bytecode Common Intermediate Language (CIL) for .NET (formerly called Microsoft Intermediate Language, MSIL). In terms of .NET it turns out the assembly, English. assembly. Then the code is either executed by the Common Language Runtime (CLR) virtual machine, or translated by the NGen.exe utility into the executable code for a specific target processor. Using a virtual machine is preferable, as it eliminates the need for developers to take care of the hardware features. In the case of using the CLR virtual machine, the built-in JIT compiler on-the-fly (just in time) converts the intermediate bytecode into the machine codes of the desired processor. Modern technology of dynamic compilation allows to achieve a high level of performance. The CLR virtual machine also takes care of basic security, memory management and the exception system, saving the developer from some work.
Mono - a project to create a full-fledged implementation of the .NET Framework system based on free software. The main developer of the Mono project is Xamarin, formerly Novell. After Microsoft entered into an agreement with Novell, the Mono platform was officially recognized as a .NET implementation on Unix-like operating systems: Linux, Mac OS X, and others. (Although Mono also works successfully under Microsoft Windows). However, the arrangement applies only to Novell and Novell customers; ASP.NET, ADO.NET, and Windows Forms technologies were not standardized by ECMA / ISO, and their use in Mono is at risk of legal claims from Microsoft (claims are possible only in countries where software patents exist). Mono provides an implementation of ASP.NET, ADO.NET and Windows.Forms, but at the same time, recommends not using these APIs.