The .NET Framework (pronounced dot net)
is a runtime execution environment developed by Microsoft for managing
applications that targets the .NET Framework. It consists of the common
language runtime, which provides memory management and other system services,
and an extensive class library, which enables programmers to take advantage of
robust, reliable code for all major areas of application development. It
consists of two major components: the common language runtime (CLR) also known
as “.Net Framework for Users” which is the execution engine that handles
running applications; and the .NET Framework Class Library (FCL) also known as
“.Net Framework for Developers” which provides a library of tested, reusable
code that developers can call from their own applications. The FCL and CLR
together makes up the .NET Framework.
The .Net Framework for Users
If you are using the Windows operating system,
the .NET Framework component may already be installed on your computer. In
addition, if you install an application that requires the .NET Framework, the
application's setup program might install a specific version of the .NET
Framework on your computer. In some cases, you may see a dialog box that asks
you to install the .NET Framework. If you have just tried to run an application
when this dialog box appears and if your computer has Internet access, you can
go to a webpage that lets you install the missing version of the .NET
Framework.
In general,
you should not uninstall any versions of the .NET Framework that are installed
on your computer. There are two reasons for this:
- If an application that you use depends on a specific version of the .NET Framework, that application may break if that version is removed.
- Some versions of the .NET Framework are in-place updates to earlier versions. For example, the .NET Framework 3.5 is an in-place update to version 2.0, and the .NET Framework 4.6 is an in-place update to versions 4, 4.5, 4.5.1, and 4.5.2. For more information, see .NET Framework Versions and Dependencies.
*If you do
choose to remove the .NET Framework, always use Programs and Features from Control Panel to
uninstall it. Never remove a version of the .NET Framework manually.
*Note that
multiple versions of the .NET Framework can be loaded on a single computer at
the same time. This means that you do not have to uninstall previous versions
in order to install a later version.
The .Net Framework for Developers
If you are a developer, you can choose any
programming language that supports the .NET Framework to create your
application. Because the .NET Framework provides language independence and
interoperability, you can interact with other .NET Framework applications and
components regardless of the language with which they were developed.
To develop
.NET Framework applications or components, do the following:
- If it is not preinstalled on your operating system, install the version of the .NET Framework that your application will target. The most recent production version as at the when this article was published ( May, 2017) is the .NET Framework 4.7, which is preinstalled on Windows 10 Creative Update and is available for download on earlier versions of the Windows operating system.
- Select the .NET Framework language or languages that you will use to develop your applications. A number of languages are available, including Visual Basic, C#, Visual F#, and C++ from Microsoft. (A programming language that allows you to develop applications for the .NET Framework adheres to the Common Language Infrastructure (CLI) specification.)
- Select and install the development environment that you will use to create your applications and that supports your selected programming language or languages. The Microsoft integrated development environment for .NET Framework applications is Visual Studio which is available in a number of retail and free editions.
History
Microsoft began developing .NET Framework in
the late 1990s, originally under the name of Next Generation Windows Services
(NGWS). By late 2000, the first beta versions of .NET (Version 1.0) was
released.
In August 2000, Microsoft, Hewlett-Packard,
and Intel worked to standardize Common Language Infrastructure (CLI) and C#. By
December 2001, both were ratified Ecma International (ECMA) standards. International
Organisation for Standardisation (ISO) followed in April 2003. The current
version of ISO standards are ISO-IEC 23271:2012 and ISO/IEC 23270:2006.
On 3 October 2007, Microsoft announced that
the source code for .NET Framework 3.5 libraries was to become available under
the Microsoft Reference Source License (Ms-RSL). The source code repository
became available online on 16 January 2008 and included BCL, ASP.NET, ADO.NET,
Windows Forms, WPF, and XML. Scott Guthrie of Microsoft promised that LINQ,
WCF, and WF libraries were being added.
On 12 November 2014, Microsoft announced .NET
Core, in an effort to include cross-platform support for .NET, the source release
of Microsoft's CoreCLR implementation, source for the "entire library
stack" for .NET Core, and the adoption of a conventional
("bazaar"-like) open-source development model under the consolation
stewardship of the .NET Foundation.
In November 2014, Microsoft also produced an
update to its patent grants, which further extends the scope beyond its prior
pledges. Prior projects like Mono existed in a legal grey area because
Microsoft's earlier grants applied only to the technology in "covered
specifications", including strictly the 4th editions each of ECMA-334 and
ECMA-335. The new patent promise, however, places no ceiling on the
specification version, and even extends to any .NET runtime technologies
documented on MSDN that have not been formally specified by the ECMA group, if
a project chooses to implement them. This allows Mono and other projects to
maintain feature parity with modern .NET features that have been introduced
since the 4th edition was published without being at risk of patent litigation over
the implementation of those features. The new grant does maintain the
restriction that any implementation must maintain minimum compliance with the
mandatory parts of the CLI specification.
On 31 March 2016, Microsoft announced at
Microsoft Build that they will completely relicense Mono under an MIT License
even in scenarios where formerly a commercial license was needed. Microsoft
also supplemented its prior patent promise for Mono, stating that they won't
assert any "applicable patents" against parties that are using,
selling, offering for sale, importing, or distributing Mono. It was announced
that the Mono Project was contributed to the .NET Foundation. These
developments followed the prior acquisition of Xamarin, which began in February
2016 and was finished on 18 March 2016.
List of Languages Supported by .Net Framework
- Ada
- A# for - a port of Ada to the Microsoft .NET Framework, free from the Department of Computer Science at the United States Air Force Academy under the terms of the GNU general public license
- APL
- Dyalog APL (Dyalog Ltd)
- AsmL
- Abstract State Machine Language (Microsoft Research)
- BETA
- BETA.Net (University of Aarhus, Denmark)
- Boo
- Boo (Python-inspired syntax by Rodrigo B. de Oliveira, Georges Benatti)
- C
- lcc (ANSI C Compiler from Princeton)
- cscc (ANSI C Compiler from Portable.NET)
- C#
- Visual C# (Microsoft)
- Mono C# Compiler (Mono/Ximian)
- cscc (DotGNU Portable.NET)
- CSI (a simple C# Interpreter by Steve Donovan)
- C? (Microsoft Research)
- Parallel C# - (formerly MC# by Vadim B. Guzev)
- Metaphor (Gregory Neverov at Queensland University of Technology)
- Spec# (Microsoft Research)
- C++
- Managed Extensions for C++ (Microsoft)
- Caml
- F# (Microsoft)
- OCAMIL (Emmanuel Chailloux & Raphael Montelatici)
- CAT
- CAT (Christopher Diggins)
- COBOL
- NetCOBOL for .NET[2] - from Fujitsu Corporation
- NeoKicks (Fujitsu)
- Net Express (Micro Focus)
- CULE
- CULE.Net (Software Perspectives)
- Eiffel
- Eiffel ENViSioN! (Eiffel Software)
- Forth
- Delta Forth .NET (Valer BOCAN)
- FORTRAN
- Lahey/Fujitsu Fortran for .NET (Lahey Computer Systems, Inc.)
- FTN95 - Fortran for Microsoft .NET (Salford Software Ltd.)
- Haskell
- Hugs98 for .NET
- Haskell for .NET (using Mondrian for .NET) (Nigel Perry)
- Haskell.net Project
- IL/MSIL
- MSIL (Microsoft)
- ilasm (IL Assembler from Microsoft)
- ilasm (Mono/Ximian)
- Portable.NET Assembler (dotGNU; no specific link, but project still active)
- Java
- Visual J# .NET (Microsoft)
- IKVM.NET - Java VM for .NET (Jeroen Frijters)
- JavaScript
- DotGnu JScript (dotGNU)
- Lexico
- Lexico; English version here (page is in Spanish, with English translation)
- LISP
- clisp (Microsoft)
- DotLisp (Rich Hickey)
- L# (L Sharp .NET) - LISP-based script language (Rob Blackwell)
- FOIL - (Rich Hickey and Eric Thorsen)
- RDNZL - .NET Layer for Common Lisp (Edi Weitz)
- LOGO
- TurtleTracks.net Logo (University of Patras)
- Lua
- Lua.NET: Integrating Lua with Rotor (PUC-RIO)
- Mercury
- Mercury on .NET
- Mixal Assembly Language
- MixNet (SourceForge)
- Modula-2
- GPM/CLR (Queensland University of Technology)
- Mondrian
- Mondrian for .NET (Nigel Perry)
- Oberon
- Active Oberon for .NET (ETH Zuerich)
- Component Pascal (QUT)
- Nemerle
- Nemerle (The University of Wroclaw)
- Pan
- Pan# (Computer Languages for Secondary Education)
- Perl
- Perl for .NET, PerlNET (ActiveState SRL.)
- PerlSharp (Joshua Tauberer)
- Delphi (Borland)
- Delphi.NET - interoperability tools (Marcus Schmidt)
- PHP
- PHP4Mono (Raphael Romeikat)
- PHP4Apps - Unmanaged wrapper (Daaron)
- Phalanger
- Processing
- Processing.NET (Jonatan Rubio, et al)
- Prolog
- P# (Jon Cook at Univ. of Edinburgh)
- Prolog.NET (Oregon Institute of Technology)
- Python
- IronPython (Microsoft)
- Python for .NET - .NET Integration with Python (Brian Lloyd)
- Ruby
- Mono Ruby.NET (Jaen, Mono developers)
- NetRuby (arton)
- RubyCLR (John Lam)
- Ruby.NET (Dr. Wayne Kelly)
- RPG
- ASNA Visual RPG for .NET
- Scala
- Scala on Microsoft.NET (Martin Odersky, LAMP at EPFL)
- Scheme
- Common Larceny (Northeastern University)
- Bigloo (Inria Sophia-Antipolis)
- Tachy (Ken Rawlings)
- Smalltalk
- #Smalltalk (John Brant & Don Roberts)
- SML (Standard Meta Language)
- SML.NET (Microsoft Research, University of Cambridge)
- Synergy
- Synergy (Synergex, now known as Synergy/DE)
- Tcl/Tk
- TickleSharp (jscottb, Novell Forge)
- Visual Basic
- Visual Basic.NET (Microsoft)
- Mono Visual Basic Compiler (Mono/Ximian)
- bmcs (Jambunathan)
- KPL - Kid's Programming Language (Morrison Schwartz)
To Learn more about .Net Framework visit the links below:
Wikipedia Article on .Net Framework
PragrimTech videos on .Net Framework
Overview of .Net Framework
