Monday, 5 June 2017

.Net Framework Background


 
.Net Framework logo
Microsoft .Net Framework logo

  What is .Net Framework?
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

1 comment: