Science Fair Project Encyclopedia
.NET has brought new functionalities and tools to the API (Application programming interface). These innovations allow programmers to develop applications for both Windows, the web as well as components and services (web services). .NET provides a new object oriented API.
The two primary components of .NET are the Common Language Infrastructure (CLI) and the Common Language Runtime (CLR). The CLI is a set of specifications for a runtime environment, including a common type system, base class library, and a machine-independent intermediate code known as the Common Intermediate Language (CIL). The CLR provides a platform for running code that conforms to the CLI; before CIL can be executed, the CLR must translate it (typically via just-in-time compilation) into native machine code.
.NET is designed to be sufficiently generic that many different high-level languages can be compiled to CIL. If a language implementation generates CIL, it can be hosted using the CLR and can then interact with data produced by any other .NET language.
.NET is Microsoft's strategic initiative for server and desktop development for the next decade. According to Microsoft, .NET includes many technologies that are designed to facilitate rapid development of Internet and intranet applications.
.NET is a software platform which was released in 2002. It presents a platform-independent target for software development, with many built-in features including Internet integration and features intended to enhance security. It relies fully on software componentry and the component-oriented programming paradigm. In this respect it largely replaces the former Component Object Model (COM).
- CLI is a virtual machine and a standard class library (CLR is designed to be programming language and operating system independent). The virtual machine executes the CIL assembly.
- Access to components written in other languages and the underlying Microsoft Windows platform
- Web services using SOAP
.NET has its own security mechanism, allowing a high-level of control over the code assemblies. It is particularly useful to designate which code operations to be executed from different sources.
This mechanism is complex. However, as their default parameters apply to the majority of applications, modifications are usually not needed.
.NET is a collection of development tools specifically developed for use with the .NET platform. The principal example is Visual Studio .NET, an integrated development environment provided by Microsoft.
The CLI is designed to provide support for any object-oriented programming language, sharing a common object model and a large common class library.
Microsoft and other vendors provide .NET versions of many languages, including:
- C# programming language, an object-oriented language similar to Sun's Java
- Visual Basic .NET, an improved, object-oriented, multi-threaded version of the classic Visual Basic programming language
- Managed C++, a variant of the C++ programming language for the .NET platform
- J#, a Java and J++ (the Microsoft variant of Java) .NET transitional language
- JScript .NET, a compiled version of Microsoft's JScript
Some available third-party languages:
- Boo, based on Python
- Component Pascal (Component Pascal is closer to Oberon than to Pascal)
- Delphi 8 and Delphi 2005
- Lexico, a didactic in Spanish object-oriented language
- Mondrian functional language designed to provide an easy way of scripting components
- Nemerle functional/imperative hybrid language
- .NET supports over 40 programming languages.
- Many of these compilers are free (the vendors sell IDEs).
- Most languages have significant adjustments to fit into the .NET Framework. The vendors have often used this as an opportunity to change other features of the languages at the same time.
ASP.NET, an update to the classic Active Server Pages (ASP) web programming technology, implements .NET and has a .NET class library, but is not itself a language as it may be written in any .NET language.
.NET vs. J2EE
The CLI, the CIL and C# have similarities to Sun' JVM and Sun's Java; hence, they are fierce competitors. Both use their own intermediate bytecode, Microsoft called it MSIL (Microsoft Intermediate Language). .NET bytecode is designed for just-in-time compilation (JITting), while Java bytecode originally was designed to be interpreted, not JITted. .NET is currently only fully available on Windows platforms, whereas Java is fully available on many platforms. However, progressive implementations (which will eventually be fully implemented) such as Mono or Rotor can be used to run .NET application on Unix-like OSes such as Linux, FreeBSD, and Mac OS X. Sun's product, J2EE, provides equivalent functionality to other Microsoft technologies such as COM+ (previously MTS) and MSMQ which are tightly integrated into the Windows operating system. However with .NET, its components make full use of these existing technologies in an abstracted manner.
.NET vs. COM
The previous software component technology endorsed by Microsoft for large-scale software systems was COM, using COM+ or MTS enhancements for distributed transactional components. While .NET may wrap COM-objects and vice versa, Microsoft called it Runtime Callable Wrapper (RCW) and COM Callable Wrapper (CCW) respectively, It has been clearly stated by Microsoft that .NET will eventually replace COM as a software component architecture. Microsoft hopes that developers writing new applications for the Win32 platform start using .NET instead of COM, with use of existing services via abstracted interfaces (e.g. transactional .Net components currently use COM+).
Microsoft has submitted a part of the specifications of .NET to ECMA and ISO for standardization. This is a calculated risk, but it may encourage standards-compliant implementations, to provide an ongoing bridge for non-Windows software to be converted to Microsoft .NET.
While the Microsoft .NET Framework is the flagship implementation of .NET technologies, there exist other implementations.
Mono is an open source implementation of the .NET runtime and development libraries. Mono is being developed by Ximian (a part of Novell, Inc.) and the open source software development community. It is quickly maturing, including support for ASP.NET, ADO.NET, and evolving support for Windows Forms libraries. It also includes a C# compiler and a VB.NET compiler is in pre-beta form. Mono includes the development of new libraries and technologies, which include:
- Gtk#: A .NET wrapper for the Gtk+ GUI toolkit.
- XSP : A web server written in C# with support for hosting ASP.NET applications.
- MonoDevelop : A port of SharpDevelop, a GPLed IDE for .NET, to Gtk# and Mono.
- Novell.Directory.Ldap class libraries: A free implementation of Lightweight Directory Access Protocol (LDAP) for .NET.
- SerialPortNet: A serial port library for .Net & Mono implementing .NET 2.0 specifications.
Some technologies used in .NET were originally developed by Microsoft as their version of Java. When Microsoft decided to end their future use of Sun's Java technologies in 1998, the existing Microsoft J++ (Java) product was transformed into the beginnings of the .NET project. Code from the .NET CLR was said to have come from Colusa Software 's OmniVM, which Microsoft acquired on March 12, 1996.
- Microsoft's official .NET Resource
- Microsoft's .Net Framework class library reference
- ASP.NET; Website focusing on WebForm development in .NET
- WindowsForms.com; Website focusing on WinForm development in .NET
- Guidelines to referencing the Microsoft® .NET brand
- .NET Framework General Reference Capitalization Styles
- .NET Monster: news, articles, and discussions for .NET developers
- .NET Rocks!, internet audio talk show for .NET developers
- UberWG Software Department - Arkanoid3D.NET - .NET Framework OpenGL Gaming Example
The contents of this article is licensed from www.wikipedia.org under the GNU Free Documentation License. Click here to see the transparent copy and copyright details