.NET framework
<language, tool, library> A software development and execution environment designed by
Microsoft as a direct competitor to
Java.
.NET framework should not be confused with
Microsoft's past labeling of a line of products as ".NET".
.NET simplifies interoperability between languages and machines on
Microsoft Windows especially, although not specifically, for web based services.
Essentially the .NET framework consists of the CLR (common language runtime), CTS (common type system), CLS (common language system), and IL (intermediate language).
The CLR consists of a number of resources provided to .NET applications such as the security model, type system and .NET classes (c.f. Java classes).
The CTS is the range of all types that .NET understands although it is not necessarily the case that a .NET program will understand all of these types. The CLS however is a subset of the CTS which all .NET languages must support: any two .NET languages can interoperate via. the CLS.
All .NET languages are at some stage compiled into the IL, a
byte-code like language.
However unlike a standard Java run time environment, the IL is converted to
machine code either upon installation of the software or at
run time by a just in time compiler (JIT).
The IL is not interpretted.
.NET's main weakness is that Microsoft have ignored the
Unix and
mainframe environments, effectively ruling .NET out of use in many
enterprise environments.
However there is
Mono - an
open source .NET framework for Unix}.
.NET was based on research by Steven Lucco on a product called OmniVM, sold by Colusa software.
Attracted to OmniVM since VB and C/C++ environments were already available, Microsoft bought Colusa in 1996.
Microsoft provides .NET compilers for
C#,
C++,
VB, and Jscript.