The .NET Framework provides a run-time that is used to interpret intermediate code, code that is compiled from a development environment such as Microsoft’s Visual Studio when the language is C# or Visual Basic.NET. The code requires the run-time in order to execute. The code is referred to as “intermediate” because the result of the compilation is not a result that could be run at the machine level, or in other words to run without the aid of the run-time. The run-time is a service process that provides the framework for the execution of the intermediate code. The run-time acts as an interpreter of the intermediate code and then provides the structure for it to run on the operating system. Lower level capabilities it provides includes memory management, process management, and I/O management. In many cases the run-time is simply providing an abstraction level to the Windows API opening up nearly all of its capabilities to the programmer
The purpose of a run-time is to support the use rapid application development languages, such as C# and Visual Basic.NET. Highly capable run-times, such as the .NET Framework offer significant capabilities and access to the operating system and I/O. This allows a developer to create a powerful application very quickly.
Run-times are not necessarily striving for cross platform compatibility, while run-times such as Sun’s Java might.
Scripting (meta) language interpreters act similar to a run-time, although the code for many scripting languages is not pre-compiled as they are in .NET languages. Pre-compiling speeds up the act of loading the application into memory and also ensures a more compact executable file.