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.