FazBrowse Wikipedia Viewer | Main Page |
Search Wikipedia:
|
Viewing: https://en.wikipedia.org/wiki/.NET_Framework

.NET Framework

Contents
Architecture
    Common Language Infrastructure
    C++/CLI
    Performance
External links

{{Cite web|url=https://dotnet.microsoft.com/en-us/download/dotnet-framework/thank-you/net481-offline-installer|title=Download .NET Framework 4.8.1 Offline Installer|website=Microsoft|access-date=August 15, 2026}}</ref>"},"replaced_by":{"wt":"[[.NET]]"},"operating system":{"wt":"[[Windows NT 4.0]] SP6a or later"},"platform":{"wt":"[[IA-32]], [[x86-64]], and [[ARM architecture|ARM]]"},"included with":{"wt":"[[Windows XP]] SP1 or later<br>[[Windows Server 2003]] or later"},"genre":{"wt":"[[Software framework]]"},"license":{"wt":"Mixed; see {{section link||Licensing}}"}},"i":0}}]}'>
.NET Framework
.NET Framework component stack
DeveloperMicrosoft
ReleaseJanuary 15, 2002;24 years ago (2002-01-15)
No further changes to that version are planned. The .NET Framework will continue to be included with future releases of Windows and continue to receive security updates, with no plans to remove it as of July 2025.

Microsoft began developing .NET Framework in the late 1990s, originally under the name of Next Generation Windows Services (NGWS), as part of the Microsoft .NET strategy. By early 2000, the first beta versions of .NET 1.0 were released.

In August 2000, Microsoft and Intel worked to standardize Common Language Infrastructure (CLI) and C#. By December 2001, both were ratified as ECMA standards. International Organization for Standardization (ISO) followed in April 2003. The current version of ISO standards are ISO/IEC 23271:2012 and ISO/IEC 23270:2006.

The original Microsoft .NET logo

While Microsoft and their partners hold patents for CLI and C#, ECMA and ISO require that all patents essential to implementation be made available under "reasonable and non-discriminatory terms". The firms agreed to meet these terms, and to make the patents available royalty-free. However, this did not apply to the part of the .NET Framework not covered by ECMA-ISO standards, which included Windows Forms, ADO.NET, and ASP.NET. Patents that Microsoft holds in these areas may have deterred non-Microsoft implementations of the full framework.

Windows Vista is the first client version of Windows that integrated the .NET Framework.

On October 3, 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 January 16, 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.

The .NET Compact Framework and .NET Micro Framework variants of the .NET Framework provided support for other Microsoft platforms such as Windows Mobile, Windows CE and other resource-constrained embedded devices. Silverlight provided support for web browsers via plug-ins.

Microsoft .NET Framework v4.5 logo

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 gray 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 all 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 March 31, 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 will not 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 acquisition of Xamarin, which began in February 2016 and was finished on March 18, 2016.

Microsoft's press release highlights that the cross-platform commitment now allows for a fully open-source, modern server-side .NET stack. Microsoft released the source code for WPF, Windows Forms and WinUI on December 4, 2018.

Architecture

edit
Visual overview of the Common Language Infrastructure (CLI)

Common Language Infrastructure

edit

.NET Framework includes an implementation of the CLI foundational Standard Libraries. The .NET Framework Class Library (FCL) is organized in a hierarchy of namespaces. Most of the built-in application programming interfaces (APIs) are part of either System.* or Microsoft.* namespaces. These class libraries implement many common functions, such as file reading and writing, graphic rendering, database interaction, and XML document manipulation. The class libraries are available for all CLI compliant languages. The FCL implements the CLI Base Class Library (BCL) and other class libraries—some are specified by CLI and others are Microsoft specific.

BCL includes a small subset of the entire class library and is the core set of classes that serve as the basic API of CLR. For .NET Framework most classes considered being part of BCL reside in mscorlib.dll, System.dll and System.Core.dll. BCL classes are available in .NET Framework as well as in CLI's alternative implementations, including .NET Compact Framework, Microsoft Silverlight, .NET Core and Mono.

FCL refers to the entire class library that ships with .NET Framework. It includes BCL, an expanded set of libraries, including Windows Forms, ASP.NET, and Windows Presentation Foundation (WPF), and also extensions to the base class libraries ADO.NET, Language Integrated Query (LINQ), Windows Communication Foundation (WCF), and Workflow Foundation (WF). FCL is much larger in scope than standard libraries for languages like C++, and comparable in scope to standard libraries of Java.

With the introduction of alternative CLI's implementations (e.g., Silverlight), Microsoft introduced the concept of Portable Class Libraries (PCL) allowing a consuming library to run on more than one implementation. With the further proliferation of implementations, the PCL approach failed to scale (PCLs are defined intersections of API surface between two or more implementations). As the next evolutionary step of PCL, the .NET Standard Library was created retroactively based on the System.Runtime.dll based APIs found in UWP and Silverlight. New CLI's implementations are encouraged to implement a version of the Standard Library allowing them to run existent third-party libraries with no need of creating new versions of them. The .NET Standard Library allows an independent evolution of the library and app model layers within the .NET architecture.

NuGet is the package manager for all .NET platforms. It is used to retrieve third-party libraries into a .NET project with a global library feed at NuGet.org. Private feeds can be maintained separately, e.g., by a build server or a file system directory.

UML package diagram of the stream hierarchy in .NET

C++/CLI

edit

Performance

edit

When an application is first launched, the .NET Framework compiles the CIL code into executable code using its just-in-time compiler, and caches the executable program into the .NET Native Image Cache. Due to caching, the application launches faster for subsequent launches, although the first launch is usually slower. To speed up the first launch, developers may use the Native Image Generator utility to manually ahead-of-time compile and cache any .NET application.

The garbage collector, which is integrated into the environment, can introduce unanticipated delays of execution over which the developer has little direct control. "In large applications, the number of objects that the garbage collector needs to work with can become very large, which means it can take a very long time to visit and rearrange all of them."

.NET Framework provides support for calling Streaming SIMD Extensions (SSE) via managed code from April 2014 in Visual Studio 2013 Update 2. However, Mono has provided support for SIMD Extensions as of version 2.2 within the "Download .NET Framework 4.8.1 Offline Installer". Microsoft. Retrieved August 15, 2026.

  • 1 2 "Standard ECMA-335: Common Language Infrastructure (CLI)" (6 ed.). ECMA. June 2012. Archived from the original on June 29, 2013. Retrieved August 31, 2005.
  • 1 2 "ISO/IEC 23270:2006 – Information technology – Programming languages – C#" (2 ed.). International Organization for Standardization. January 26, 2012. Archived from the original on December 6, 2010. Retrieved April 1, 2008.
  • ↑ Guthrie, Scott (3 October 2007). "Releasing the Source Code for the NET Framework". Scott Guthrie's Blog. Microsoft. Archived from the original on September 7, 2010. Retrieved September 15, 2010.
  • ↑ "Microsoft Patent Promise for .NET Libraries and Runtime Components". GitHub. Archived from the original on February 21, 2021. Retrieved November 16, 2014.
  • ↑ Ferraira, Bruno (March 31, 2016). "Xamarin now comes free with Visual Studio". The Tech Report. Archived from the original on April 2, 2016. Retrieved April 12, 2016.
  • ↑ Gallo, Kevin (December 4, 2018). "Announcing Open Source of WPF, Windows Forms, and WinUI at Microsoft Connect 2018". Windows Developer Blog. Microsoft. Archived from the original on December 15, 2018. Retrieved December 24, 2018.
  • ↑ ".NET Platform Standard". GitHub. Archived from the original on May 19, 2016. Retrieved April 23, 2016.
  • ↑ "Scott Guthrie: Silverlight and the Cross-Platform CLR". Channel 9. 30 April 2007. Archived from the original on May 22, 2015. Retrieved April 16, 2016.
  • ↑ "Technical Report TR/84 Common Language Infrastructure (CLI) – Information Derived from Partition IV XML File". ECMA. 1 June 2006. Archived from the original on March 7, 2015. Retrieved April 16, 2016.
  • ↑ Cifuentes, Cristina (July 1994). "6: Control Flow Analysis" ( (PDF)). Reverse Compilation Techniques (Thesis). Queensland University of Technology. Archived from the original on 22 November 2016.
  • 1 2 3 "The .NET Framework 4.5 includes new garbage collector enhancements for client and server apps". July 20, 2012. Archived from the original on February 4, 2016. Retrieved October 2, 2015.
  • 1 2 3 4 "Understanding Garbage Collection in .NET". June 17, 2009. Archived from the original on October 10, 2019. Retrieved November 13, 2019.
  • ↑ Fairbairn, Christopher (April 1, 2008). "Using VB.NET with the .NET Micro Framework «/dev/mobile". /dev/mobile. Archived from the original on February 27, 2018. Retrieved April 17, 2012.
  • ↑ Bray, Brandon (August 15, 2012). "Announcing the release of .NET Framework 4.5 RTM – Product and Source Code". .NET Framework Blog. Microsoft. Archived from the original on October 4, 2016. Retrieved August 18, 2016.
  • ↑ ".NET Micro Framework". dotnetfoundation.org. .NET Foundation. Archived from the original on 17 February 2015. Retrieved 17 February 2015.
  • ↑ "},"date":{"wt":"February 5, 2020"},"website":{"wt":"GitHub"},"publisher":{"wt":".NET Foundation"},"access-date":{"wt":"April 14, 2018"},"archive-date":{"wt":"March 24, 2018"},"archive-url":{"wt":"https://web.archive.org/web/20180324160854/https://github.com/dotnet/roslyn/blob/master/License.txt"},"url-status":{"wt":"live"}},"i":0}}]}'/>"Roslyn License". GitHub. .NET Foundation. February 5, 2020. Archived from the original on March 24, 2018. Retrieved April 14, 2018.
  • ↑ "ASP.NET Ajax Control Toolkit". dotnetfoundation.org. .NET Foundation. Archived from the original on 17 February 2015. Retrieved 17 February 2015.
  • ↑ "NuGet". dotnetfoundation.org. .NET Foundation. Archived from the original on 17 February 2015. Retrieved 17 February 2015.
  • External links

    edit
    Wikibooks has a book on the topic of: .NET Development Foundation
    Wikiversity has learning resources about Introduction to .NET