Edit count of the user (user_editcount ) | null |
Name of the user account (user_name ) | '68.65.212.74' |
Age of the user account (user_age ) | 0 |
Groups (including implicit) the user is in (user_groups ) | [
0 => '*'
] |
Rights that the user has (user_rights ) | [
0 => 'createaccount',
1 => 'read',
2 => 'edit',
3 => 'createtalk',
4 => 'writeapi',
5 => 'viewmywatchlist',
6 => 'editmywatchlist',
7 => 'viewmyprivateinfo',
8 => 'editmyprivateinfo',
9 => 'editmyoptions',
10 => 'abusefilter-log-detail',
11 => 'urlshortener-create-url',
12 => 'centralauth-merge',
13 => 'abusefilter-view',
14 => 'abusefilter-log',
15 => 'vipsscaler-test'
] |
Whether the user is editing from mobile app (user_app ) | false |
Whether or not a user is editing through the mobile interface (user_mobile ) | false |
Page ID (page_id ) | 25143203 |
Page namespace (page_namespace ) | 0 |
Page title without namespace (page_title ) | '.NET Framework' |
Full page title (page_prefixedtitle ) | '.NET Framework' |
Edit protection level of the page (page_restrictions_edit ) | [] |
Last ten users to contribute to the page (page_recent_contributors ) | [
0 => '2402:1980:244:68FC:9863:4D2A:E2CA:3CC9',
1 => 'Citation bot',
2 => 'Nihiltres',
3 => 'CWenger',
4 => '130.255.221.161',
5 => '130.225.93.47',
6 => 'JoeNMLC',
7 => 'BrandonXLF',
8 => '198.103.221.36',
9 => 'Haeinous'
] |
Page age in seconds (page_age ) | 628429750 |
Action (action ) | 'edit' |
Edit summary/reason (summary ) | 'Fix typo' |
Old content model (old_content_model ) | 'wikitext' |
New content model (new_content_model ) | 'wikitext' |
Old page wikitext, before the edit (old_wikitext ) | '{{Short description|Software platform developed by Microsoft}}
{{for multi|the newer cross-platform framework|.NET|other uses|.net (disambiguation)}}
{{Use mdy dates|date=September 2018}}
{{Infobox software
| name = .NET Framework
| logo = .NET Logo.svg
| logo size = 120px
| screenshot = DotNet.svg
| caption = .NET Framework component stack
| developer = .[[Microsoft]]
| released = {{Start date and age|2002|02|14}}
| discontinued = yes
| latest release version = 4.8.0 Build 3928
| latest release date = {{Start date and age|2019|07|25}}<ref>{{Cite web|url=https://dotnet.microsoft.com/download/thank-you/net48-offline|title=Download .NET Framework 4.8 Offline Installer|website=Microsoft|access-date=August 15, 2019|archive-date=August 15, 2019|archive-url=https://web.archive.org/web/20190815224743/https://dotnet.microsoft.com/download/thank-you/net48-offline|url-status=live}}</ref>
| replaced_by = [[.NET]]
| operating system = [[Windows 98]] or later, [[Windows NT 4.0]] or later
| platform = [[IA-32]], [[x86-64]], and [[ARM architecture|ARM]]
| genre = [[Software framework]]
| license = Mixed; see {{section link||Licensing}}
| website = <!-- no need to specify here... it is in WikiData -->
}}
The '''.NET Framework''' (pronounced as "''dot net"'') is a [[software framework]] developed by [[Microsoft]] that runs primarily on [[Microsoft Windows]]. It includes a large [[class library]] called [[Framework Class Library]] (FCL) and provides [[language interoperability]] (each language can use code written in other languages) across several [[programming language]]s. Programs written for .NET Framework execute in a [[software]] environment (in contrast to a [[computer hardware|hardware]] environment) named the [[Common Language Runtime]] (CLR). The CLR is an [[process virtual machine|application virtual machine]] that provides services such as security, [[memory management]], and [[exception handling]]. As such, computer code written using .NET Framework is called "[[managed code]]". FCL and CLR together constitute the .NET Framework.
FCL provides the [[user interface]], [[data access]], [[database connection|database connectivity]], [[cryptography]], [[web application]] development, numeric [[algorithm]]s, and [[computer networking|network communications]]. Programmers produce software by combining their [[source code]] with .NET Framework and other libraries. The framework is intended to be used by most new applications created for the Windows platform. Microsoft also produces an [[integrated development environment]] for .NET software called [[Microsoft Visual Studio|Visual Studio]].
.NET Framework began as [[proprietary software]], although the firm worked to [[software standard|standardize]] the software stack almost immediately, even before its first release. Despite the standardization efforts, developers, mainly those in the [[free and open-source software]] communities, expressed their unease with the selected terms and the prospects of any free and open-source implementation, especially regarding [[software patent]]s. Since then, Microsoft has changed .NET development to more closely follow a contemporary model of a community-developed software project, including issuing an update to its patent promising to address the concerns.<ref>{{Cite web|date=November 19, 2014 |title=Microsoft gets on board with open source|url=https://opensource.com/business/14/11/microsoft-dot-net-empower-open-source-communities|access-date=2020-01-02|website=Opensource.com|language=en}}</ref>
In April 2019, Microsoft released .NET Framework 4.8, the last version of the framework as a proprietary offering. Only monthly security and reliability bug fixes to that version have been released since then. No further changes to that version are planned.<ref>{{Cite web|last=gewarren|title=.NET Framework & Windows OS versions|url=https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/versions-and-dependencies|access-date=2020-11-21|website=docs.microsoft.com|language=en-us}}</ref>
==History==
{{Main|.NET Framework version history}}
Microsoft began developing .NET Framework in the late 1990s, originally under the name of Next Generation Windows Services (NGWS), as part of the [[.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 Sharp (programming language)|C#]]. By December 2001, both were ratified [[Ecma International]] (ECMA) standards.<ref>{{cite web|url=http://www.ecma-international.org/publications/standards/Ecma-335.htm|title=Standard ECMA-335: Common Language Infrastructure (CLI)|date=June 2012|website=ecma-international.org|publisher=[[Ecma International|ECMA]]|edition=6|access-date=August 31, 2005|archive-date=June 26, 2013|archive-url=https://www.webcitation.org/6HfXxFXH8?url=http://www.ecma-international.org/publications/standards/Ecma-335.htm|url-status=live}}</ref><ref>{{cite web|url=http://www.ecma-international.org/publications/standards/Ecma-334.htm|title=Standard ECMA-334: C# Language Specification|date=June 2006|website=ecma-international.org|publisher=[[Ecma International|ECMA]]|edition=4|access-date=August 31, 2005|archive-date=October 31, 2010|archive-url=https://web.archive.org/web/20101031042906/http://www.ecma-international.org/publications/standards/Ecma-334.htm|url-status=live}}</ref> [[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.<ref>{{cite web|url=http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=58046|title=ISO/IEC 23271:2012 Information technology – Common Language Infrastructure|publisher=[[International Organization for Standardization]]|date=February 13, 2012|edition=3|website=iso.org}}</ref><ref>{{cite web|url=http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=42926|title=ISO/IEC 23270:2006 – Information technology – Programming languages – C#|publisher=[[International Organization for Standardization]]|date=January 26, 2012|website=iso.org|edition=2|access-date=April 1, 2008|archive-date=December 6, 2010|archive-url=https://web.archive.org/web/20101206152217/http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=42926|url-status=live}}</ref>
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 licensing|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 for the part of .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.<ref>{{cite web|title=Microsoft's Empty Promise|url=http://www.fsf.org/news/2009-07-mscp-mono|work=[[Free Software Foundation]]|date=July 16, 2009|quote=However, there are several libraries that are included with Mono, and commonly used by applications like Tomboy, that are not required by the standard. And just to be clear, we're not talking about Windows-specific libraries like ASP.NET and Windows Forms. Instead, we're talking about libraries under the System namespace that provide common functionality programmers expect in modern programming languages|access-date=August 3, 2009|archive-url=https://web.archive.org/web/20090819101829/http://www.fsf.org/news/2009-07-mscp-mono/|archive-date=August 19, 2009|url-status=live|df=dmy}}</ref>
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{{efn|name=Ms-RSL-dab|The license was formerly abbreviated Ms-RL, but Ms-RL now refers to the [[Microsoft Reciprocal License]].}}).<ref name="sourcerelease">{{cite web|url=http://weblogs.asp.net/scottgu/releasing-the-source-code-for-the-net-framework-libraries|title=Releasing the Source Code for the NET Framework|website=Scott Guthrie's Blog|publisher=[[Microsoft]]|first=Scott|last=Guthrie|author-link=Scott Guthrie|date=October 3, 2007|access-date=September 15, 2010|archive-url=https://web.archive.org/web/20100907233621/http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx|archive-date=September 7, 2010|url-status=live|df=dmy}}</ref> 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.<ref>{{cite web|title=.NET Framework Library Source Code now available|url=https://weblogs.asp.net/scottgu/net-framework-library-source-code-now-available|website=Scott Guthrie's Blog|publisher=[[Microsoft]]|access-date=February 28, 2015|date=January 16, 2008|first=Scott|last=Guthrie|author-link=Scott Guthrie}}</ref>
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 browser]]s via plug-ins.
[[File:Microsoft .NET Framework v4.5 logo.png|thumb|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 (software)|Mono]] existed in a legal [[loophole|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.<ref name="dotnet-patent-promise">{{cite web|title=Microsoft Patent Promise for .NET Libraries and Runtime Components|website=[[GitHub]]|url=https://github.com/dotnet/corefx/blob/master/PATENTS.TXT|access-date=November 16, 2014|archive-date=February 21, 2021|archive-url=https://web.archive.org/web/20210221070138/https://github.com/dotnet/corefx/blob/master/PATENTS.TXT|url-status=live}}</ref>
On March 31, 2016, Microsoft announced at [[Build (developer conference)|Microsoft Build]] that they will completely [[software relicensing|relicense]] Mono under an [[MIT License]] even in scenarios where formerly a commercial license was needed.<ref>{{cite web|last1=Krill|first1=Paul|title=Xamarin's Mono runtime gets a looser license|url=http://www.infoworld.com/article/3050732/microsoft-windows/xamarins-mono-runtime-gets-a-looser-license.html|website=[[InfoWorld]]|publisher=[[IDG]]|date=April 1, 2016}}</ref> 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."<ref name=Ferraira1>{{cite web|url=http://techreport.com/news/29929/xamarin-now-comes-free-with-visual-studio|title=Xamarin now comes free with Visual Studio.|work=The Tech Report|date=March 31, 2016|first=Bruno|last=Ferraira|access-date=April 12, 2016|archive-date=April 2, 2016|archive-url=https://web.archive.org/web/20160402173444/http://techreport.com/news/29929/xamarin-now-comes-free-with-visual-studio|url-status=live}}</ref><ref name="Microsoft_PP_Mono">{{cite web|url=https://github.com/mono/mono/blob/master/PATENTS.TXT|title=Microsoft Patent Promise for Mono|work=Mono on GitHub|publisher=Mono Project|date=March 28, 2016|archive-url=https://web.archive.org/web/20160416133644/https://github.com/mono/mono/blob/master/PATENTS.TXT|archive-date=April 16, 2016|access-date=April 16, 2016|url-status=live|df=dmy}}</ref> 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.<ref name="Friedman2">{{cite web|url=https://blog.xamarin.com/xamarin-for-all/|title=Xamarin for Everyone|work=Xamarin Blog|publisher=Xamarin|date=March 31, 2016|archive-url=https://web.archive.org/web/20160412072728/https://blog.xamarin.com/xamarin-for-all/|archive-date=April 12, 2016|access-date=April 12, 2016}}</ref>
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.<ref name="ms-wpf-winforms-oss">{{cite web|title=Announcing Open Source of WPF, Windows Forms, and WinUI at Microsoft Connect 2018|url=https://blogs.windows.com/buildingapps/2018/12/04/announcing-open-source-of-wpf-windows-forms-and-winui-at-microsoft-connect-2018/|website=Windows Developer Blog|date=December 4, 2018|publisher=Microsoft|access-date=December 24, 2018|archive-url=https://web.archive.org/web/20181215163944/https://blogs.windows.com/buildingapps/2018/12/04/announcing-open-source-of-wpf-windows-forms-and-winui-at-microsoft-connect-2018/|archive-date=December 15, 2018}}</ref>
==Architecture==
[[File:Overview of the Common Language Infrastructure.svg|thumb|right|330px|Visual overview of the Common Language Infrastructure (CLI)]]
===Common Language Infrastructure===
{{Main|Common Language Infrastructure}}
Common Language Infrastructure (CLI) provides a language-neutral platform for application development and execution. By implementing the core aspects of .NET Framework within the scope of CLI, these functions will not be tied to one language but will be available across the many languages supported by the framework.
===Common Language Runtime===
{{Main|Common Language Runtime}}
.NET Framework includes the Common Language Runtime (CLR). It serves as the execution engine of .NET Framework and offers many services such as [[memory management]], [[type safety]], [[exception handling]], [[garbage collection (computer science)|garbage collection]], security and [[thread management]]. All programs written for .NET Framework are executed by the CLR.
Programs written for .NET Framework are compiled into [[Common Intermediate Language|Common Intermediate Language code]] (CIL), as opposed to being directly compiled into [[machine code]]. During execution, an architecture-specific [[just-in-time compiler]] (JIT) turns the [[Common Intermediate Language|CIL code]] into machine code.
===Assemblies===
Compiled CIL code is stored in [[assembly (CLI)|CLI assemblies]]. As mandated by the specification, assemblies are stored in [[Portable Executable]] (PE) file format, common on Windows platform for all ''[[dynamic-link library]]'' (DLL) and ''executable'' [[EXE]] files. Each assembly consists of one or more files, one of which must contain a manifest bearing the [[metadata]] for the assembly. The complete name of an assembly (not to be confused with the file name on disk) contains its simple text name, version number, culture, and [[public key]] token. Assemblies are considered equivalent if they share the same complete name.
A private key can also be used by the creator of the assembly for [[strong name|strong naming]]. The public key token identifies which private key an assembly is signed with. Only the creator of the key pair (typically the person signing the assembly) can sign assemblies that have the same strong name as a prior version assembly, since the creator possesses the private key. Strong naming is required to add assemblies to [[Global Assembly Cache]].
Starting with Visual Studio 2015, .NET Native compilation technology allows for the compilation of .NET code of [[Universal Windows Platform apps]] directly to machine code rather than CIL code, but the app must be written in either C# or Visual Basic.NET.<ref>{{cite web|url=https://docs.microsoft.com/en-us/dotnet/framework/net-native/|title=Compiling Apps with .NET Native|last=rpetrusha|website=docs.microsoft.com|access-date=December 2, 2017|archive-date=December 3, 2017|archive-url=https://web.archive.org/web/20171203082710/https://docs.microsoft.com/en-us/dotnet/framework/net-native/|url-status=live}}</ref>
===Class library===
{{Main|Framework Class Library}}
.NET Framework includes an implementation of the CLI foundational [[Standard Libraries (CLI)|Standard Libraries]]. The .NET Framework Class Library (FCL) is organized in a hierarchy of [[namespace]]s. Most of the built-in [[application programming interface]]s (APIs) are part of either <code>System.*</code> or <code>Microsoft.*</code> 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 [[List of CLI languages|CLI compliant languages]]. The FCL implements the CLI [[Base Class Library]] (BCL) and other class libraries—some are specified by CLI and other 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.<ref name="bcllibs">{{cite web|url=https://msdn.microsoft.com/netframework/aa569603.aspx|title=Base Class Library|access-date=June 1, 2008}}</ref> For .NET Framework most classes considered being part of BCL reside in <code>mscorlib.dll</code>, <code>System.dll</code> and <code>System.Core.dll</code>. BCL classes are available in .NET Framework as well as its alternative implementations including [[.NET Compact Framework]], [[Microsoft Silverlight]], [[.NET Core]] and [[Mono (software)|Mono]].
FCL refers to the entire class library that ships with .NET Framework. It includes an expanded set of libraries, including BCL, [[Windows Forms]], [[ASP.NET]], and [[Windows Presentation Foundation]] (WPF) but 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 [[Java Class Library|standard libraries of Java]].
With the introduction of alternative implementations (e.g., Silverlight), Microsoft introduced the concept of Portable Class Libraries (PCL) allowing a consuming library to run on more than one platform. With the further proliferation of .NET platforms, the PCL approach failed to scale (PCLs are defined intersections of API surface between two or more platforms).<ref name="netstandard">{{cite web|url=https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md|title=.NET Platform Standard|website=[[GitHub]]|access-date=April 23, 2016|archive-date=May 19, 2016|archive-url=https://web.archive.org/web/20160519180849/https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md|url-status=live}}</ref> As the next evolutionary step of PCL, the .NET Standard Library was created retroactively based on the <code>System.Runtime.dll</code> based APIs found in UWP and Silverlight. New .NET platforms are encouraged to implement a version of the standard library allowing them to re-use extant third-party libraries to run without new versions of them. The .NET Standard Library allows an independent evolution of the library and app model layers within the .NET architecture.<ref name="appmodels">{{cite web|url=http://www.hanselman.com/blog/AnUpdateOnASPNETCore10RC2.aspx|title=An update on ASP.NET Core 1.0 RC2|access-date=April 23, 2016}}</ref>
[[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.<ref>{{cite web|url=https://nuget.org|title=NuGet Gallery - Home|website=nuget.org|access-date=February 21, 2021|archive-date=February 21, 2021|archive-url=https://web.archive.org/web/20210221070142/https://www.nuget.org/|url-status=live}}</ref> Private feeds can be maintained separately, e.g., by a build server or a file system directory.
===C++/CLI===
{{Main|C++/CLI}}
Microsoft introduced [[C++/CLI]] in [[Visual Studio]] 2005, which is a language and means of compiling [[Visual C++]] programs to run within the .NET Framework. Some parts of the C++ program still run within an unmanaged [[Visual C++]] Runtime, while specially modified parts are translated into [[Common Intermediate Language|CIL code]] and run with the .NET Framework's [[Common Language Runtime|CLR]].
Assemblies compiled using the C++/CLI compiler are termed mixed-mode assemblies, since they contain native and managed code in the same DLL.<ref>[https://msdn.microsoft.com/en-us/library/x0w2664k.aspx Mixed (Native and Managed) Assemblies] {{Webarchive|url=https://web.archive.org/web/20141022111729/http://msdn.microsoft.com/en-us/library/x0w2664k.aspx |date=October 22, 2014 }}, MSDN</ref> Such assemblies are more complex to reverse engineer, since .NET [[decompilers]] such as [[.NET Reflector]] reveal only the managed code.
==Design principle==
===Interoperability===
Because computer systems commonly require interaction between newer and older applications, .NET Framework provides means to access functions implemented in newer and older programs that execute outside .NET environment. Access to [[Component Object Model]] (COM) components is provided in <code>System.Runtime.InteropServices</code> and <code>System.EnterpriseServices</code> namespaces of the framework. Access to other functions is via [[Platform Invocation Services]] (P/Invoke). Access to .NET functions from native applications is via reverse P/Invoke function.
===Language independence===
.NET Framework introduces a [[Common Type System]] (CTS) that defines all possible [[data type]]s and [[programming language|programming]] constructs supported by CLR and how they may or may not interact conforming to CLI specification. Because of this feature, .NET Framework supports the exchange of types and object instances between libraries and applications written using [[list of CLI languages|any conforming .NET language]].
===Type safety===
CTS and the CLR used in .NET Framework also enforce [[type safety]]. This prevents ill-defined casts, wrong method invocations, and memory size issues when accessing an object. This also makes most CLI languages [[type system|statically typed]] (with or without [[type inference]]). However, starting with .NET Framework 4.0, the [[Dynamic Language Runtime]] extended the CLR, allowing dynamically typed languages to be implemented atop the CLI.
===Portability===
While Microsoft has never implemented the full framework on any system except Microsoft Windows, it has engineered the framework to be cross-platform,<ref>{{cite web|url=https://channel9.msdn.com/shows/Going+Deep/Scott-Guthrie-Silverlight-and-the-Cross-Platform-CLR|title=Scott Guthrie: Silverlight and the Cross-Platform CLR|date=April 30, 2007|publisher=[[Channel 9 (discussion forum)|Channel 9]]|access-date=April 16, 2016|archive-url=https://www.webcitation.org/6XHacUsDc?url=http://channel9.msdn.com/shows/Going+Deep/Scott-Guthrie-Silverlight-and-the-Cross-Platform-CLR|archive-date=March 25, 2015|url-status=live|df=dmy}}</ref> and implementations are available for other operating systems (see [[Microsoft Silverlight|Silverlight]] and [[#Alternative implementations|§ Alternative implementations]]). Microsoft submitted the specifications for CLI (which includes the core class libraries, CTS, and CIL),<ref>{{cite web|url=http://www.ecma-international.org/publications/standards/Ecma-335.htm|title=ECMA 335 – Standard ECMA-335 Common Language Infrastructure (CLI) 4th edition (June 2006)|date=June 1, 2006|access-date=June 1, 2008|publisher=ECMA|archive-url=https://web.archive.org/web/20080614092650/http://www.ecma-international.org/publications/standards/Ecma-335.htm|archive-date=June 14, 2008}}</ref><ref>{{cite web|url=http://standards.iso.org/ittf/PubliclyAvailableStandards/c042927_ISO_IEC_23271_2006(E)_Software.zip|title=ISO/IEC 23271:2006|publisher=Standards.iso.org|date=September 29, 2006|access-date=April 17, 2012|archive-date=July 1, 2018|archive-url=https://web.archive.org/web/20180701142510/http://standards.iso.org/ittf/PubliclyAvailableStandards/c042927_ISO_IEC_23271_2006%28E%29_Software.zip|url-status=live}}</ref><ref>{{cite web|url=http://www.ecma-international.org/publications/techreports/E-TR-084.htm|title=Technical Report TR/84 Common Language Infrastructure (CLI) – Information Derived from Partition IV XML File|date=June 1, 2006|publisher=ECMA|access-date=April 16, 2016|archive-url=https://www.webcitation.org/6XHagdtvH?url=http://www.ecma-international.org/publications/techreports/E-TR-084.htm|archive-date=March 25, 2015|url-status=live|df=dmy}}</ref> [[C Sharp (programming language)|C#]],<ref>{{cite web|url=http://www.ecma-international.org/publications/standards/Ecma-334.htm|title=ECMA-334 C# Language Specification|date=June 1, 2006|publisher=ECMA|access-date=August 31, 2005|archive-date=October 31, 2010|archive-url=https://web.archive.org/web/20101031042906/http://www.ecma-international.org/publications/standards/Ecma-334.htm|url-status=live}}</ref> and C++/CLI<ref>{{cite web|url=http://www.ecma-international.org/publications/standards/Ecma-372.htm|title=Standard ECMA-372 C++/CLI Language Specification|date=December 1, 2005|publisher=ECMA|access-date=January 16, 2008|archive-url=https://web.archive.org/web/20080810165757/http://www.ecma-international.org/publications/standards/Ecma-372.htm|archive-date=August 10, 2008|url-status=dead}}</ref> to both [[Ecma International]] (ECMA) and [[International Organization for Standardization]] (ISO), making them available as official standards. This makes it possible for third parties to create compatible implementations of the framework and its languages on other platforms.
===Security===
.NET Framework has its own security mechanism with two general features: [[Code Access Security]] (CAS), and validation and verification. CAS is based on evidence that is associated with a specific assembly. Typically the evidence is the source of the assembly (whether it is installed on the local machine or has been downloaded from the Internet). CAS uses evidence to determine the permissions granted to the code. Other code can demand that calling code be granted a specified permission. The demand causes CLR to perform a call stack walk: every assembly of each method in the call stack is checked for the required permission; if any assembly is not granted the permission a security exception is thrown.
[[Managed code|Managed]] [[Common Intermediate Language|CIL]] bytecode is easier to [[reverse engineering#Reverse engineering of software|reverse-engineer]] than native code, unless [[obfuscated code|obfuscated]].<ref>Gartner, Inc. as reported in "Hype Cycle for Cyberthreats, 2006", September 2006, Neil MacDonald; Amrit Williams, et al.</ref> {{Not a typo|.NET}} [[decompiler]] programs enable developers with no reverse-engineering skills to view the source code behind unobfuscated .NET assemblies. In contrast, apps compiled to native machine code are much harder to reverse-engineer, and source code is almost never produced successfully, mainly because of compiler optimizations and lack of [[reflection (computer programming)|reflection]].<ref>{{cite thesis|last1=Cifuentes|first1=Cristina|title=Reverse Compilation Techniques|chapter-url=http://www.labri.fr/perso/fleury/download/papers/binary_analysis/cifuentes-thesis.pdf|publisher=[[Queensland University of Technology]]|date=July 1994|chapter=6: Control Flow Analysis|url-status=dead|archive-url=https://web.archive.org/web/20161122154356/http://www.labri.fr/perso/fleury/download/papers/binary_analysis/cifuentes-thesis.pdf|archive-date=November 22, 2016|df=dmy-all}}</ref> This creates concerns in the business community over the possible loss of [[trade secret]]s and the bypassing of license control mechanisms. To mitigate this, Microsoft has included [[Dotfuscator]] Community Edition with [[Visual Studio .NET]] since 2002.{{efn|Dotfuscator Community Edition 4.0}} Third-party obfuscation tools are also available from vendors such as [[VMware]], [[V.i. Labs]], [[Turbo (software)|Turbo]], and [[Red Gate Software]]. Method-level encryption tools for .NET code are available from vendors such as [[SafeNet]].
===Memory management===
CLR frees the developer from the burden of managing memory (allocating and freeing up when done); it handles memory management itself by detecting when memory can be safely freed. Instantiations of .NET types (objects) are allocated from the managed heap; a pool of memory managed by CLR. As long as a reference to an object exists, which may be either direct, or via a [[graph (data structure)|graph]] of objects, the object is considered to be in use. When no reference to an object exists, and it cannot be reached or used, it becomes garbage, eligible for collection.
.NET Framework includes a [[Garbage collection (computer science)|garbage collector]] (GC) which runs periodically, on a separate [[thread (computing)|thread]] from the application's thread, that enumerates all the unusable objects and reclaims the memory allocated to them. It is a non-deterministic, compacting, [[tracing garbage collection#Naïve mark-and-sweep|mark-and-sweep]] garbage collector. GC runs only when a set amount of memory has been used or there is enough pressure for memory on the system. Since it is not guaranteed when the conditions to reclaim memory are reached, GC runs are [[Nondeterministic algorithm|non-deterministic]]. Each .NET application has a set of roots, which are pointers to objects on the managed heap (''managed objects''). These include references to static objects, objects defined as local variables or method parameters currently in scope, and objects referred to by CPU registers.<ref name="part1">{{cite web|url=https://msdn.microsoft.com/msdnmag/issues/1100/GCI/|archive-url=https://web.archive.org/web/20070703083608/http://msdn.microsoft.com/msdnmag/issues/1100/GCI/|archive-date=July 3, 2007|title=Garbage Collection: Automatic Memory Management in the Microsoft .NET Framework|access-date=June 1, 2008|url-status=dead|df=mdy-all}}</ref> When GC runs, it pauses the application and then, for each object referred to in the root, it [[recursion|recursively]] enumerates all the objects reachable from the root objects and marks them as reachable. It uses CLI metadata and [[reflection (computer programming)|reflection]] to discover the objects encapsulated by an object, and then recursively walk them. It then enumerates all the objects on the heap (which were initially allocated contiguously) using reflection. All objects not marked as reachable are garbage.<ref name="part1"/> This is the ''mark'' phase.<ref name="gcnet">{{cite web|url=http://www.csharphelp.com/archives2/archive297.html|title=Garbage collection in .NET|access-date=June 1, 2008|archive-url=https://web.archive.org/web/20080525165023/http://www.csharphelp.com/archives2/archive297.html|archive-date=May 25, 2008|url-status=dead|df=dmy}}</ref> Since the memory held by garbage is of no consequence, it is considered free space. However, this leaves chunks of free space between objects which were initially contiguous. The objects are then ''compacted'' together to make free space on the managed heap contiguous again.<ref name="part1"/><ref name="gcnet"/> Any reference to an object invalidated by moving the object is updated by GC to reflect the new location.<ref name="gcnet"/> The application is resumed after garbage collection ends. The latest version of .NET framework uses concurrent garbage collection along with user code, making pauses unnoticeable, because it is done in the background.<ref>{{cite web|url=https://blogs.msdn.microsoft.com/dotnet/2012/07/20/the-net-framework-4-5-includes-new-garbage-collector-enhancements-for-client-and-server-apps/|title=The .NET Framework 4.5 includes new garbage collector enhancements for client and server apps|access-date=October 2, 2015}}</ref>
The garbage collector used by .NET Framework is also ''[[Garbage collection (computer science)#Generational|generational]]''.<ref name=PART2>{{cite web|url=https://msdn.microsoft.com/msdnmag/issues/1200/GCI2/default.aspx|archive-url=https://web.archive.org/web/20070626080134/http://msdn.microsoft.com/msdnmag/issues/1200/GCI2/default.aspx|archive-date=June 26, 2007|title=Garbage Collection—Part 2: Automatic Memory Management in the Microsoft .NET Framework|access-date=June 1, 2008|url-status=dead|df=mdy-all}}</ref> Objects are assigned a ''generation''. Newly created objects are tagged ''Generation 0''. Objects that survive one garbage collection are tagged ''Generation 1''. Generation 1 objects that survive another collection are ''Generation 2''. The framework uses up to Generation 2 objects.{{r|PART2}} Higher generation objects are garbage collected less often than lower generation objects. This raises the efficiency of garbage collection, as older objects tend to have longer lifetimes than newer objects.{{r|PART2}} By ignoring older objects in most collection runs, fewer checks and compaction operations are needed in total.{{r|PART2}}
===Performance===
When an application is first launched, the .NET Framework compiles the [[Common Intermediate Language|CIL code]] into executable code using its [[just-in-time compiler]], and caches the executable program into the .NET Native Image Cache.<ref>{{cite web|url=http://blogs.telerik.com/justteam/posts/13-05-28/understanding-net-just-in-time-compilation|title=Understanding .NET Just-In-Time Compilation|date=May 28, 2013|website=telerik.com|access-date=May 21, 2015|archive-date=June 11, 2013|archive-url=https://web.archive.org/web/20130611052214/http://blogs.telerik.com/justteam/posts/13-05-28/understanding-net-just-in-time-compilation|url-status=live}}</ref><ref name="cache">[https://msdn.microsoft.com/en-us/library/ht8ecch6(v=vs.90).aspx Compiling MSIL to Native Code] {{Webarchive|url=https://web.archive.org/web/20150419013531/https://msdn.microsoft.com/en-us/library/ht8ecch6(v=vs.90).aspx |date=April 19, 2015 }}, MSDN, Microsoft</ref> 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 compilation|ahead-of-time compile]] and cache any .NET application.<ref name="cache"/>
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."<ref>{{Cite web|url=https://www.red-gate.com/simple-talk/dotnet/net-framework/understanding-garbage-collection-in-net/|title=Understanding Garbage Collection in .NET|date=June 17, 2009}}</ref>
.NET Framework provides support for calling [[Streaming SIMD Extensions]] (SSE) via [[managed code]] from April 2014 in Visual Studio 2013 Update 2. However, [[Mono (software)|Mono]] has provided support for [[SIMD]] Extensions as of version 2.2 within the {{Not a typo|Mono.Simd}} namespace in 2009.<ref name="Release Notes">{{cite web|url=http://www.mono-project.com/docs/about-mono/releases/2.2.0/|title=Release Notes Mono 2.2 - Mono|website=mono-project.com}}</ref> Mono's lead developer [[Miguel de Icaza]] has expressed hope that this SIMD support will be adopted by CLR's ECMA standard.<ref>{{cite web|url=http://tirania.org/blog/archive/2008/Nov-03.html|title=Mono's SIMD Support: Making Mono safe for Gaming|publisher=Tirania.org|date=November 3, 2008|access-date=April 17, 2012|archive-date=November 4, 2010|archive-url=https://web.archive.org/web/20101104173338/http://tirania.org/blog/archive/2008/Nov-03.html|url-status=live}}</ref> Streaming SIMD Extensions have been available in [[x86]] CPUs since the introduction of the [[Pentium III]]. Some other architectures such as [[ARM architecture|ARM]] and [[MIPS architecture|MIPS]] also have SIMD extensions. In case the CPU lacks support for those extensions, the instructions are simulated in software.{{citation needed|date=June 2020}}
==Alternative implementations==
.NET Framework was the predominant implementation of .NET technologies, until the release of [[.NET]]. Other implementations for parts of the framework exist. Although the runtime engine is described by an ECMA-ISO specification, other implementations of it may be encumbered by [[software patent|patent]] issues; ISO standards may include the disclaimer, "Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. ISO shall not be held responsible for identifying any or all such patent rights."<ref>ISO 9001:2008, Foreword</ref> It is harder to develop alternatives to FCL, which is not described by an open standard and may be subject to copyright restrictions. Also, parts of FCL have Windows-specific functions and behavior, so implementation on non-Windows platforms can be problematic.
Some alternative implementations of parts of the framework are listed here.
* [[.NET Micro Framework]] is a .NET platform for extremely resource-constrained devices. It includes a small version of CLR and supports development in [[C Sharp (programming language)|C#]] (though some developers were able to use [[VB.NET]],<ref>{{cite web|url=http://www.christec.co.nz/blog/archives/317|title=Using VB.NET with the .NET Micro Framework «/dev/mobile|publisher=Christec.co.nz|date=April 1, 2008|access-date=April 17, 2012}}{{Dead link|date=January 2021 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> albeit with an amount of hacking, and with limited functionalities) and debugging (in an emulator or on hardware), both using [[Microsoft Visual Studio]]. It also features a subset of .NET Framework Class Library (about 70 classes with about 420 methods), a [[GUI]] framework loosely based on WPF, and additional libraries specific to embedded applications.
* [[Mono (software)|Mono]] is an implementation of CLI and FCL, and provides added functions. It is licensed as [[free software]] under the [[MIT License]]. It includes support for ASP.NET, ADO.NET, and Windows Forms libraries for a wide range of architectures and operating systems. It also includes C# and VB.NET compilers.
* [[Portable.NET]] (part of [[DotGNU]]) provides an implementation of CLI, parts of FCL, and a C# compiler. It supports a variety of CPUs and operating systems. The project was discontinued, with the last stable release in 2009.
* Microsoft [[Shared Source Common Language Infrastructure]] is a [[shared source#Microsoft Shared Source Common Language Infrastructure|non-free]] implementation of CLR. However, the last version runs on Windows XP SP2 only, and has not been updated since 2006. Thus, it does not contain all features of version 2.0 of .NET Framework.
* CrossNet<ref>{{cite web|url=https://www.codeplex.com/crossnet|title=CrossNet|publisher=Codeplex.com|access-date=April 17, 2012|archive-date=January 25, 2010|archive-url=https://web.archive.org/web/20100125035452/http://www.codeplex.com/crossnet|url-status=live}}</ref> is an implementation of CLI and parts of FCL. It is free software using an open source [[MIT License]].
==Licensing==
Microsoft managed code frameworks and their components are licensed as follows:
{{anchor|lic-detail-table}}
{| class="wikitable plainrowheaders" border=1
! scope=col | Component
! scope=col | License
|-
! scope=row | .NET Framework (redistributable package)
| [[Proprietary software]]<ref>{{cite web|title=Microsoft .NET Framework Redistributable EULA|url=https://msdn.microsoft.com/en-us/library/ms994405.aspx|website=[[MSDN]]|publisher=[[Microsoft]]|access-date=February 28, 2015|archive-date=April 2, 2015|archive-url=https://web.archive.org/web/20150402161923/https://msdn.microsoft.com/en-us/library/ms994405.aspx|url-status=live}}</ref>
|-
! scope=row | Reference [[source code]] of .NET Framework 4.5 and earlier
| [[Microsoft Reference License]] (Ms-RSL{{efn|name=Ms-RSL-dab}})<ref name="sourcerelease"/><ref>{{cite web|last1=Bray|first1=Brandon|title=Announcing the release of .NET Framework 4.5 RTM – Product and Source Code|url=https://blogs.msdn.microsoft.com/dotnet/2012/08/15/announcing-the-release-of-net-framework-4-5-rtm-product-and-source-code/|website=.NET Framework Blog|publisher=[[Microsoft]]|date=August 15, 2012|access-date=August 18, 2016|archive-date=October 4, 2016|archive-url=https://web.archive.org/web/20161004153213/https://blogs.msdn.microsoft.com/dotnet/2012/08/15/announcing-the-release-of-net-framework-4-5-rtm-product-and-source-code/|url-status=live}}</ref>
|-
! scope=row | Reference source code of .NET Framework 4.6
| [[MIT License]]<ref>{{cite web|title=Announcing .NET 2015 Preview: A New Era for .NET|url=https://blogs.msdn.microsoft.com/dotnet/2014/11/12/announcing-net-2015-preview-a-new-era-for-net/|website=.NET Framework Blog|publisher=[[Microsoft]]|date=November 12, 2014|access-date=August 18, 2016|archive-date=August 19, 2016|archive-url=https://web.archive.org/web/20160819154819/https://blogs.msdn.microsoft.com/dotnet/2014/11/12/announcing-net-2015-preview-a-new-era-for-net/|url-status=live}}</ref>
|-
! scope=row | [[Mono (software)|Mono]]
| MIT License<ref>{{cite web|title=Xamarin for Everyone|url=https://blog.xamarin.com/xamarin-for-all/|website=Xamarin Blog|publisher=[[Microsoft]]|date=April 17, 2016|access-date=April 12, 2016|archive-date=April 12, 2016|archive-url=https://web.archive.org/web/20160412072728/https://blog.xamarin.com/xamarin-for-all/|url-status=live}}</ref>
|-
! scope=row | [[.NET]] (formerly .NET Core)<br /><small>CoreFX, CoreCLR and CLI</small>
| MIT License<ref>{{cite web|title=.NET Core 5|url=https://www.dotnetfoundation.org/netcore5|website=dotnetfoundation.org|publisher=.NET Foundation|access-date=February 17, 2015|url-status=dead|archive-url=https://web.archive.org/web/20150217191151/https://www.dotnetfoundation.org/netcore5|archive-date=February 17, 2015|df=dmy-all}}</ref>
|-
! scope=row | [[.NET Micro Framework]]
| [[Apache License 2.0]]<ref>{{cite web|title=.NET Micro Framework|url=https://www.dotnetfoundation.org/dotnet-micro-framework|website=dotnetfoundation.org|publisher=.NET Foundation|access-date=February 17, 2015|url-status=dead|archive-url=https://web.archive.org/web/20150217191241/https://www.dotnetfoundation.org/dotnet-micro-framework|archive-date=February 17, 2015|df=dmy-all}}</ref>
|-
! scope=row | [[.NET Compiler Platform]] (codename "Roslyn")
| MIT License<ref>{{cite web |url=https://github.com/dotnet/roslyn/blob/master/License.txt |title=Roslyn License |author=<!--Not stated--> |date=February 5, 2020 |website=GitHub |publisher=.NET Foundation |access-date=April 14, 2018 |archive-date=March 24, 2018 |archive-url=https://web.archive.org/web/20180324160854/https://github.com/dotnet/roslyn/blob/master/License.txt |url-status=live }}</ref>
|-
! scope=row | [[ASP.NET MVC]], Web API and Web Pages ([[ASP.NET Razor|Razor]])
| Apache License 2.0<ref>{{cite web|title=ASP.NET MVC, Web API and Web Pages (Razor)|url=https://www.dotnetfoundation.org/aspnet-4|website=dotnetfoundation.org|publisher=.NET Foundation|access-date=February 17, 2015|url-status=dead|archive-url=https://web.archive.org/web/20150217190307/https://www.dotnetfoundation.org/aspnet-4|archive-date=February 17, 2015|df=dmy-all}}</ref>
|-
! scope=row | [[ASP.NET Core]]
| Apache License 2.0<ref>{{cite web|url=https://github.com/aspnet/Home/blob/master/LICENSE.txt|title=ASP.NET Core License|date=July 5, 2017|website=GitHub|publisher=.NET Foundation|access-date=April 14, 2018|archive-date=February 21, 2021|archive-url=https://web.archive.org/web/20210221070142/https://github.com/dotnet/aspnetcore/blob/main/LICENSE.txt|url-status=live}}</ref>
|-
! scope=row | [[ASP.NET Ajax Control Toolkit]]
| [[BSD License]]<ref>{{cite web|title=ASP.NET Ajax Control Toolkit|url=https://www.dotnetfoundation.org/aspnet-ajax|website=dotnetfoundation.org|publisher=.NET Foundation|access-date=February 17, 2015|url-status=dead|archive-url=https://web.archive.org/web/20150217201242/https://www.dotnetfoundation.org/aspnet-ajax|archive-date=February 17, 2015|df=dmy-all}}</ref>
|-
! scope=row | [[ASP.NET SignalR]]
| Apache License 2.0<ref>{{cite web|title=ASP.NET SignalR|url=https://www.dotnetfoundation.org/asp.net-signalr|website=dotnetfoundation.org|publisher=.NET Foundation|access-date=February 17, 2015|url-status=dead|archive-url=https://web.archive.org/web/20150217191338/https://www.dotnetfoundation.org/asp.net-signalr|archive-date=February 17, 2015|df=dmy-all}}</ref>
|-
! scope=row | [[Entity Framework]]
| Apache License 2.0<ref>{{cite web|title=Entity Framework|url=https://www.dotnetfoundation.org/entity-framework|website=dotnetfoundation.org|publisher=.NET Foundation|access-date=April 16, 2016|url-status=dead|archive-url=https://web.archive.org/web/20160418163228/http://www.dotnetfoundation.org/entity-framework|archive-date=April 18, 2016|df=dmy-all}}</ref>
|-
! scope=row | [[NuGet]]
| Apache License 2.0<ref>{{cite web|title=NuGet|url=https://www.dotnetfoundation.org/nuget|website=dotnetfoundation.org|publisher=.NET Foundation|access-date=February 17, 2015|url-status=dead|archive-url=https://web.archive.org/web/20150217200934/https://www.dotnetfoundation.org/nuget|archive-date=February 17, 2015|df=dmy-all}}</ref>
|}
==See also==
* [[.NET]] (formerly .NET Core)
* [[List of CLI languages]]
* [[Standard Libraries (CLI)]], the .NET standard libraries
* [[Base Class Library]] (BCL)
==Notes==
{{Notelist}}
==References==
{{Reflist|30em}}
==External links==
<!--{{No more links}} PLEASE BE CAUTIOUS IN ADDING MORE LINKS TO THIS ARTICLE.
| For details, see [[Wikipedia:External links]] & [[Wikipedia:Spam]].
|
| If there are already plentiful links, please propose additions or
| replacements on this article's discussion page, or submit your link
| to the relevant category at the Open Directory Project (dmoz.org)
| and link back to that project via the {{dmoz}} template.-->
{{Wikibooks|.NET Development Foundation}}
{{Wikiversity|Introduction to .NET}}
* {{Official website|https://dotnet.microsoft.com/}} <!-- copy it from Wikidata -->
* [https://msdn.microsoft.com/en-us/library/zw4w595w.aspx Overview of .NET Framework (MSDN)]
* [https://github.com/Microsoft/dotnet .NET Github repository]
{{.NET Framework}}
{{Common Language Infrastructure}}
{{Microsoft APIs}}
{{Microsoft FOSS}}
{{Microsoft Windows components}}
{{Authority control}}
[[Category:.NET Framework implementations]]
[[Category:2002 software]]
[[Category:Cross-platform software]]
[[Category:Microsoft application programming interfaces]]
[[Category:Microsoft development tools]]
[[Category:Microsoft free software]]' |
New page wikitext, after the edit (new_wikitext ) | '{{Short description|Software platform developed by Microsoft}}
{{for multi|the newer cross-platform framework|.NET|other uses|.net (disambiguation)}}
{{Use mdy dates|date=September 2018}}
{{Infobox software
| name = .NET Framework
| logo = .NET Logo.svg
| logo size = 120px
| screenshot = DotNet.svg
| caption = .NET Framework component stack
| developer = [[Microsoft]]
| released = {{Start date and age|2002|02|14}}
| discontinued = yes
| latest release version = 4.8.0 Build 3928
| latest release date = {{Start date and age|2019|07|25}}<ref>{{Cite web|url=https://dotnet.microsoft.com/download/thank-you/net48-offline|title=Download .NET Framework 4.8 Offline Installer|website=Microsoft|access-date=August 15, 2019|archive-date=August 15, 2019|archive-url=https://web.archive.org/web/20190815224743/https://dotnet.microsoft.com/download/thank-you/net48-offline|url-status=live}}</ref>
| replaced_by = [[.NET]]
| operating system = [[Windows 98]] or later, [[Windows NT 4.0]] or later
| platform = [[IA-32]], [[x86-64]], and [[ARM architecture|ARM]]
| genre = [[Software framework]]
| license = Mixed; see {{section link||Licensing}}
| website = <!-- no need to specify here... it is in WikiData -->
}}
The '''.NET Framework''' (pronounced as "''dot net"'') is a [[software framework]] developed by [[Microsoft]] that runs primarily on [[Microsoft Windows]]. It includes a large [[class library]] called [[Framework Class Library]] (FCL) and provides [[language interoperability]] (each language can use code written in other languages) across several [[programming language]]s. Programs written for .NET Framework execute in a [[software]] environment (in contrast to a [[computer hardware|hardware]] environment) named the [[Common Language Runtime]] (CLR). The CLR is an [[process virtual machine|application virtual machine]] that provides services such as security, [[memory management]], and [[exception handling]]. As such, computer code written using .NET Framework is called "[[managed code]]". FCL and CLR together constitute the .NET Framework.
FCL provides the [[user interface]], [[data access]], [[database connection|database connectivity]], [[cryptography]], [[web application]] development, numeric [[algorithm]]s, and [[computer networking|network communications]]. Programmers produce software by combining their [[source code]] with .NET Framework and other libraries. The framework is intended to be used by most new applications created for the Windows platform. Microsoft also produces an [[integrated development environment]] for .NET software called [[Microsoft Visual Studio|Visual Studio]].
.NET Framework began as [[proprietary software]], although the firm worked to [[software standard|standardize]] the software stack almost immediately, even before its first release. Despite the standardization efforts, developers, mainly those in the [[free and open-source software]] communities, expressed their unease with the selected terms and the prospects of any free and open-source implementation, especially regarding [[software patent]]s. Since then, Microsoft has changed .NET development to more closely follow a contemporary model of a community-developed software project, including issuing an update to its patent promising to address the concerns.<ref>{{Cite web|date=November 19, 2014 |title=Microsoft gets on board with open source|url=https://opensource.com/business/14/11/microsoft-dot-net-empower-open-source-communities|access-date=2020-01-02|website=Opensource.com|language=en}}</ref>
In April 2019, Microsoft released .NET Framework 4.8, the last version of the framework as a proprietary offering. Only monthly security and reliability bug fixes to that version have been released since then. No further changes to that version are planned.<ref>{{Cite web|last=gewarren|title=.NET Framework & Windows OS versions|url=https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/versions-and-dependencies|access-date=2020-11-21|website=docs.microsoft.com|language=en-us}}</ref>
==History==
{{Main|.NET Framework version history}}
Microsoft began developing .NET Framework in the late 1990s, originally under the name of Next Generation Windows Services (NGWS), as part of the [[.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 Sharp (programming language)|C#]]. By December 2001, both were ratified [[Ecma International]] (ECMA) standards.<ref>{{cite web|url=http://www.ecma-international.org/publications/standards/Ecma-335.htm|title=Standard ECMA-335: Common Language Infrastructure (CLI)|date=June 2012|website=ecma-international.org|publisher=[[Ecma International|ECMA]]|edition=6|access-date=August 31, 2005|archive-date=June 26, 2013|archive-url=https://www.webcitation.org/6HfXxFXH8?url=http://www.ecma-international.org/publications/standards/Ecma-335.htm|url-status=live}}</ref><ref>{{cite web|url=http://www.ecma-international.org/publications/standards/Ecma-334.htm|title=Standard ECMA-334: C# Language Specification|date=June 2006|website=ecma-international.org|publisher=[[Ecma International|ECMA]]|edition=4|access-date=August 31, 2005|archive-date=October 31, 2010|archive-url=https://web.archive.org/web/20101031042906/http://www.ecma-international.org/publications/standards/Ecma-334.htm|url-status=live}}</ref> [[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.<ref>{{cite web|url=http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=58046|title=ISO/IEC 23271:2012 Information technology – Common Language Infrastructure|publisher=[[International Organization for Standardization]]|date=February 13, 2012|edition=3|website=iso.org}}</ref><ref>{{cite web|url=http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=42926|title=ISO/IEC 23270:2006 – Information technology – Programming languages – C#|publisher=[[International Organization for Standardization]]|date=January 26, 2012|website=iso.org|edition=2|access-date=April 1, 2008|archive-date=December 6, 2010|archive-url=https://web.archive.org/web/20101206152217/http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=42926|url-status=live}}</ref>
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 licensing|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 for the part of .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.<ref>{{cite web|title=Microsoft's Empty Promise|url=http://www.fsf.org/news/2009-07-mscp-mono|work=[[Free Software Foundation]]|date=July 16, 2009|quote=However, there are several libraries that are included with Mono, and commonly used by applications like Tomboy, that are not required by the standard. And just to be clear, we're not talking about Windows-specific libraries like ASP.NET and Windows Forms. Instead, we're talking about libraries under the System namespace that provide common functionality programmers expect in modern programming languages|access-date=August 3, 2009|archive-url=https://web.archive.org/web/20090819101829/http://www.fsf.org/news/2009-07-mscp-mono/|archive-date=August 19, 2009|url-status=live|df=dmy}}</ref>
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{{efn|name=Ms-RSL-dab|The license was formerly abbreviated Ms-RL, but Ms-RL now refers to the [[Microsoft Reciprocal License]].}}).<ref name="sourcerelease">{{cite web|url=http://weblogs.asp.net/scottgu/releasing-the-source-code-for-the-net-framework-libraries|title=Releasing the Source Code for the NET Framework|website=Scott Guthrie's Blog|publisher=[[Microsoft]]|first=Scott|last=Guthrie|author-link=Scott Guthrie|date=October 3, 2007|access-date=September 15, 2010|archive-url=https://web.archive.org/web/20100907233621/http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx|archive-date=September 7, 2010|url-status=live|df=dmy}}</ref> 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.<ref>{{cite web|title=.NET Framework Library Source Code now available|url=https://weblogs.asp.net/scottgu/net-framework-library-source-code-now-available|website=Scott Guthrie's Blog|publisher=[[Microsoft]]|access-date=February 28, 2015|date=January 16, 2008|first=Scott|last=Guthrie|author-link=Scott Guthrie}}</ref>
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 browser]]s via plug-ins.
[[File:Microsoft .NET Framework v4.5 logo.png|thumb|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 (software)|Mono]] existed in a legal [[loophole|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.<ref name="dotnet-patent-promise">{{cite web|title=Microsoft Patent Promise for .NET Libraries and Runtime Components|website=[[GitHub]]|url=https://github.com/dotnet/corefx/blob/master/PATENTS.TXT|access-date=November 16, 2014|archive-date=February 21, 2021|archive-url=https://web.archive.org/web/20210221070138/https://github.com/dotnet/corefx/blob/master/PATENTS.TXT|url-status=live}}</ref>
On March 31, 2016, Microsoft announced at [[Build (developer conference)|Microsoft Build]] that they will completely [[software relicensing|relicense]] Mono under an [[MIT License]] even in scenarios where formerly a commercial license was needed.<ref>{{cite web|last1=Krill|first1=Paul|title=Xamarin's Mono runtime gets a looser license|url=http://www.infoworld.com/article/3050732/microsoft-windows/xamarins-mono-runtime-gets-a-looser-license.html|website=[[InfoWorld]]|publisher=[[IDG]]|date=April 1, 2016}}</ref> 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."<ref name=Ferraira1>{{cite web|url=http://techreport.com/news/29929/xamarin-now-comes-free-with-visual-studio|title=Xamarin now comes free with Visual Studio.|work=The Tech Report|date=March 31, 2016|first=Bruno|last=Ferraira|access-date=April 12, 2016|archive-date=April 2, 2016|archive-url=https://web.archive.org/web/20160402173444/http://techreport.com/news/29929/xamarin-now-comes-free-with-visual-studio|url-status=live}}</ref><ref name="Microsoft_PP_Mono">{{cite web|url=https://github.com/mono/mono/blob/master/PATENTS.TXT|title=Microsoft Patent Promise for Mono|work=Mono on GitHub|publisher=Mono Project|date=March 28, 2016|archive-url=https://web.archive.org/web/20160416133644/https://github.com/mono/mono/blob/master/PATENTS.TXT|archive-date=April 16, 2016|access-date=April 16, 2016|url-status=live|df=dmy}}</ref> 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.<ref name="Friedman2">{{cite web|url=https://blog.xamarin.com/xamarin-for-all/|title=Xamarin for Everyone|work=Xamarin Blog|publisher=Xamarin|date=March 31, 2016|archive-url=https://web.archive.org/web/20160412072728/https://blog.xamarin.com/xamarin-for-all/|archive-date=April 12, 2016|access-date=April 12, 2016}}</ref>
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.<ref name="ms-wpf-winforms-oss">{{cite web|title=Announcing Open Source of WPF, Windows Forms, and WinUI at Microsoft Connect 2018|url=https://blogs.windows.com/buildingapps/2018/12/04/announcing-open-source-of-wpf-windows-forms-and-winui-at-microsoft-connect-2018/|website=Windows Developer Blog|date=December 4, 2018|publisher=Microsoft|access-date=December 24, 2018|archive-url=https://web.archive.org/web/20181215163944/https://blogs.windows.com/buildingapps/2018/12/04/announcing-open-source-of-wpf-windows-forms-and-winui-at-microsoft-connect-2018/|archive-date=December 15, 2018}}</ref>
==Architecture==
[[File:Overview of the Common Language Infrastructure.svg|thumb|right|330px|Visual overview of the Common Language Infrastructure (CLI)]]
===Common Language Infrastructure===
{{Main|Common Language Infrastructure}}
Common Language Infrastructure (CLI) provides a language-neutral platform for application development and execution. By implementing the core aspects of .NET Framework within the scope of CLI, these functions will not be tied to one language but will be available across the many languages supported by the framework.
===Common Language Runtime===
{{Main|Common Language Runtime}}
.NET Framework includes the Common Language Runtime (CLR). It serves as the execution engine of .NET Framework and offers many services such as [[memory management]], [[type safety]], [[exception handling]], [[garbage collection (computer science)|garbage collection]], security and [[thread management]]. All programs written for .NET Framework are executed by the CLR.
Programs written for .NET Framework are compiled into [[Common Intermediate Language|Common Intermediate Language code]] (CIL), as opposed to being directly compiled into [[machine code]]. During execution, an architecture-specific [[just-in-time compiler]] (JIT) turns the [[Common Intermediate Language|CIL code]] into machine code.
===Assemblies===
Compiled CIL code is stored in [[assembly (CLI)|CLI assemblies]]. As mandated by the specification, assemblies are stored in [[Portable Executable]] (PE) file format, common on Windows platform for all ''[[dynamic-link library]]'' (DLL) and ''executable'' [[EXE]] files. Each assembly consists of one or more files, one of which must contain a manifest bearing the [[metadata]] for the assembly. The complete name of an assembly (not to be confused with the file name on disk) contains its simple text name, version number, culture, and [[public key]] token. Assemblies are considered equivalent if they share the same complete name.
A private key can also be used by the creator of the assembly for [[strong name|strong naming]]. The public key token identifies which private key an assembly is signed with. Only the creator of the key pair (typically the person signing the assembly) can sign assemblies that have the same strong name as a prior version assembly, since the creator possesses the private key. Strong naming is required to add assemblies to [[Global Assembly Cache]].
Starting with Visual Studio 2015, .NET Native compilation technology allows for the compilation of .NET code of [[Universal Windows Platform apps]] directly to machine code rather than CIL code, but the app must be written in either C# or Visual Basic.NET.<ref>{{cite web|url=https://docs.microsoft.com/en-us/dotnet/framework/net-native/|title=Compiling Apps with .NET Native|last=rpetrusha|website=docs.microsoft.com|access-date=December 2, 2017|archive-date=December 3, 2017|archive-url=https://web.archive.org/web/20171203082710/https://docs.microsoft.com/en-us/dotnet/framework/net-native/|url-status=live}}</ref>
===Class library===
{{Main|Framework Class Library}}
.NET Framework includes an implementation of the CLI foundational [[Standard Libraries (CLI)|Standard Libraries]]. The .NET Framework Class Library (FCL) is organized in a hierarchy of [[namespace]]s. Most of the built-in [[application programming interface]]s (APIs) are part of either <code>System.*</code> or <code>Microsoft.*</code> 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 [[List of CLI languages|CLI compliant languages]]. The FCL implements the CLI [[Base Class Library]] (BCL) and other class libraries—some are specified by CLI and other 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.<ref name="bcllibs">{{cite web|url=https://msdn.microsoft.com/netframework/aa569603.aspx|title=Base Class Library|access-date=June 1, 2008}}</ref> For .NET Framework most classes considered being part of BCL reside in <code>mscorlib.dll</code>, <code>System.dll</code> and <code>System.Core.dll</code>. BCL classes are available in .NET Framework as well as its alternative implementations including [[.NET Compact Framework]], [[Microsoft Silverlight]], [[.NET Core]] and [[Mono (software)|Mono]].
FCL refers to the entire class library that ships with .NET Framework. It includes an expanded set of libraries, including BCL, [[Windows Forms]], [[ASP.NET]], and [[Windows Presentation Foundation]] (WPF) but 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 [[Java Class Library|standard libraries of Java]].
With the introduction of alternative implementations (e.g., Silverlight), Microsoft introduced the concept of Portable Class Libraries (PCL) allowing a consuming library to run on more than one platform. With the further proliferation of .NET platforms, the PCL approach failed to scale (PCLs are defined intersections of API surface between two or more platforms).<ref name="netstandard">{{cite web|url=https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md|title=.NET Platform Standard|website=[[GitHub]]|access-date=April 23, 2016|archive-date=May 19, 2016|archive-url=https://web.archive.org/web/20160519180849/https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md|url-status=live}}</ref> As the next evolutionary step of PCL, the .NET Standard Library was created retroactively based on the <code>System.Runtime.dll</code> based APIs found in UWP and Silverlight. New .NET platforms are encouraged to implement a version of the standard library allowing them to re-use extant third-party libraries to run without new versions of them. The .NET Standard Library allows an independent evolution of the library and app model layers within the .NET architecture.<ref name="appmodels">{{cite web|url=http://www.hanselman.com/blog/AnUpdateOnASPNETCore10RC2.aspx|title=An update on ASP.NET Core 1.0 RC2|access-date=April 23, 2016}}</ref>
[[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.<ref>{{cite web|url=https://nuget.org|title=NuGet Gallery - Home|website=nuget.org|access-date=February 21, 2021|archive-date=February 21, 2021|archive-url=https://web.archive.org/web/20210221070142/https://www.nuget.org/|url-status=live}}</ref> Private feeds can be maintained separately, e.g., by a build server or a file system directory.
===C++/CLI===
{{Main|C++/CLI}}
Microsoft introduced [[C++/CLI]] in [[Visual Studio]] 2005, which is a language and means of compiling [[Visual C++]] programs to run within the .NET Framework. Some parts of the C++ program still run within an unmanaged [[Visual C++]] Runtime, while specially modified parts are translated into [[Common Intermediate Language|CIL code]] and run with the .NET Framework's [[Common Language Runtime|CLR]].
Assemblies compiled using the C++/CLI compiler are termed mixed-mode assemblies, since they contain native and managed code in the same DLL.<ref>[https://msdn.microsoft.com/en-us/library/x0w2664k.aspx Mixed (Native and Managed) Assemblies] {{Webarchive|url=https://web.archive.org/web/20141022111729/http://msdn.microsoft.com/en-us/library/x0w2664k.aspx |date=October 22, 2014 }}, MSDN</ref> Such assemblies are more complex to reverse engineer, since .NET [[decompilers]] such as [[.NET Reflector]] reveal only the managed code.
==Design principle==
===Interoperability===
Because computer systems commonly require interaction between newer and older applications, .NET Framework provides means to access functions implemented in newer and older programs that execute outside .NET environment. Access to [[Component Object Model]] (COM) components is provided in <code>System.Runtime.InteropServices</code> and <code>System.EnterpriseServices</code> namespaces of the framework. Access to other functions is via [[Platform Invocation Services]] (P/Invoke). Access to .NET functions from native applications is via reverse P/Invoke function.
===Language independence===
.NET Framework introduces a [[Common Type System]] (CTS) that defines all possible [[data type]]s and [[programming language|programming]] constructs supported by CLR and how they may or may not interact conforming to CLI specification. Because of this feature, .NET Framework supports the exchange of types and object instances between libraries and applications written using [[list of CLI languages|any conforming .NET language]].
===Type safety===
CTS and the CLR used in .NET Framework also enforce [[type safety]]. This prevents ill-defined casts, wrong method invocations, and memory size issues when accessing an object. This also makes most CLI languages [[type system|statically typed]] (with or without [[type inference]]). However, starting with .NET Framework 4.0, the [[Dynamic Language Runtime]] extended the CLR, allowing dynamically typed languages to be implemented atop the CLI.
===Portability===
While Microsoft has never implemented the full framework on any system except Microsoft Windows, it has engineered the framework to be cross-platform,<ref>{{cite web|url=https://channel9.msdn.com/shows/Going+Deep/Scott-Guthrie-Silverlight-and-the-Cross-Platform-CLR|title=Scott Guthrie: Silverlight and the Cross-Platform CLR|date=April 30, 2007|publisher=[[Channel 9 (discussion forum)|Channel 9]]|access-date=April 16, 2016|archive-url=https://www.webcitation.org/6XHacUsDc?url=http://channel9.msdn.com/shows/Going+Deep/Scott-Guthrie-Silverlight-and-the-Cross-Platform-CLR|archive-date=March 25, 2015|url-status=live|df=dmy}}</ref> and implementations are available for other operating systems (see [[Microsoft Silverlight|Silverlight]] and [[#Alternative implementations|§ Alternative implementations]]). Microsoft submitted the specifications for CLI (which includes the core class libraries, CTS, and CIL),<ref>{{cite web|url=http://www.ecma-international.org/publications/standards/Ecma-335.htm|title=ECMA 335 – Standard ECMA-335 Common Language Infrastructure (CLI) 4th edition (June 2006)|date=June 1, 2006|access-date=June 1, 2008|publisher=ECMA|archive-url=https://web.archive.org/web/20080614092650/http://www.ecma-international.org/publications/standards/Ecma-335.htm|archive-date=June 14, 2008}}</ref><ref>{{cite web|url=http://standards.iso.org/ittf/PubliclyAvailableStandards/c042927_ISO_IEC_23271_2006(E)_Software.zip|title=ISO/IEC 23271:2006|publisher=Standards.iso.org|date=September 29, 2006|access-date=April 17, 2012|archive-date=July 1, 2018|archive-url=https://web.archive.org/web/20180701142510/http://standards.iso.org/ittf/PubliclyAvailableStandards/c042927_ISO_IEC_23271_2006%28E%29_Software.zip|url-status=live}}</ref><ref>{{cite web|url=http://www.ecma-international.org/publications/techreports/E-TR-084.htm|title=Technical Report TR/84 Common Language Infrastructure (CLI) – Information Derived from Partition IV XML File|date=June 1, 2006|publisher=ECMA|access-date=April 16, 2016|archive-url=https://www.webcitation.org/6XHagdtvH?url=http://www.ecma-international.org/publications/techreports/E-TR-084.htm|archive-date=March 25, 2015|url-status=live|df=dmy}}</ref> [[C Sharp (programming language)|C#]],<ref>{{cite web|url=http://www.ecma-international.org/publications/standards/Ecma-334.htm|title=ECMA-334 C# Language Specification|date=June 1, 2006|publisher=ECMA|access-date=August 31, 2005|archive-date=October 31, 2010|archive-url=https://web.archive.org/web/20101031042906/http://www.ecma-international.org/publications/standards/Ecma-334.htm|url-status=live}}</ref> and C++/CLI<ref>{{cite web|url=http://www.ecma-international.org/publications/standards/Ecma-372.htm|title=Standard ECMA-372 C++/CLI Language Specification|date=December 1, 2005|publisher=ECMA|access-date=January 16, 2008|archive-url=https://web.archive.org/web/20080810165757/http://www.ecma-international.org/publications/standards/Ecma-372.htm|archive-date=August 10, 2008|url-status=dead}}</ref> to both [[Ecma International]] (ECMA) and [[International Organization for Standardization]] (ISO), making them available as official standards. This makes it possible for third parties to create compatible implementations of the framework and its languages on other platforms.
===Security===
.NET Framework has its own security mechanism with two general features: [[Code Access Security]] (CAS), and validation and verification. CAS is based on evidence that is associated with a specific assembly. Typically the evidence is the source of the assembly (whether it is installed on the local machine or has been downloaded from the Internet). CAS uses evidence to determine the permissions granted to the code. Other code can demand that calling code be granted a specified permission. The demand causes CLR to perform a call stack walk: every assembly of each method in the call stack is checked for the required permission; if any assembly is not granted the permission a security exception is thrown.
[[Managed code|Managed]] [[Common Intermediate Language|CIL]] bytecode is easier to [[reverse engineering#Reverse engineering of software|reverse-engineer]] than native code, unless [[obfuscated code|obfuscated]].<ref>Gartner, Inc. as reported in "Hype Cycle for Cyberthreats, 2006", September 2006, Neil MacDonald; Amrit Williams, et al.</ref> {{Not a typo|.NET}} [[decompiler]] programs enable developers with no reverse-engineering skills to view the source code behind unobfuscated .NET assemblies. In contrast, apps compiled to native machine code are much harder to reverse-engineer, and source code is almost never produced successfully, mainly because of compiler optimizations and lack of [[reflection (computer programming)|reflection]].<ref>{{cite thesis|last1=Cifuentes|first1=Cristina|title=Reverse Compilation Techniques|chapter-url=http://www.labri.fr/perso/fleury/download/papers/binary_analysis/cifuentes-thesis.pdf|publisher=[[Queensland University of Technology]]|date=July 1994|chapter=6: Control Flow Analysis|url-status=dead|archive-url=https://web.archive.org/web/20161122154356/http://www.labri.fr/perso/fleury/download/papers/binary_analysis/cifuentes-thesis.pdf|archive-date=November 22, 2016|df=dmy-all}}</ref> This creates concerns in the business community over the possible loss of [[trade secret]]s and the bypassing of license control mechanisms. To mitigate this, Microsoft has included [[Dotfuscator]] Community Edition with [[Visual Studio .NET]] since 2002.{{efn|Dotfuscator Community Edition 4.0}} Third-party obfuscation tools are also available from vendors such as [[VMware]], [[V.i. Labs]], [[Turbo (software)|Turbo]], and [[Red Gate Software]]. Method-level encryption tools for .NET code are available from vendors such as [[SafeNet]].
===Memory management===
CLR frees the developer from the burden of managing memory (allocating and freeing up when done); it handles memory management itself by detecting when memory can be safely freed. Instantiations of .NET types (objects) are allocated from the managed heap; a pool of memory managed by CLR. As long as a reference to an object exists, which may be either direct, or via a [[graph (data structure)|graph]] of objects, the object is considered to be in use. When no reference to an object exists, and it cannot be reached or used, it becomes garbage, eligible for collection.
.NET Framework includes a [[Garbage collection (computer science)|garbage collector]] (GC) which runs periodically, on a separate [[thread (computing)|thread]] from the application's thread, that enumerates all the unusable objects and reclaims the memory allocated to them. It is a non-deterministic, compacting, [[tracing garbage collection#Naïve mark-and-sweep|mark-and-sweep]] garbage collector. GC runs only when a set amount of memory has been used or there is enough pressure for memory on the system. Since it is not guaranteed when the conditions to reclaim memory are reached, GC runs are [[Nondeterministic algorithm|non-deterministic]]. Each .NET application has a set of roots, which are pointers to objects on the managed heap (''managed objects''). These include references to static objects, objects defined as local variables or method parameters currently in scope, and objects referred to by CPU registers.<ref name="part1">{{cite web|url=https://msdn.microsoft.com/msdnmag/issues/1100/GCI/|archive-url=https://web.archive.org/web/20070703083608/http://msdn.microsoft.com/msdnmag/issues/1100/GCI/|archive-date=July 3, 2007|title=Garbage Collection: Automatic Memory Management in the Microsoft .NET Framework|access-date=June 1, 2008|url-status=dead|df=mdy-all}}</ref> When GC runs, it pauses the application and then, for each object referred to in the root, it [[recursion|recursively]] enumerates all the objects reachable from the root objects and marks them as reachable. It uses CLI metadata and [[reflection (computer programming)|reflection]] to discover the objects encapsulated by an object, and then recursively walk them. It then enumerates all the objects on the heap (which were initially allocated contiguously) using reflection. All objects not marked as reachable are garbage.<ref name="part1"/> This is the ''mark'' phase.<ref name="gcnet">{{cite web|url=http://www.csharphelp.com/archives2/archive297.html|title=Garbage collection in .NET|access-date=June 1, 2008|archive-url=https://web.archive.org/web/20080525165023/http://www.csharphelp.com/archives2/archive297.html|archive-date=May 25, 2008|url-status=dead|df=dmy}}</ref> Since the memory held by garbage is of no consequence, it is considered free space. However, this leaves chunks of free space between objects which were initially contiguous. The objects are then ''compacted'' together to make free space on the managed heap contiguous again.<ref name="part1"/><ref name="gcnet"/> Any reference to an object invalidated by moving the object is updated by GC to reflect the new location.<ref name="gcnet"/> The application is resumed after garbage collection ends. The latest version of .NET framework uses concurrent garbage collection along with user code, making pauses unnoticeable, because it is done in the background.<ref>{{cite web|url=https://blogs.msdn.microsoft.com/dotnet/2012/07/20/the-net-framework-4-5-includes-new-garbage-collector-enhancements-for-client-and-server-apps/|title=The .NET Framework 4.5 includes new garbage collector enhancements for client and server apps|access-date=October 2, 2015}}</ref>
The garbage collector used by .NET Framework is also ''[[Garbage collection (computer science)#Generational|generational]]''.<ref name=PART2>{{cite web|url=https://msdn.microsoft.com/msdnmag/issues/1200/GCI2/default.aspx|archive-url=https://web.archive.org/web/20070626080134/http://msdn.microsoft.com/msdnmag/issues/1200/GCI2/default.aspx|archive-date=June 26, 2007|title=Garbage Collection—Part 2: Automatic Memory Management in the Microsoft .NET Framework|access-date=June 1, 2008|url-status=dead|df=mdy-all}}</ref> Objects are assigned a ''generation''. Newly created objects are tagged ''Generation 0''. Objects that survive one garbage collection are tagged ''Generation 1''. Generation 1 objects that survive another collection are ''Generation 2''. The framework uses up to Generation 2 objects.{{r|PART2}} Higher generation objects are garbage collected less often than lower generation objects. This raises the efficiency of garbage collection, as older objects tend to have longer lifetimes than newer objects.{{r|PART2}} By ignoring older objects in most collection runs, fewer checks and compaction operations are needed in total.{{r|PART2}}
===Performance===
When an application is first launched, the .NET Framework compiles the [[Common Intermediate Language|CIL code]] into executable code using its [[just-in-time compiler]], and caches the executable program into the .NET Native Image Cache.<ref>{{cite web|url=http://blogs.telerik.com/justteam/posts/13-05-28/understanding-net-just-in-time-compilation|title=Understanding .NET Just-In-Time Compilation|date=May 28, 2013|website=telerik.com|access-date=May 21, 2015|archive-date=June 11, 2013|archive-url=https://web.archive.org/web/20130611052214/http://blogs.telerik.com/justteam/posts/13-05-28/understanding-net-just-in-time-compilation|url-status=live}}</ref><ref name="cache">[https://msdn.microsoft.com/en-us/library/ht8ecch6(v=vs.90).aspx Compiling MSIL to Native Code] {{Webarchive|url=https://web.archive.org/web/20150419013531/https://msdn.microsoft.com/en-us/library/ht8ecch6(v=vs.90).aspx |date=April 19, 2015 }}, MSDN, Microsoft</ref> 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 compilation|ahead-of-time compile]] and cache any .NET application.<ref name="cache"/>
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."<ref>{{Cite web|url=https://www.red-gate.com/simple-talk/dotnet/net-framework/understanding-garbage-collection-in-net/|title=Understanding Garbage Collection in .NET|date=June 17, 2009}}</ref>
.NET Framework provides support for calling [[Streaming SIMD Extensions]] (SSE) via [[managed code]] from April 2014 in Visual Studio 2013 Update 2. However, [[Mono (software)|Mono]] has provided support for [[SIMD]] Extensions as of version 2.2 within the {{Not a typo|Mono.Simd}} namespace in 2009.<ref name="Release Notes">{{cite web|url=http://www.mono-project.com/docs/about-mono/releases/2.2.0/|title=Release Notes Mono 2.2 - Mono|website=mono-project.com}}</ref> Mono's lead developer [[Miguel de Icaza]] has expressed hope that this SIMD support will be adopted by CLR's ECMA standard.<ref>{{cite web|url=http://tirania.org/blog/archive/2008/Nov-03.html|title=Mono's SIMD Support: Making Mono safe for Gaming|publisher=Tirania.org|date=November 3, 2008|access-date=April 17, 2012|archive-date=November 4, 2010|archive-url=https://web.archive.org/web/20101104173338/http://tirania.org/blog/archive/2008/Nov-03.html|url-status=live}}</ref> Streaming SIMD Extensions have been available in [[x86]] CPUs since the introduction of the [[Pentium III]]. Some other architectures such as [[ARM architecture|ARM]] and [[MIPS architecture|MIPS]] also have SIMD extensions. In case the CPU lacks support for those extensions, the instructions are simulated in software.{{citation needed|date=June 2020}}
==Alternative implementations==
.NET Framework was the predominant implementation of .NET technologies, until the release of [[.NET]]. Other implementations for parts of the framework exist. Although the runtime engine is described by an ECMA-ISO specification, other implementations of it may be encumbered by [[software patent|patent]] issues; ISO standards may include the disclaimer, "Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. ISO shall not be held responsible for identifying any or all such patent rights."<ref>ISO 9001:2008, Foreword</ref> It is harder to develop alternatives to FCL, which is not described by an open standard and may be subject to copyright restrictions. Also, parts of FCL have Windows-specific functions and behavior, so implementation on non-Windows platforms can be problematic.
Some alternative implementations of parts of the framework are listed here.
* [[.NET Micro Framework]] is a .NET platform for extremely resource-constrained devices. It includes a small version of CLR and supports development in [[C Sharp (programming language)|C#]] (though some developers were able to use [[VB.NET]],<ref>{{cite web|url=http://www.christec.co.nz/blog/archives/317|title=Using VB.NET with the .NET Micro Framework «/dev/mobile|publisher=Christec.co.nz|date=April 1, 2008|access-date=April 17, 2012}}{{Dead link|date=January 2021 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> albeit with an amount of hacking, and with limited functionalities) and debugging (in an emulator or on hardware), both using [[Microsoft Visual Studio]]. It also features a subset of .NET Framework Class Library (about 70 classes with about 420 methods), a [[GUI]] framework loosely based on WPF, and additional libraries specific to embedded applications.
* [[Mono (software)|Mono]] is an implementation of CLI and FCL, and provides added functions. It is licensed as [[free software]] under the [[MIT License]]. It includes support for ASP.NET, ADO.NET, and Windows Forms libraries for a wide range of architectures and operating systems. It also includes C# and VB.NET compilers.
* [[Portable.NET]] (part of [[DotGNU]]) provides an implementation of CLI, parts of FCL, and a C# compiler. It supports a variety of CPUs and operating systems. The project was discontinued, with the last stable release in 2009.
* Microsoft [[Shared Source Common Language Infrastructure]] is a [[shared source#Microsoft Shared Source Common Language Infrastructure|non-free]] implementation of CLR. However, the last version runs on Windows XP SP2 only, and has not been updated since 2006. Thus, it does not contain all features of version 2.0 of .NET Framework.
* CrossNet<ref>{{cite web|url=https://www.codeplex.com/crossnet|title=CrossNet|publisher=Codeplex.com|access-date=April 17, 2012|archive-date=January 25, 2010|archive-url=https://web.archive.org/web/20100125035452/http://www.codeplex.com/crossnet|url-status=live}}</ref> is an implementation of CLI and parts of FCL. It is free software using an open source [[MIT License]].
==Licensing==
Microsoft managed code frameworks and their components are licensed as follows:
{{anchor|lic-detail-table}}
{| class="wikitable plainrowheaders" border=1
! scope=col | Component
! scope=col | License
|-
! scope=row | .NET Framework (redistributable package)
| [[Proprietary software]]<ref>{{cite web|title=Microsoft .NET Framework Redistributable EULA|url=https://msdn.microsoft.com/en-us/library/ms994405.aspx|website=[[MSDN]]|publisher=[[Microsoft]]|access-date=February 28, 2015|archive-date=April 2, 2015|archive-url=https://web.archive.org/web/20150402161923/https://msdn.microsoft.com/en-us/library/ms994405.aspx|url-status=live}}</ref>
|-
! scope=row | Reference [[source code]] of .NET Framework 4.5 and earlier
| [[Microsoft Reference License]] (Ms-RSL{{efn|name=Ms-RSL-dab}})<ref name="sourcerelease"/><ref>{{cite web|last1=Bray|first1=Brandon|title=Announcing the release of .NET Framework 4.5 RTM – Product and Source Code|url=https://blogs.msdn.microsoft.com/dotnet/2012/08/15/announcing-the-release-of-net-framework-4-5-rtm-product-and-source-code/|website=.NET Framework Blog|publisher=[[Microsoft]]|date=August 15, 2012|access-date=August 18, 2016|archive-date=October 4, 2016|archive-url=https://web.archive.org/web/20161004153213/https://blogs.msdn.microsoft.com/dotnet/2012/08/15/announcing-the-release-of-net-framework-4-5-rtm-product-and-source-code/|url-status=live}}</ref>
|-
! scope=row | Reference source code of .NET Framework 4.6
| [[MIT License]]<ref>{{cite web|title=Announcing .NET 2015 Preview: A New Era for .NET|url=https://blogs.msdn.microsoft.com/dotnet/2014/11/12/announcing-net-2015-preview-a-new-era-for-net/|website=.NET Framework Blog|publisher=[[Microsoft]]|date=November 12, 2014|access-date=August 18, 2016|archive-date=August 19, 2016|archive-url=https://web.archive.org/web/20160819154819/https://blogs.msdn.microsoft.com/dotnet/2014/11/12/announcing-net-2015-preview-a-new-era-for-net/|url-status=live}}</ref>
|-
! scope=row | [[Mono (software)|Mono]]
| MIT License<ref>{{cite web|title=Xamarin for Everyone|url=https://blog.xamarin.com/xamarin-for-all/|website=Xamarin Blog|publisher=[[Microsoft]]|date=April 17, 2016|access-date=April 12, 2016|archive-date=April 12, 2016|archive-url=https://web.archive.org/web/20160412072728/https://blog.xamarin.com/xamarin-for-all/|url-status=live}}</ref>
|-
! scope=row | [[.NET]] (formerly .NET Core)<br /><small>CoreFX, CoreCLR and CLI</small>
| MIT License<ref>{{cite web|title=.NET Core 5|url=https://www.dotnetfoundation.org/netcore5|website=dotnetfoundation.org|publisher=.NET Foundation|access-date=February 17, 2015|url-status=dead|archive-url=https://web.archive.org/web/20150217191151/https://www.dotnetfoundation.org/netcore5|archive-date=February 17, 2015|df=dmy-all}}</ref>
|-
! scope=row | [[.NET Micro Framework]]
| [[Apache License 2.0]]<ref>{{cite web|title=.NET Micro Framework|url=https://www.dotnetfoundation.org/dotnet-micro-framework|website=dotnetfoundation.org|publisher=.NET Foundation|access-date=February 17, 2015|url-status=dead|archive-url=https://web.archive.org/web/20150217191241/https://www.dotnetfoundation.org/dotnet-micro-framework|archive-date=February 17, 2015|df=dmy-all}}</ref>
|-
! scope=row | [[.NET Compiler Platform]] (codename "Roslyn")
| MIT License<ref>{{cite web |url=https://github.com/dotnet/roslyn/blob/master/License.txt |title=Roslyn License |author=<!--Not stated--> |date=February 5, 2020 |website=GitHub |publisher=.NET Foundation |access-date=April 14, 2018 |archive-date=March 24, 2018 |archive-url=https://web.archive.org/web/20180324160854/https://github.com/dotnet/roslyn/blob/master/License.txt |url-status=live }}</ref>
|-
! scope=row | [[ASP.NET MVC]], Web API and Web Pages ([[ASP.NET Razor|Razor]])
| Apache License 2.0<ref>{{cite web|title=ASP.NET MVC, Web API and Web Pages (Razor)|url=https://www.dotnetfoundation.org/aspnet-4|website=dotnetfoundation.org|publisher=.NET Foundation|access-date=February 17, 2015|url-status=dead|archive-url=https://web.archive.org/web/20150217190307/https://www.dotnetfoundation.org/aspnet-4|archive-date=February 17, 2015|df=dmy-all}}</ref>
|-
! scope=row | [[ASP.NET Core]]
| Apache License 2.0<ref>{{cite web|url=https://github.com/aspnet/Home/blob/master/LICENSE.txt|title=ASP.NET Core License|date=July 5, 2017|website=GitHub|publisher=.NET Foundation|access-date=April 14, 2018|archive-date=February 21, 2021|archive-url=https://web.archive.org/web/20210221070142/https://github.com/dotnet/aspnetcore/blob/main/LICENSE.txt|url-status=live}}</ref>
|-
! scope=row | [[ASP.NET Ajax Control Toolkit]]
| [[BSD License]]<ref>{{cite web|title=ASP.NET Ajax Control Toolkit|url=https://www.dotnetfoundation.org/aspnet-ajax|website=dotnetfoundation.org|publisher=.NET Foundation|access-date=February 17, 2015|url-status=dead|archive-url=https://web.archive.org/web/20150217201242/https://www.dotnetfoundation.org/aspnet-ajax|archive-date=February 17, 2015|df=dmy-all}}</ref>
|-
! scope=row | [[ASP.NET SignalR]]
| Apache License 2.0<ref>{{cite web|title=ASP.NET SignalR|url=https://www.dotnetfoundation.org/asp.net-signalr|website=dotnetfoundation.org|publisher=.NET Foundation|access-date=February 17, 2015|url-status=dead|archive-url=https://web.archive.org/web/20150217191338/https://www.dotnetfoundation.org/asp.net-signalr|archive-date=February 17, 2015|df=dmy-all}}</ref>
|-
! scope=row | [[Entity Framework]]
| Apache License 2.0<ref>{{cite web|title=Entity Framework|url=https://www.dotnetfoundation.org/entity-framework|website=dotnetfoundation.org|publisher=.NET Foundation|access-date=April 16, 2016|url-status=dead|archive-url=https://web.archive.org/web/20160418163228/http://www.dotnetfoundation.org/entity-framework|archive-date=April 18, 2016|df=dmy-all}}</ref>
|-
! scope=row | [[NuGet]]
| Apache License 2.0<ref>{{cite web|title=NuGet|url=https://www.dotnetfoundation.org/nuget|website=dotnetfoundation.org|publisher=.NET Foundation|access-date=February 17, 2015|url-status=dead|archive-url=https://web.archive.org/web/20150217200934/https://www.dotnetfoundation.org/nuget|archive-date=February 17, 2015|df=dmy-all}}</ref>
|}
==See also==
* [[.NET]] (formerly .NET Core)
* [[List of CLI languages]]
* [[Standard Libraries (CLI)]], the .NET standard libraries
* [[Base Class Library]] (BCL)
==Notes==
{{Notelist}}
==References==
{{Reflist|30em}}
==External links==
<!--{{No more links}} PLEASE BE CAUTIOUS IN ADDING MORE LINKS TO THIS ARTICLE.
| For details, see [[Wikipedia:External links]] & [[Wikipedia:Spam]].
|
| If there are already plentiful links, please propose additions or
| replacements on this article's discussion page, or submit your link
| to the relevant category at the Open Directory Project (dmoz.org)
| and link back to that project via the {{dmoz}} template.-->
{{Wikibooks|.NET Development Foundation}}
{{Wikiversity|Introduction to .NET}}
* {{Official website|https://dotnet.microsoft.com/}} <!-- copy it from Wikidata -->
* [https://msdn.microsoft.com/en-us/library/zw4w595w.aspx Overview of .NET Framework (MSDN)]
* [https://github.com/Microsoft/dotnet .NET Github repository]
{{.NET Framework}}
{{Common Language Infrastructure}}
{{Microsoft APIs}}
{{Microsoft FOSS}}
{{Microsoft Windows components}}
{{Authority control}}
[[Category:.NET Framework implementations]]
[[Category:2002 software]]
[[Category:Cross-platform software]]
[[Category:Microsoft application programming interfaces]]
[[Category:Microsoft development tools]]
[[Category:Microsoft free software]]' |
Unified diff of changes made by edit (edit_diff ) | '@@ -3,20 +3,20 @@
{{Use mdy dates|date=September 2018}}
{{Infobox software
-| name = .NET Framework
-| logo = .NET Logo.svg
-| logo size = 120px
-| screenshot = DotNet.svg
-| caption = .NET Framework component stack
-| developer = .[[Microsoft]]
-| released = {{Start date and age|2002|02|14}}
-| discontinued = yes
+| name = .NET Framework
+| logo = .NET Logo.svg
+| logo size = 120px
+| screenshot = DotNet.svg
+| caption = .NET Framework component stack
+| developer = [[Microsoft]]
+| released = {{Start date and age|2002|02|14}}
+| discontinued = yes
| latest release version = 4.8.0 Build 3928
-| latest release date = {{Start date and age|2019|07|25}}<ref>{{Cite web|url=https://dotnet.microsoft.com/download/thank-you/net48-offline|title=Download .NET Framework 4.8 Offline Installer|website=Microsoft|access-date=August 15, 2019|archive-date=August 15, 2019|archive-url=https://web.archive.org/web/20190815224743/https://dotnet.microsoft.com/download/thank-you/net48-offline|url-status=live}}</ref>
-| replaced_by = [[.NET]]
-| operating system = [[Windows 98]] or later, [[Windows NT 4.0]] or later
-| platform = [[IA-32]], [[x86-64]], and [[ARM architecture|ARM]]
-| genre = [[Software framework]]
-| license = Mixed; see {{section link||Licensing}}
-| website = <!-- no need to specify here... it is in WikiData -->
+| latest release date = {{Start date and age|2019|07|25}}<ref>{{Cite web|url=https://dotnet.microsoft.com/download/thank-you/net48-offline|title=Download .NET Framework 4.8 Offline Installer|website=Microsoft|access-date=August 15, 2019|archive-date=August 15, 2019|archive-url=https://web.archive.org/web/20190815224743/https://dotnet.microsoft.com/download/thank-you/net48-offline|url-status=live}}</ref>
+| replaced_by = [[.NET]]
+| operating system = [[Windows 98]] or later, [[Windows NT 4.0]] or later
+| platform = [[IA-32]], [[x86-64]], and [[ARM architecture|ARM]]
+| genre = [[Software framework]]
+| license = Mixed; see {{section link||Licensing}}
+| website = <!-- no need to specify here... it is in WikiData -->
}}
The '''.NET Framework''' (pronounced as "''dot net"'') is a [[software framework]] developed by [[Microsoft]] that runs primarily on [[Microsoft Windows]]. It includes a large [[class library]] called [[Framework Class Library]] (FCL) and provides [[language interoperability]] (each language can use code written in other languages) across several [[programming language]]s. Programs written for .NET Framework execute in a [[software]] environment (in contrast to a [[computer hardware|hardware]] environment) named the [[Common Language Runtime]] (CLR). The CLR is an [[process virtual machine|application virtual machine]] that provides services such as security, [[memory management]], and [[exception handling]]. As such, computer code written using .NET Framework is called "[[managed code]]". FCL and CLR together constitute the .NET Framework.
' |
New page size (new_size ) | 47844 |
Old page size (old_size ) | 48039 |
Size change in edit (edit_delta ) | -195 |
Lines added in edit (added_lines ) | [
0 => '| name = .NET Framework',
1 => '| logo = .NET Logo.svg',
2 => '| logo size = 120px',
3 => '| screenshot = DotNet.svg',
4 => '| caption = .NET Framework component stack',
5 => '| developer = [[Microsoft]]',
6 => '| released = {{Start date and age|2002|02|14}}',
7 => '| discontinued = yes',
8 => '| latest release date = {{Start date and age|2019|07|25}}<ref>{{Cite web|url=https://dotnet.microsoft.com/download/thank-you/net48-offline|title=Download .NET Framework 4.8 Offline Installer|website=Microsoft|access-date=August 15, 2019|archive-date=August 15, 2019|archive-url=https://web.archive.org/web/20190815224743/https://dotnet.microsoft.com/download/thank-you/net48-offline|url-status=live}}</ref>',
9 => '| replaced_by = [[.NET]]',
10 => '| operating system = [[Windows 98]] or later, [[Windows NT 4.0]] or later',
11 => '| platform = [[IA-32]], [[x86-64]], and [[ARM architecture|ARM]]',
12 => '| genre = [[Software framework]]',
13 => '| license = Mixed; see {{section link||Licensing}}',
14 => '| website = <!-- no need to specify here... it is in WikiData -->'
] |
Lines removed in edit (removed_lines ) | [
0 => '| name = .NET Framework',
1 => '| logo = .NET Logo.svg',
2 => '| logo size = 120px',
3 => '| screenshot = DotNet.svg',
4 => '| caption = .NET Framework component stack',
5 => '| developer = .[[Microsoft]]',
6 => '| released = {{Start date and age|2002|02|14}}',
7 => '| discontinued = yes',
8 => '| latest release date = {{Start date and age|2019|07|25}}<ref>{{Cite web|url=https://dotnet.microsoft.com/download/thank-you/net48-offline|title=Download .NET Framework 4.8 Offline Installer|website=Microsoft|access-date=August 15, 2019|archive-date=August 15, 2019|archive-url=https://web.archive.org/web/20190815224743/https://dotnet.microsoft.com/download/thank-you/net48-offline|url-status=live}}</ref>',
9 => '| replaced_by = [[.NET]]',
10 => '| operating system = [[Windows 98]] or later, [[Windows NT 4.0]] or later',
11 => '| platform = [[IA-32]], [[x86-64]], and [[ARM architecture|ARM]]',
12 => '| genre = [[Software framework]]',
13 => '| license = Mixed; see {{section link||Licensing}}',
14 => '| website = <!-- no need to specify here... it is in WikiData -->'
] |
All external links added in the edit (added_links ) | [] |
All external links removed in the edit (removed_links ) | [] |
All external links in the new text (all_links ) | [
0 => 'https://dotnet.microsoft.com/download/thank-you/net48-offline',
1 => 'https://web.archive.org/web/20190815224743/https://dotnet.microsoft.com/download/thank-you/net48-offline',
2 => 'https://opensource.com/business/14/11/microsoft-dot-net-empower-open-source-communities',
3 => 'https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/versions-and-dependencies',
4 => 'http://www.ecma-international.org/publications/standards/Ecma-335.htm',
5 => 'https://www.webcitation.org/6HfXxFXH8?url=http://www.ecma-international.org/publications/standards/Ecma-335.htm',
6 => 'http://www.ecma-international.org/publications/standards/Ecma-334.htm',
7 => 'https://web.archive.org/web/20101031042906/http://www.ecma-international.org/publications/standards/Ecma-334.htm',
8 => 'http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=58046',
9 => 'http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=42926',
10 => 'https://web.archive.org/web/20101206152217/http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=42926',
11 => 'http://www.fsf.org/news/2009-07-mscp-mono',
12 => 'https://web.archive.org/web/20090819101829/http://www.fsf.org/news/2009-07-mscp-mono/',
13 => 'http://weblogs.asp.net/scottgu/releasing-the-source-code-for-the-net-framework-libraries',
14 => 'https://web.archive.org/web/20100907233621/http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx',
15 => 'https://weblogs.asp.net/scottgu/net-framework-library-source-code-now-available',
16 => 'https://github.com/dotnet/corefx/blob/master/PATENTS.TXT',
17 => 'https://web.archive.org/web/20210221070138/https://github.com/dotnet/corefx/blob/master/PATENTS.TXT',
18 => 'http://www.infoworld.com/article/3050732/microsoft-windows/xamarins-mono-runtime-gets-a-looser-license.html',
19 => 'http://techreport.com/news/29929/xamarin-now-comes-free-with-visual-studio',
20 => 'https://web.archive.org/web/20160402173444/http://techreport.com/news/29929/xamarin-now-comes-free-with-visual-studio',
21 => 'https://github.com/mono/mono/blob/master/PATENTS.TXT',
22 => 'https://web.archive.org/web/20160416133644/https://github.com/mono/mono/blob/master/PATENTS.TXT',
23 => 'https://web.archive.org/web/20160412072728/https://blog.xamarin.com/xamarin-for-all/',
24 => 'https://blog.xamarin.com/xamarin-for-all/',
25 => 'https://web.archive.org/web/20181215163944/https://blogs.windows.com/buildingapps/2018/12/04/announcing-open-source-of-wpf-windows-forms-and-winui-at-microsoft-connect-2018/',
26 => 'https://blogs.windows.com/buildingapps/2018/12/04/announcing-open-source-of-wpf-windows-forms-and-winui-at-microsoft-connect-2018/',
27 => 'https://docs.microsoft.com/en-us/dotnet/framework/net-native/',
28 => 'https://web.archive.org/web/20171203082710/https://docs.microsoft.com/en-us/dotnet/framework/net-native/',
29 => 'https://msdn.microsoft.com/netframework/aa569603.aspx',
30 => 'https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md',
31 => 'https://web.archive.org/web/20160519180849/https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md',
32 => 'http://www.hanselman.com/blog/AnUpdateOnASPNETCore10RC2.aspx',
33 => 'https://nuget.org',
34 => 'https://web.archive.org/web/20210221070142/https://www.nuget.org/',
35 => 'https://msdn.microsoft.com/en-us/library/x0w2664k.aspx',
36 => 'https://web.archive.org/web/20141022111729/http://msdn.microsoft.com/en-us/library/x0w2664k.aspx',
37 => 'https://channel9.msdn.com/shows/Going+Deep/Scott-Guthrie-Silverlight-and-the-Cross-Platform-CLR',
38 => 'https://www.webcitation.org/6XHacUsDc?url=http://channel9.msdn.com/shows/Going+Deep/Scott-Guthrie-Silverlight-and-the-Cross-Platform-CLR',
39 => 'https://web.archive.org/web/20080614092650/http://www.ecma-international.org/publications/standards/Ecma-335.htm',
40 => 'http://standards.iso.org/ittf/PubliclyAvailableStandards/c042927_ISO_IEC_23271_2006(E)_Software.zip',
41 => 'https://web.archive.org/web/20180701142510/http://standards.iso.org/ittf/PubliclyAvailableStandards/c042927_ISO_IEC_23271_2006(E)_Software.zip',
42 => 'http://www.ecma-international.org/publications/techreports/E-TR-084.htm',
43 => 'https://www.webcitation.org/6XHagdtvH?url=http://www.ecma-international.org/publications/techreports/E-TR-084.htm',
44 => 'https://web.archive.org/web/20080810165757/http://www.ecma-international.org/publications/standards/Ecma-372.htm',
45 => 'http://www.ecma-international.org/publications/standards/Ecma-372.htm',
46 => 'https://web.archive.org/web/20161122154356/http://www.labri.fr/perso/fleury/download/papers/binary_analysis/cifuentes-thesis.pdf',
47 => 'http://www.labri.fr/perso/fleury/download/papers/binary_analysis/cifuentes-thesis.pdf',
48 => 'https://web.archive.org/web/20070703083608/http://msdn.microsoft.com/msdnmag/issues/1100/GCI/',
49 => 'https://msdn.microsoft.com/msdnmag/issues/1100/GCI/',
50 => 'https://web.archive.org/web/20080525165023/http://www.csharphelp.com/archives2/archive297.html',
51 => 'http://www.csharphelp.com/archives2/archive297.html',
52 => 'https://blogs.msdn.microsoft.com/dotnet/2012/07/20/the-net-framework-4-5-includes-new-garbage-collector-enhancements-for-client-and-server-apps/',
53 => 'https://web.archive.org/web/20070626080134/http://msdn.microsoft.com/msdnmag/issues/1200/GCI2/default.aspx',
54 => 'https://msdn.microsoft.com/msdnmag/issues/1200/GCI2/default.aspx',
55 => 'http://blogs.telerik.com/justteam/posts/13-05-28/understanding-net-just-in-time-compilation',
56 => 'https://web.archive.org/web/20130611052214/http://blogs.telerik.com/justteam/posts/13-05-28/understanding-net-just-in-time-compilation',
57 => 'https://msdn.microsoft.com/en-us/library/ht8ecch6(v=vs.90).aspx',
58 => 'https://web.archive.org/web/20150419013531/https://msdn.microsoft.com/en-us/library/ht8ecch6(v=vs.90).aspx',
59 => 'https://www.red-gate.com/simple-talk/dotnet/net-framework/understanding-garbage-collection-in-net/',
60 => 'http://www.mono-project.com/docs/about-mono/releases/2.2.0/',
61 => 'http://tirania.org/blog/archive/2008/Nov-03.html',
62 => 'https://web.archive.org/web/20101104173338/http://tirania.org/blog/archive/2008/Nov-03.html',
63 => 'http://www.christec.co.nz/blog/archives/317',
64 => 'https://www.codeplex.com/crossnet',
65 => 'https://web.archive.org/web/20100125035452/http://www.codeplex.com/crossnet',
66 => 'https://msdn.microsoft.com/en-us/library/ms994405.aspx',
67 => 'https://web.archive.org/web/20150402161923/https://msdn.microsoft.com/en-us/library/ms994405.aspx',
68 => 'https://blogs.msdn.microsoft.com/dotnet/2012/08/15/announcing-the-release-of-net-framework-4-5-rtm-product-and-source-code/',
69 => 'https://web.archive.org/web/20161004153213/https://blogs.msdn.microsoft.com/dotnet/2012/08/15/announcing-the-release-of-net-framework-4-5-rtm-product-and-source-code/',
70 => 'https://blogs.msdn.microsoft.com/dotnet/2014/11/12/announcing-net-2015-preview-a-new-era-for-net/',
71 => 'https://web.archive.org/web/20160819154819/https://blogs.msdn.microsoft.com/dotnet/2014/11/12/announcing-net-2015-preview-a-new-era-for-net/',
72 => 'https://web.archive.org/web/20150217191151/https://www.dotnetfoundation.org/netcore5',
73 => 'https://www.dotnetfoundation.org/netcore5',
74 => 'https://web.archive.org/web/20150217191241/https://www.dotnetfoundation.org/dotnet-micro-framework',
75 => 'https://www.dotnetfoundation.org/dotnet-micro-framework',
76 => 'https://github.com/dotnet/roslyn/blob/master/License.txt',
77 => 'https://web.archive.org/web/20180324160854/https://github.com/dotnet/roslyn/blob/master/License.txt',
78 => 'https://web.archive.org/web/20150217190307/https://www.dotnetfoundation.org/aspnet-4',
79 => 'https://www.dotnetfoundation.org/aspnet-4',
80 => 'https://github.com/aspnet/Home/blob/master/LICENSE.txt',
81 => 'https://web.archive.org/web/20210221070142/https://github.com/dotnet/aspnetcore/blob/main/LICENSE.txt',
82 => 'https://web.archive.org/web/20150217201242/https://www.dotnetfoundation.org/aspnet-ajax',
83 => 'https://www.dotnetfoundation.org/aspnet-ajax',
84 => 'https://web.archive.org/web/20150217191338/https://www.dotnetfoundation.org/asp.net-signalr',
85 => 'https://www.dotnetfoundation.org/asp.net-signalr',
86 => 'https://web.archive.org/web/20160418163228/http://www.dotnetfoundation.org/entity-framework',
87 => 'https://www.dotnetfoundation.org/entity-framework',
88 => 'https://web.archive.org/web/20150217200934/https://www.dotnetfoundation.org/nuget',
89 => 'https://www.dotnetfoundation.org/nuget',
90 => 'https://www.wikidata.org/wiki/Q5289?uselang=en#P856',
91 => 'https://www.wikidata.org/wiki/Q5289#identifiers',
92 => 'https://dotnet.microsoft.com/',
93 => 'https://msdn.microsoft.com/en-us/library/zw4w595w.aspx',
94 => 'https://github.com/Microsoft/dotnet',
95 => 'https://viaf.org/viaf/3150170462800011322',
96 => 'https://www.worldcat.org/identities/containsVIAFID/3150170462800011322',
97 => 'https://id.loc.gov/authorities/names/n2017043838',
98 => 'https://academic.microsoft.com/v2/detail/523747234'
] |
Links in the page, before the edit (old_links ) | [
0 => 'http://blogs.telerik.com/justteam/posts/13-05-28/understanding-net-just-in-time-compilation',
1 => 'http://standards.iso.org/ittf/PubliclyAvailableStandards/c042927_ISO_IEC_23271_2006(E)_Software.zip',
2 => 'http://techreport.com/news/29929/xamarin-now-comes-free-with-visual-studio',
3 => 'http://tirania.org/blog/archive/2008/Nov-03.html',
4 => 'http://weblogs.asp.net/scottgu/releasing-the-source-code-for-the-net-framework-libraries',
5 => 'http://www.christec.co.nz/blog/archives/317',
6 => 'http://www.csharphelp.com/archives2/archive297.html',
7 => 'http://www.ecma-international.org/publications/standards/Ecma-335.htm',
8 => 'http://www.ecma-international.org/publications/standards/Ecma-334.htm',
9 => 'http://www.ecma-international.org/publications/techreports/E-TR-084.htm',
10 => 'http://www.ecma-international.org/publications/standards/Ecma-372.htm',
11 => 'http://www.fsf.org/news/2009-07-mscp-mono',
12 => 'http://www.hanselman.com/blog/AnUpdateOnASPNETCore10RC2.aspx',
13 => 'http://www.infoworld.com/article/3050732/microsoft-windows/xamarins-mono-runtime-gets-a-looser-license.html',
14 => 'http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=58046',
15 => 'http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=42926',
16 => 'http://www.labri.fr/perso/fleury/download/papers/binary_analysis/cifuentes-thesis.pdf',
17 => 'http://www.mono-project.com/docs/about-mono/releases/2.2.0/',
18 => 'https://academic.microsoft.com/v2/detail/523747234',
19 => 'https://blog.xamarin.com/xamarin-for-all/',
20 => 'https://blogs.msdn.microsoft.com/dotnet/2012/07/20/the-net-framework-4-5-includes-new-garbage-collector-enhancements-for-client-and-server-apps/',
21 => 'https://blogs.msdn.microsoft.com/dotnet/2012/08/15/announcing-the-release-of-net-framework-4-5-rtm-product-and-source-code/',
22 => 'https://blogs.msdn.microsoft.com/dotnet/2014/11/12/announcing-net-2015-preview-a-new-era-for-net/',
23 => 'https://blogs.windows.com/buildingapps/2018/12/04/announcing-open-source-of-wpf-windows-forms-and-winui-at-microsoft-connect-2018/',
24 => 'https://channel9.msdn.com/shows/Going+Deep/Scott-Guthrie-Silverlight-and-the-Cross-Platform-CLR',
25 => 'https://docs.microsoft.com/en-us/dotnet/framework/net-native/',
26 => 'https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/versions-and-dependencies',
27 => 'https://dotnet.microsoft.com/',
28 => 'https://dotnet.microsoft.com/download/thank-you/net48-offline',
29 => 'https://github.com/Microsoft/dotnet',
30 => 'https://github.com/aspnet/Home/blob/master/LICENSE.txt',
31 => 'https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md',
32 => 'https://github.com/dotnet/corefx/blob/master/PATENTS.TXT',
33 => 'https://github.com/dotnet/roslyn/blob/master/License.txt',
34 => 'https://github.com/mono/mono/blob/master/PATENTS.TXT',
35 => 'https://id.loc.gov/authorities/names/n2017043838',
36 => 'https://msdn.microsoft.com/en-us/library/x0w2664k.aspx',
37 => 'https://msdn.microsoft.com/en-us/library/ht8ecch6(v=vs.90).aspx',
38 => 'https://msdn.microsoft.com/en-us/library/ms994405.aspx',
39 => 'https://msdn.microsoft.com/en-us/library/zw4w595w.aspx',
40 => 'https://msdn.microsoft.com/msdnmag/issues/1100/GCI/',
41 => 'https://msdn.microsoft.com/msdnmag/issues/1200/GCI2/default.aspx',
42 => 'https://msdn.microsoft.com/netframework/aa569603.aspx',
43 => 'https://nuget.org',
44 => 'https://opensource.com/business/14/11/microsoft-dot-net-empower-open-source-communities',
45 => 'https://viaf.org/viaf/3150170462800011322',
46 => 'https://web.archive.org/web/20070626080134/http://msdn.microsoft.com/msdnmag/issues/1200/GCI2/default.aspx',
47 => 'https://web.archive.org/web/20070703083608/http://msdn.microsoft.com/msdnmag/issues/1100/GCI/',
48 => 'https://web.archive.org/web/20080525165023/http://www.csharphelp.com/archives2/archive297.html',
49 => 'https://web.archive.org/web/20080614092650/http://www.ecma-international.org/publications/standards/Ecma-335.htm',
50 => 'https://web.archive.org/web/20080810165757/http://www.ecma-international.org/publications/standards/Ecma-372.htm',
51 => 'https://web.archive.org/web/20090819101829/http://www.fsf.org/news/2009-07-mscp-mono/',
52 => 'https://web.archive.org/web/20100125035452/http://www.codeplex.com/crossnet',
53 => 'https://web.archive.org/web/20100907233621/http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx',
54 => 'https://web.archive.org/web/20101031042906/http://www.ecma-international.org/publications/standards/Ecma-334.htm',
55 => 'https://web.archive.org/web/20101104173338/http://tirania.org/blog/archive/2008/Nov-03.html',
56 => 'https://web.archive.org/web/20101206152217/http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=42926',
57 => 'https://web.archive.org/web/20130611052214/http://blogs.telerik.com/justteam/posts/13-05-28/understanding-net-just-in-time-compilation',
58 => 'https://web.archive.org/web/20141022111729/http://msdn.microsoft.com/en-us/library/x0w2664k.aspx',
59 => 'https://web.archive.org/web/20150217190307/https://www.dotnetfoundation.org/aspnet-4',
60 => 'https://web.archive.org/web/20150217191151/https://www.dotnetfoundation.org/netcore5',
61 => 'https://web.archive.org/web/20150217191241/https://www.dotnetfoundation.org/dotnet-micro-framework',
62 => 'https://web.archive.org/web/20150217191338/https://www.dotnetfoundation.org/asp.net-signalr',
63 => 'https://web.archive.org/web/20150217200934/https://www.dotnetfoundation.org/nuget',
64 => 'https://web.archive.org/web/20150217201242/https://www.dotnetfoundation.org/aspnet-ajax',
65 => 'https://web.archive.org/web/20150402161923/https://msdn.microsoft.com/en-us/library/ms994405.aspx',
66 => 'https://web.archive.org/web/20150419013531/https://msdn.microsoft.com/en-us/library/ht8ecch6(v=vs.90).aspx',
67 => 'https://web.archive.org/web/20160402173444/http://techreport.com/news/29929/xamarin-now-comes-free-with-visual-studio',
68 => 'https://web.archive.org/web/20160412072728/https://blog.xamarin.com/xamarin-for-all/',
69 => 'https://web.archive.org/web/20160416133644/https://github.com/mono/mono/blob/master/PATENTS.TXT',
70 => 'https://web.archive.org/web/20160418163228/http://www.dotnetfoundation.org/entity-framework',
71 => 'https://web.archive.org/web/20160519180849/https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md',
72 => 'https://web.archive.org/web/20160819154819/https://blogs.msdn.microsoft.com/dotnet/2014/11/12/announcing-net-2015-preview-a-new-era-for-net/',
73 => 'https://web.archive.org/web/20161004153213/https://blogs.msdn.microsoft.com/dotnet/2012/08/15/announcing-the-release-of-net-framework-4-5-rtm-product-and-source-code/',
74 => 'https://web.archive.org/web/20161122154356/http://www.labri.fr/perso/fleury/download/papers/binary_analysis/cifuentes-thesis.pdf',
75 => 'https://web.archive.org/web/20171203082710/https://docs.microsoft.com/en-us/dotnet/framework/net-native/',
76 => 'https://web.archive.org/web/20180324160854/https://github.com/dotnet/roslyn/blob/master/License.txt',
77 => 'https://web.archive.org/web/20180701142510/http://standards.iso.org/ittf/PubliclyAvailableStandards/c042927_ISO_IEC_23271_2006(E)_Software.zip',
78 => 'https://web.archive.org/web/20181215163944/https://blogs.windows.com/buildingapps/2018/12/04/announcing-open-source-of-wpf-windows-forms-and-winui-at-microsoft-connect-2018/',
79 => 'https://web.archive.org/web/20190815224743/https://dotnet.microsoft.com/download/thank-you/net48-offline',
80 => 'https://web.archive.org/web/20210221070138/https://github.com/dotnet/corefx/blob/master/PATENTS.TXT',
81 => 'https://web.archive.org/web/20210221070142/https://www.nuget.org/',
82 => 'https://web.archive.org/web/20210221070142/https://github.com/dotnet/aspnetcore/blob/main/LICENSE.txt',
83 => 'https://weblogs.asp.net/scottgu/net-framework-library-source-code-now-available',
84 => 'https://www.codeplex.com/crossnet',
85 => 'https://www.dotnetfoundation.org/asp.net-signalr',
86 => 'https://www.dotnetfoundation.org/aspnet-4',
87 => 'https://www.dotnetfoundation.org/aspnet-ajax',
88 => 'https://www.dotnetfoundation.org/dotnet-micro-framework',
89 => 'https://www.dotnetfoundation.org/entity-framework',
90 => 'https://www.dotnetfoundation.org/netcore5',
91 => 'https://www.dotnetfoundation.org/nuget',
92 => 'https://www.red-gate.com/simple-talk/dotnet/net-framework/understanding-garbage-collection-in-net/',
93 => 'https://www.webcitation.org/6HfXxFXH8?url=http://www.ecma-international.org/publications/standards/Ecma-335.htm',
94 => 'https://www.webcitation.org/6XHacUsDc?url=http://channel9.msdn.com/shows/Going+Deep/Scott-Guthrie-Silverlight-and-the-Cross-Platform-CLR',
95 => 'https://www.webcitation.org/6XHagdtvH?url=http://www.ecma-international.org/publications/techreports/E-TR-084.htm',
96 => 'https://www.wikidata.org/wiki/Q5289#identifiers',
97 => 'https://www.wikidata.org/wiki/Q5289?uselang=en#P856',
98 => 'https://www.worldcat.org/identities/containsVIAFID/3150170462800011322'
] |
Parsed HTML source of the new revision (new_html ) | '<div class="mw-parser-output"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">Software platform developed by Microsoft</div>
<style data-mw-deduplicate="TemplateStyles:r1033289096">.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}</style><div role="note" class="hatnote navigation-not-searchable">For the newer cross-platform framework, see <a href="/enwiki/wiki/.NET" title=".NET">.NET</a>. For other uses, see <a href="/enwiki/wiki/.net_(disambiguation)" class="mw-disambig" title=".net (disambiguation)">.net (disambiguation)</a>.</div>
<p class="mw-empty-elt">
</p>
<style data-mw-deduplicate="TemplateStyles:r1048617464">.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}</style><table class="infobox vevent"><caption class="infobox-title summary">.NET Framework</caption><tbody><tr><td colspan="2" class="infobox-image"><a href="/enwiki/wiki/File:.NET_Logo.svg" class="image"><img alt=".NET Logo.svg" src="/upwiki/wikipedia/commons/thumb/a/a3/.NET_Logo.svg/120px-.NET_Logo.svg.png" decoding="async" width="120" height="120" srcset="/upwiki/wikipedia/commons/thumb/a/a3/.NET_Logo.svg/180px-.NET_Logo.svg.png 1.5x, /upwiki/wikipedia/commons/thumb/a/a3/.NET_Logo.svg/240px-.NET_Logo.svg.png 2x" data-file-width="456" data-file-height="456" /></a></td></tr><tr><td colspan="2" class="infobox-image"><a href="/enwiki/wiki/File:DotNet.svg" class="image"><img alt="DotNet.svg" src="/upwiki/wikipedia/commons/thumb/d/d3/DotNet.svg/300px-DotNet.svg.png" decoding="async" width="300" height="400" srcset="/upwiki/wikipedia/commons/thumb/d/d3/DotNet.svg/450px-DotNet.svg.png 1.5x, /upwiki/wikipedia/commons/thumb/d/d3/DotNet.svg/600px-DotNet.svg.png 2x" data-file-width="900" data-file-height="1200" /></a><div class="infobox-caption">.NET Framework component stack</div></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/enwiki/wiki/Programmer" title="Programmer">Developer(s)</a></th><td class="infobox-data"><a href="/enwiki/wiki/Microsoft" title="Microsoft">Microsoft</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Initial release</th><td class="infobox-data">February 14, 2002<span class="noprint">; 19 years ago</span><span style="display:none"> (<span class="bday dtstart published updated">2002-02-14</span>)</span></td></tr><tr style="display: none;"><td colspan="2" class="infobox-full-data"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1048617464"/></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/enwiki/wiki/Software_release_life_cycle" title="Software release life cycle">Final release</a></th><td class="infobox-data"><div style="margin:0px;">4.8.0 Build 3928
/ July 25, 2019<span class="noprint">; 2 years ago</span><span style="display:none"> (<span class="bday dtstart published updated">2019-07-25</span>)</span><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup></div></td></tr><tr style="display:none"><td colspan="2">
</td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/enwiki/wiki/Operating_system" title="Operating system">Operating system</a></th><td class="infobox-data"><a href="/enwiki/wiki/Windows_98" title="Windows 98">Windows 98</a> or later, <a href="/enwiki/wiki/Windows_NT_4.0" title="Windows NT 4.0">Windows NT 4.0</a> or later</td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/enwiki/wiki/Computing_platform" title="Computing platform">Platform</a></th><td class="infobox-data"><a href="/enwiki/wiki/IA-32" title="IA-32">IA-32</a>, <a href="/enwiki/wiki/X86-64" title="X86-64">x86-64</a>, and <a href="/enwiki/wiki/ARM_architecture" title="ARM architecture">ARM</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Successor</th><td class="infobox-data"><a href="/enwiki/wiki/.NET" title=".NET">.NET</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/enwiki/wiki/Software_categories#Categorization_approaches" title="Software categories">Type</a></th><td class="infobox-data"><a href="/enwiki/wiki/Software_framework" title="Software framework">Software framework</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/enwiki/wiki/Software_license" title="Software license">License</a></th><td class="infobox-data">Mixed; see <a href="#Licensing">§ Licensing</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Website</th><td class="infobox-data"><span class="url"><a rel="nofollow" class="external text" href="https://dotnet.microsoft.com/">dotnet<wbr />.microsoft<wbr />.com</a></span> <span class="penicon autoconfirmed-show"><a href="https://www.wikidata.org/wiki/Q5289?uselang=en#P856" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="/upwiki/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" style="vertical-align: text-top" srcset="/upwiki/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, /upwiki/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span></td></tr></tbody></table>
<p>The <b>.NET Framework</b> (pronounced as "<i>dot net"</i>) is a <a href="/enwiki/wiki/Software_framework" title="Software framework">software framework</a> developed by <a href="/enwiki/wiki/Microsoft" title="Microsoft">Microsoft</a> that runs primarily on <a href="/enwiki/wiki/Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a>. It includes a large <a href="/enwiki/wiki/Class_library" class="mw-redirect" title="Class library">class library</a> called <a href="/enwiki/wiki/Framework_Class_Library" title="Framework Class Library">Framework Class Library</a> (FCL) and provides <a href="/enwiki/wiki/Language_interoperability" title="Language interoperability">language interoperability</a> (each language can use code written in other languages) across several <a href="/enwiki/wiki/Programming_language" title="Programming language">programming languages</a>. Programs written for .NET Framework execute in a <a href="/enwiki/wiki/Software" title="Software">software</a> environment (in contrast to a <a href="/enwiki/wiki/Computer_hardware" title="Computer hardware">hardware</a> environment) named the <a href="/enwiki/wiki/Common_Language_Runtime" title="Common Language Runtime">Common Language Runtime</a> (CLR). The CLR is an <a href="/enwiki/wiki/Process_virtual_machine" class="mw-redirect" title="Process virtual machine">application virtual machine</a> that provides services such as security, <a href="/enwiki/wiki/Memory_management" title="Memory management">memory management</a>, and <a href="/enwiki/wiki/Exception_handling" title="Exception handling">exception handling</a>. As such, computer code written using .NET Framework is called "<a href="/enwiki/wiki/Managed_code" title="Managed code">managed code</a>". FCL and CLR together constitute the .NET Framework.
</p><p>FCL provides the <a href="/enwiki/wiki/User_interface" title="User interface">user interface</a>, <a href="/enwiki/wiki/Data_access" title="Data access">data access</a>, <a href="/enwiki/wiki/Database_connection" title="Database connection">database connectivity</a>, <a href="/enwiki/wiki/Cryptography" title="Cryptography">cryptography</a>, <a href="/enwiki/wiki/Web_application" title="Web application">web application</a> development, numeric <a href="/enwiki/wiki/Algorithm" title="Algorithm">algorithms</a>, and <a href="/enwiki/wiki/Computer_networking" class="mw-redirect" title="Computer networking">network communications</a>. Programmers produce software by combining their <a href="/enwiki/wiki/Source_code" title="Source code">source code</a> with .NET Framework and other libraries. The framework is intended to be used by most new applications created for the Windows platform. Microsoft also produces an <a href="/enwiki/wiki/Integrated_development_environment" title="Integrated development environment">integrated development environment</a> for .NET software called <a href="/enwiki/wiki/Microsoft_Visual_Studio" title="Microsoft Visual Studio">Visual Studio</a>.
</p><p>.NET Framework began as <a href="/enwiki/wiki/Proprietary_software" title="Proprietary software">proprietary software</a>, although the firm worked to <a href="/enwiki/wiki/Software_standard" title="Software standard">standardize</a> the software stack almost immediately, even before its first release. Despite the standardization efforts, developers, mainly those in the <a href="/enwiki/wiki/Free_and_open-source_software" title="Free and open-source software">free and open-source software</a> communities, expressed their unease with the selected terms and the prospects of any free and open-source implementation, especially regarding <a href="/enwiki/wiki/Software_patent" title="Software patent">software patents</a>. Since then, Microsoft has changed .NET development to more closely follow a contemporary model of a community-developed software project, including issuing an update to its patent promising to address the concerns.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2">[2]</a></sup>
</p><p>In April 2019, Microsoft released .NET Framework 4.8, the last version of the framework as a proprietary offering. Only monthly security and reliability bug fixes to that version have been released since then. No further changes to that version are planned.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3">[3]</a></sup>
</p>
<div id="toc" class="toc" role="navigation" aria-labelledby="mw-toc-heading"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none" /><div class="toctitle" lang="en" dir="ltr"><h2 id="mw-toc-heading">Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#History"><span class="tocnumber">1</span> <span class="toctext">History</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#Architecture"><span class="tocnumber">2</span> <span class="toctext">Architecture</span></a>
<ul>
<li class="toclevel-2 tocsection-3"><a href="#Common_Language_Infrastructure"><span class="tocnumber">2.1</span> <span class="toctext">Common Language Infrastructure</span></a></li>
<li class="toclevel-2 tocsection-4"><a href="#Common_Language_Runtime"><span class="tocnumber">2.2</span> <span class="toctext">Common Language Runtime</span></a></li>
<li class="toclevel-2 tocsection-5"><a href="#Assemblies"><span class="tocnumber">2.3</span> <span class="toctext">Assemblies</span></a></li>
<li class="toclevel-2 tocsection-6"><a href="#Class_library"><span class="tocnumber">2.4</span> <span class="toctext">Class library</span></a></li>
<li class="toclevel-2 tocsection-7"><a href="#C++/CLI"><span class="tocnumber">2.5</span> <span class="toctext">C++/CLI</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-8"><a href="#Design_principle"><span class="tocnumber">3</span> <span class="toctext">Design principle</span></a>
<ul>
<li class="toclevel-2 tocsection-9"><a href="#Interoperability"><span class="tocnumber">3.1</span> <span class="toctext">Interoperability</span></a></li>
<li class="toclevel-2 tocsection-10"><a href="#Language_independence"><span class="tocnumber">3.2</span> <span class="toctext">Language independence</span></a></li>
<li class="toclevel-2 tocsection-11"><a href="#Type_safety"><span class="tocnumber">3.3</span> <span class="toctext">Type safety</span></a></li>
<li class="toclevel-2 tocsection-12"><a href="#Portability"><span class="tocnumber">3.4</span> <span class="toctext">Portability</span></a></li>
<li class="toclevel-2 tocsection-13"><a href="#Security"><span class="tocnumber">3.5</span> <span class="toctext">Security</span></a></li>
<li class="toclevel-2 tocsection-14"><a href="#Memory_management"><span class="tocnumber">3.6</span> <span class="toctext">Memory management</span></a></li>
<li class="toclevel-2 tocsection-15"><a href="#Performance"><span class="tocnumber">3.7</span> <span class="toctext">Performance</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-16"><a href="#Alternative_implementations"><span class="tocnumber">4</span> <span class="toctext">Alternative implementations</span></a></li>
<li class="toclevel-1 tocsection-17"><a href="#Licensing"><span class="tocnumber">5</span> <span class="toctext">Licensing</span></a></li>
<li class="toclevel-1 tocsection-18"><a href="#See_also"><span class="tocnumber">6</span> <span class="toctext">See also</span></a></li>
<li class="toclevel-1 tocsection-19"><a href="#Notes"><span class="tocnumber">7</span> <span class="toctext">Notes</span></a></li>
<li class="toclevel-1 tocsection-20"><a href="#References"><span class="tocnumber">8</span> <span class="toctext">References</span></a></li>
<li class="toclevel-1 tocsection-21"><a href="#External_links"><span class="tocnumber">9</span> <span class="toctext">External links</span></a></li>
</ul>
</div>
<h2><span class="mw-headline" id="History">History</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/enwiki/w/index.php?title=.NET_Framework&action=edit&section=1" title="Edit section: History">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1033289096"/><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/enwiki/wiki/.NET_Framework_version_history" title=".NET Framework version history">.NET Framework version history</a></div>
<p>Microsoft began developing .NET Framework in the late 1990s, originally under the name of Next Generation Windows Services (NGWS), as part of the <a href="/enwiki/wiki/.NET_strategy" class="mw-redirect" title=".NET strategy">.NET strategy</a>. By early 2000, the first beta versions of .NET 1.0 were released.
</p><p>In August 2000, <a href="/enwiki/wiki/Microsoft" title="Microsoft">Microsoft</a>, and <a href="/enwiki/wiki/Intel" title="Intel">Intel</a> worked to standardize <a href="/enwiki/wiki/Common_Language_Infrastructure" title="Common Language Infrastructure">Common Language Infrastructure</a> (CLI) and <a href="/enwiki/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a>. By December 2001, both were ratified <a href="/enwiki/wiki/Ecma_International" title="Ecma International">Ecma International</a> (ECMA) standards.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4">[4]</a></sup><sup id="cite_ref-5" class="reference"><a href="#cite_note-5">[5]</a></sup> <a href="/enwiki/wiki/International_Organization_for_Standardization" title="International Organization for Standardization">International Organization for Standardization</a> (ISO) followed in April 2003. The current version of ISO standards are ISO/IEC 23271:2012 and ISO/IEC 23270:2006.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6">[6]</a></sup><sup id="cite_ref-7" class="reference"><a href="#cite_note-7">[7]</a></sup>
</p><p>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 "<a href="/enwiki/wiki/Reasonable_and_non-discriminatory_licensing" title="Reasonable and non-discriminatory licensing">reasonable and non-discriminatory terms</a>". The firms agreed to meet these terms, and to make the patents available royalty-free. However, this did not apply for the part of .NET Framework not covered by ECMA-ISO standards, which included <a href="/enwiki/wiki/Windows_Forms" title="Windows Forms">Windows Forms</a>, <a href="/enwiki/wiki/ADO.NET" title="ADO.NET">ADO.NET</a>, and <a href="/enwiki/wiki/ASP.NET" title="ASP.NET">ASP.NET</a>. Patents that Microsoft holds in these areas may have deterred non-Microsoft implementations of the full framework.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8">[8]</a></sup>
</p><p>On October 3, 2007, Microsoft announced that the <a href="/enwiki/wiki/Source_code" title="Source code">source code</a> for .NET Framework 3.5 libraries was to become available under the <a href="/enwiki/wiki/Microsoft_Reference_Source_License" class="mw-redirect" title="Microsoft Reference Source License">Microsoft Reference Source License</a> (Ms-RSL<sup id="cite_ref-Ms-RSL-dab_9-0" class="reference"><a href="#cite_note-Ms-RSL-dab-9">[a]</a></sup>).<sup id="cite_ref-sourcerelease_10-0" class="reference"><a href="#cite_note-sourcerelease-10">[9]</a></sup> The source code repository became available online on January 16, 2008 and included BCL, ASP.NET, ADO.NET, Windows Forms, WPF, and XML. <a href="/enwiki/wiki/Scott_Guthrie" title="Scott Guthrie">Scott Guthrie</a> of Microsoft promised that LINQ, WCF, and WF libraries were being added.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11">[10]</a></sup>
</p><p>The <a href="/enwiki/wiki/.NET_Compact_Framework" title=".NET Compact Framework">.NET Compact Framework</a> and <a href="/enwiki/wiki/.NET_Micro_Framework" title=".NET Micro Framework">.NET Micro Framework</a> variants of the .NET Framework provided support for other Microsoft platforms such as <a href="/enwiki/wiki/Windows_Mobile" title="Windows Mobile">Windows Mobile</a>, <a href="/enwiki/wiki/Windows_CE" class="mw-redirect" title="Windows CE">Windows CE</a> and other resource-constrained embedded devices. <a href="/enwiki/wiki/Silverlight" class="mw-redirect" title="Silverlight">Silverlight</a> provided support for <a href="/enwiki/wiki/Web_browser" title="Web browser">web browsers</a> via plug-ins.
</p>
<div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="/enwiki/wiki/File:Microsoft_.NET_Framework_v4.5_logo.png" class="image"><img alt="" src="/upwiki/wikipedia/en/thumb/0/0d/Microsoft_.NET_Framework_v4.5_logo.png/220px-Microsoft_.NET_Framework_v4.5_logo.png" decoding="async" width="220" height="54" class="thumbimage" srcset="/upwiki/wikipedia/en/0/0d/Microsoft_.NET_Framework_v4.5_logo.png 1.5x" data-file-width="328" data-file-height="81" /></a> <div class="thumbcaption"><div class="magnify"><a href="/enwiki/wiki/File:Microsoft_.NET_Framework_v4.5_logo.png" class="internal" title="Enlarge"></a></div>Microsoft .NET Framework v4.5 logo</div></div></div>
<p>In November 2014, Microsoft also produced an update to its patent grants, which further extends the scope beyond its prior pledges. Prior projects like <a href="/enwiki/wiki/Mono_(software)" title="Mono (software)">Mono</a> existed in a legal <a href="/enwiki/wiki/Loophole" title="Loophole">grey area</a> 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.<sup id="cite_ref-dotnet-patent-promise_12-0" class="reference"><a href="#cite_note-dotnet-patent-promise-12">[11]</a></sup>
</p><p>On March 31, 2016, Microsoft announced at <a href="/enwiki/wiki/Build_(developer_conference)" title="Build (developer conference)">Microsoft Build</a> that they will completely <a href="/enwiki/wiki/Software_relicensing" title="Software relicensing">relicense</a> Mono under an <a href="/enwiki/wiki/MIT_License" title="MIT License">MIT License</a> even in scenarios where formerly a commercial license was needed.<sup id="cite_ref-13" class="reference"><a href="#cite_note-13">[12]</a></sup> 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."<sup id="cite_ref-Ferraira1_14-0" class="reference"><a href="#cite_note-Ferraira1-14">[13]</a></sup><sup id="cite_ref-Microsoft_PP_Mono_15-0" class="reference"><a href="#cite_note-Microsoft_PP_Mono-15">[14]</a></sup> It was announced that the Mono Project was contributed to the .NET Foundation. These developments followed the acquisition of <a href="/enwiki/wiki/Xamarin" title="Xamarin">Xamarin</a>, which began in February 2016 and was finished on March 18, 2016.<sup id="cite_ref-Friedman2_16-0" class="reference"><a href="#cite_note-Friedman2-16">[15]</a></sup>
</p><p>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.<sup id="cite_ref-ms-wpf-winforms-oss_17-0" class="reference"><a href="#cite_note-ms-wpf-winforms-oss-17">[16]</a></sup>
</p>
<h2><span class="mw-headline" id="Architecture">Architecture</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/enwiki/w/index.php?title=.NET_Framework&action=edit&section=2" title="Edit section: Architecture">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
<div class="thumb tright"><div class="thumbinner" style="width:332px;"><a href="/enwiki/wiki/File:Overview_of_the_Common_Language_Infrastructure.svg" class="image"><img alt="" src="/upwiki/wikipedia/commons/thumb/8/85/Overview_of_the_Common_Language_Infrastructure.svg/330px-Overview_of_the_Common_Language_Infrastructure.svg.png" decoding="async" width="330" height="381" class="thumbimage" srcset="/upwiki/wikipedia/commons/thumb/8/85/Overview_of_the_Common_Language_Infrastructure.svg/495px-Overview_of_the_Common_Language_Infrastructure.svg.png 1.5x, /upwiki/wikipedia/commons/thumb/8/85/Overview_of_the_Common_Language_Infrastructure.svg/660px-Overview_of_the_Common_Language_Infrastructure.svg.png 2x" data-file-width="520" data-file-height="600" /></a> <div class="thumbcaption"><div class="magnify"><a href="/enwiki/wiki/File:Overview_of_the_Common_Language_Infrastructure.svg" class="internal" title="Enlarge"></a></div>Visual overview of the Common Language Infrastructure (CLI)</div></div></div>
<h3><span class="mw-headline" id="Common_Language_Infrastructure">Common Language Infrastructure</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/enwiki/w/index.php?title=.NET_Framework&action=edit&section=3" title="Edit section: Common Language Infrastructure">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1033289096"/><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/enwiki/wiki/Common_Language_Infrastructure" title="Common Language Infrastructure">Common Language Infrastructure</a></div>
<p>Common Language Infrastructure (CLI) provides a language-neutral platform for application development and execution. By implementing the core aspects of .NET Framework within the scope of CLI, these functions will not be tied to one language but will be available across the many languages supported by the framework.
</p>
<h3><span class="mw-headline" id="Common_Language_Runtime">Common Language Runtime</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/enwiki/w/index.php?title=.NET_Framework&action=edit&section=4" title="Edit section: Common Language Runtime">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1033289096"/><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/enwiki/wiki/Common_Language_Runtime" title="Common Language Runtime">Common Language Runtime</a></div>
<p>.NET Framework includes the Common Language Runtime (CLR). It serves as the execution engine of .NET Framework and offers many services such as <a href="/enwiki/wiki/Memory_management" title="Memory management">memory management</a>, <a href="/enwiki/wiki/Type_safety" title="Type safety">type safety</a>, <a href="/enwiki/wiki/Exception_handling" title="Exception handling">exception handling</a>, <a href="/enwiki/wiki/Garbage_collection_(computer_science)" title="Garbage collection (computer science)">garbage collection</a>, security and <a href="/enwiki/wiki/Thread_management" class="mw-redirect" title="Thread management">thread management</a>. All programs written for .NET Framework are executed by the CLR.
</p><p>Programs written for .NET Framework are compiled into <a href="/enwiki/wiki/Common_Intermediate_Language" title="Common Intermediate Language">Common Intermediate Language code</a> (CIL), as opposed to being directly compiled into <a href="/enwiki/wiki/Machine_code" title="Machine code">machine code</a>. During execution, an architecture-specific <a href="/enwiki/wiki/Just-in-time_compiler" class="mw-redirect" title="Just-in-time compiler">just-in-time compiler</a> (JIT) turns the <a href="/enwiki/wiki/Common_Intermediate_Language" title="Common Intermediate Language">CIL code</a> into machine code.
</p>
<h3><span class="mw-headline" id="Assemblies">Assemblies</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/enwiki/w/index.php?title=.NET_Framework&action=edit&section=5" title="Edit section: Assemblies">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
<p>Compiled CIL code is stored in <a href="/enwiki/wiki/Assembly_(CLI)" title="Assembly (CLI)">CLI assemblies</a>. As mandated by the specification, assemblies are stored in <a href="/enwiki/wiki/Portable_Executable" title="Portable Executable">Portable Executable</a> (PE) file format, common on Windows platform for all <i><a href="/enwiki/wiki/Dynamic-link_library" title="Dynamic-link library">dynamic-link library</a></i> (DLL) and <i>executable</i> <a href="/enwiki/wiki/EXE" class="mw-redirect" title="EXE">EXE</a> files. Each assembly consists of one or more files, one of which must contain a manifest bearing the <a href="/enwiki/wiki/Metadata" title="Metadata">metadata</a> for the assembly. The complete name of an assembly (not to be confused with the file name on disk) contains its simple text name, version number, culture, and <a href="/enwiki/wiki/Public_key" class="mw-redirect" title="Public key">public key</a> token. Assemblies are considered equivalent if they share the same complete name.
</p><p>A private key can also be used by the creator of the assembly for <a href="/enwiki/wiki/Strong_name" class="mw-redirect" title="Strong name">strong naming</a>. The public key token identifies which private key an assembly is signed with. Only the creator of the key pair (typically the person signing the assembly) can sign assemblies that have the same strong name as a prior version assembly, since the creator possesses the private key. Strong naming is required to add assemblies to <a href="/enwiki/wiki/Global_Assembly_Cache" title="Global Assembly Cache">Global Assembly Cache</a>.
</p><p>Starting with Visual Studio 2015, .NET Native compilation technology allows for the compilation of .NET code of <a href="/enwiki/wiki/Universal_Windows_Platform_apps" title="Universal Windows Platform apps">Universal Windows Platform apps</a> directly to machine code rather than CIL code, but the app must be written in either C# or Visual Basic.NET.<sup id="cite_ref-18" class="reference"><a href="#cite_note-18">[17]</a></sup>
</p>
<h3><span class="mw-headline" id="Class_library">Class library</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/enwiki/w/index.php?title=.NET_Framework&action=edit&section=6" title="Edit section: Class library">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1033289096"/><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/enwiki/wiki/Framework_Class_Library" title="Framework Class Library">Framework Class Library</a></div>
<p>.NET Framework includes an implementation of the CLI foundational <a href="/enwiki/wiki/Standard_Libraries_(CLI)" title="Standard Libraries (CLI)">Standard Libraries</a>. The .NET Framework Class Library (FCL) is organized in a hierarchy of <a href="/enwiki/wiki/Namespace" title="Namespace">namespaces</a>. Most of the built-in <a href="/enwiki/wiki/Application_programming_interface" class="mw-redirect" title="Application programming interface">application programming interfaces</a> (APIs) are part of either <code>System.*</code> or <code>Microsoft.*</code> 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 <a href="/enwiki/wiki/List_of_CLI_languages" title="List of CLI languages">CLI compliant languages</a>. The FCL implements the CLI <a href="/enwiki/wiki/Base_Class_Library" class="mw-redirect" title="Base Class Library">Base Class Library</a> (BCL) and other class libraries—some are specified by CLI and other are Microsoft specific.
</p><p>BCL includes a small subset of the entire class library and is the core set of classes that serve as the basic <a href="/enwiki/wiki/API" title="API">API</a> of CLR.<sup id="cite_ref-bcllibs_19-0" class="reference"><a href="#cite_note-bcllibs-19">[18]</a></sup> For .NET Framework most classes considered being part of BCL reside in <code>mscorlib.dll</code>, <code>System.dll</code> and <code>System.Core.dll</code>. BCL classes are available in .NET Framework as well as its alternative implementations including <a href="/enwiki/wiki/.NET_Compact_Framework" title=".NET Compact Framework">.NET Compact Framework</a>, <a href="/enwiki/wiki/Microsoft_Silverlight" title="Microsoft Silverlight">Microsoft Silverlight</a>, <a href="/enwiki/wiki/.NET_Core" class="mw-redirect" title=".NET Core">.NET Core</a> and <a href="/enwiki/wiki/Mono_(software)" title="Mono (software)">Mono</a>.
</p><p>FCL refers to the entire class library that ships with .NET Framework. It includes an expanded set of libraries, including BCL, <a href="/enwiki/wiki/Windows_Forms" title="Windows Forms">Windows Forms</a>, <a href="/enwiki/wiki/ASP.NET" title="ASP.NET">ASP.NET</a>, and <a href="/enwiki/wiki/Windows_Presentation_Foundation" title="Windows Presentation Foundation">Windows Presentation Foundation</a> (WPF) but also extensions to the base class libraries <a href="/enwiki/wiki/ADO.NET" title="ADO.NET">ADO.NET</a>, <a href="/enwiki/wiki/Language_Integrated_Query" title="Language Integrated Query">Language Integrated Query</a> (LINQ), <a href="/enwiki/wiki/Windows_Communication_Foundation" title="Windows Communication Foundation">Windows Communication Foundation</a> (WCF), and <a href="/enwiki/wiki/Workflow_Foundation" class="mw-redirect" title="Workflow Foundation">Workflow Foundation</a> (WF). FCL is much larger in scope than standard libraries for languages like <a href="/enwiki/wiki/C%2B%2B" title="C++">C++</a>, and comparable in scope to <a href="/enwiki/wiki/Java_Class_Library" title="Java Class Library">standard libraries of Java</a>.
</p><p>With the introduction of alternative implementations (e.g., Silverlight), Microsoft introduced the concept of Portable Class Libraries (PCL) allowing a consuming library to run on more than one platform. With the further proliferation of .NET platforms, the PCL approach failed to scale (PCLs are defined intersections of API surface between two or more platforms).<sup id="cite_ref-netstandard_20-0" class="reference"><a href="#cite_note-netstandard-20">[19]</a></sup> As the next evolutionary step of PCL, the .NET Standard Library was created retroactively based on the <code>System.Runtime.dll</code> based APIs found in UWP and Silverlight. New .NET platforms are encouraged to implement a version of the standard library allowing them to re-use extant third-party libraries to run without new versions of them. The .NET Standard Library allows an independent evolution of the library and app model layers within the .NET architecture.<sup id="cite_ref-appmodels_21-0" class="reference"><a href="#cite_note-appmodels-21">[20]</a></sup>
</p><p><a href="/enwiki/wiki/NuGet" title="NuGet">NuGet</a> 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.<sup id="cite_ref-22" class="reference"><a href="#cite_note-22">[21]</a></sup> Private feeds can be maintained separately, e.g., by a build server or a file system directory.
</p>
<h3><span id="C.2B.2B.2FCLI"></span><span class="mw-headline" id="C++/CLI">C++/CLI</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/enwiki/w/index.php?title=.NET_Framework&action=edit&section=7" title="Edit section: C++/CLI">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1033289096"/><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/enwiki/wiki/C%2B%2B/CLI" title="C++/CLI">C++/CLI</a></div>
<p>Microsoft introduced <a href="/enwiki/wiki/C%2B%2B/CLI" title="C++/CLI">C++/CLI</a> in <a href="/enwiki/wiki/Visual_Studio" class="mw-redirect" title="Visual Studio">Visual Studio</a> 2005, which is a language and means of compiling <a href="/enwiki/wiki/Visual_C%2B%2B" class="mw-redirect" title="Visual C++">Visual C++</a> programs to run within the .NET Framework. Some parts of the C++ program still run within an unmanaged <a href="/enwiki/wiki/Visual_C%2B%2B" class="mw-redirect" title="Visual C++">Visual C++</a> Runtime, while specially modified parts are translated into <a href="/enwiki/wiki/Common_Intermediate_Language" title="Common Intermediate Language">CIL code</a> and run with the .NET Framework's <a href="/enwiki/wiki/Common_Language_Runtime" title="Common Language Runtime">CLR</a>.
</p><p>Assemblies compiled using the C++/CLI compiler are termed mixed-mode assemblies, since they contain native and managed code in the same DLL.<sup id="cite_ref-23" class="reference"><a href="#cite_note-23">[22]</a></sup> Such assemblies are more complex to reverse engineer, since .NET <a href="/enwiki/wiki/Decompilers" class="mw-redirect" title="Decompilers">decompilers</a> such as <a href="/enwiki/wiki/.NET_Reflector" title=".NET Reflector">.NET Reflector</a> reveal only the managed code.
</p>
<h2><span class="mw-headline" id="Design_principle">Design principle</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/enwiki/w/index.php?title=.NET_Framework&action=edit&section=8" title="Edit section: Design principle">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
<h3><span class="mw-headline" id="Interoperability">Interoperability</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/enwiki/w/index.php?title=.NET_Framework&action=edit&section=9" title="Edit section: Interoperability">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
<p>Because computer systems commonly require interaction between newer and older applications, .NET Framework provides means to access functions implemented in newer and older programs that execute outside .NET environment. Access to <a href="/enwiki/wiki/Component_Object_Model" title="Component Object Model">Component Object Model</a> (COM) components is provided in <code>System.Runtime.InteropServices</code> and <code>System.EnterpriseServices</code> namespaces of the framework. Access to other functions is via <a href="/enwiki/wiki/Platform_Invocation_Services" title="Platform Invocation Services">Platform Invocation Services</a> (P/Invoke). Access to .NET functions from native applications is via reverse P/Invoke function.
</p>
<h3><span class="mw-headline" id="Language_independence">Language independence</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/enwiki/w/index.php?title=.NET_Framework&action=edit&section=10" title="Edit section: Language independence">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
<p>.NET Framework introduces a <a href="/enwiki/wiki/Common_Type_System" title="Common Type System">Common Type System</a> (CTS) that defines all possible <a href="/enwiki/wiki/Data_type" title="Data type">data types</a> and <a href="/enwiki/wiki/Programming_language" title="Programming language">programming</a> constructs supported by CLR and how they may or may not interact conforming to CLI specification. Because of this feature, .NET Framework supports the exchange of types and object instances between libraries and applications written using <a href="/enwiki/wiki/List_of_CLI_languages" title="List of CLI languages">any conforming .NET language</a>.
</p>
<h3><span class="mw-headline" id="Type_safety">Type safety</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/enwiki/w/index.php?title=.NET_Framework&action=edit&section=11" title="Edit section: Type safety">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
<p>CTS and the CLR used in .NET Framework also enforce <a href="/enwiki/wiki/Type_safety" title="Type safety">type safety</a>. This prevents ill-defined casts, wrong method invocations, and memory size issues when accessing an object. This also makes most CLI languages <a href="/enwiki/wiki/Type_system" title="Type system">statically typed</a> (with or without <a href="/enwiki/wiki/Type_inference" title="Type inference">type inference</a>). However, starting with .NET Framework 4.0, the <a href="/enwiki/wiki/Dynamic_Language_Runtime" title="Dynamic Language Runtime">Dynamic Language Runtime</a> extended the CLR, allowing dynamically typed languages to be implemented atop the CLI.
</p>
<h3><span class="mw-headline" id="Portability">Portability</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/enwiki/w/index.php?title=.NET_Framework&action=edit&section=12" title="Edit section: Portability">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
<p>While Microsoft has never implemented the full framework on any system except Microsoft Windows, it has engineered the framework to be cross-platform,<sup id="cite_ref-24" class="reference"><a href="#cite_note-24">[23]</a></sup> and implementations are available for other operating systems (see <a href="/enwiki/wiki/Microsoft_Silverlight" title="Microsoft Silverlight">Silverlight</a> and <a href="#Alternative_implementations">§ Alternative implementations</a>). Microsoft submitted the specifications for CLI (which includes the core class libraries, CTS, and CIL),<sup id="cite_ref-25" class="reference"><a href="#cite_note-25">[24]</a></sup><sup id="cite_ref-26" class="reference"><a href="#cite_note-26">[25]</a></sup><sup id="cite_ref-27" class="reference"><a href="#cite_note-27">[26]</a></sup> <a href="/enwiki/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a>,<sup id="cite_ref-28" class="reference"><a href="#cite_note-28">[27]</a></sup> and C++/CLI<sup id="cite_ref-29" class="reference"><a href="#cite_note-29">[28]</a></sup> to both <a href="/enwiki/wiki/Ecma_International" title="Ecma International">Ecma International</a> (ECMA) and <a href="/enwiki/wiki/International_Organization_for_Standardization" title="International Organization for Standardization">International Organization for Standardization</a> (ISO), making them available as official standards. This makes it possible for third parties to create compatible implementations of the framework and its languages on other platforms.
</p>
<h3><span class="mw-headline" id="Security">Security</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/enwiki/w/index.php?title=.NET_Framework&action=edit&section=13" title="Edit section: Security">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
<p>.NET Framework has its own security mechanism with two general features: <a href="/enwiki/wiki/Code_Access_Security" title="Code Access Security">Code Access Security</a> (CAS), and validation and verification. CAS is based on evidence that is associated with a specific assembly. Typically the evidence is the source of the assembly (whether it is installed on the local machine or has been downloaded from the Internet). CAS uses evidence to determine the permissions granted to the code. Other code can demand that calling code be granted a specified permission. The demand causes CLR to perform a call stack walk: every assembly of each method in the call stack is checked for the required permission; if any assembly is not granted the permission a security exception is thrown.
</p><p><a href="/enwiki/wiki/Managed_code" title="Managed code">Managed</a> <a href="/enwiki/wiki/Common_Intermediate_Language" title="Common Intermediate Language">CIL</a> bytecode is easier to <a href="/enwiki/wiki/Reverse_engineering#Reverse_engineering_of_software" title="Reverse engineering">reverse-engineer</a> than native code, unless <a href="/enwiki/wiki/Obfuscated_code" class="mw-redirect" title="Obfuscated code">obfuscated</a>.<sup id="cite_ref-30" class="reference"><a href="#cite_note-30">[29]</a></sup> .NET <a href="/enwiki/wiki/Decompiler" title="Decompiler">decompiler</a> programs enable developers with no reverse-engineering skills to view the source code behind unobfuscated .NET assemblies. In contrast, apps compiled to native machine code are much harder to reverse-engineer, and source code is almost never produced successfully, mainly because of compiler optimizations and lack of <a href="/enwiki/wiki/Reflection_(computer_programming)" class="mw-redirect" title="Reflection (computer programming)">reflection</a>.<sup id="cite_ref-31" class="reference"><a href="#cite_note-31">[30]</a></sup> This creates concerns in the business community over the possible loss of <a href="/enwiki/wiki/Trade_secret" title="Trade secret">trade secrets</a> and the bypassing of license control mechanisms. To mitigate this, Microsoft has included <a href="/enwiki/wiki/Dotfuscator" title="Dotfuscator">Dotfuscator</a> Community Edition with <a href="/enwiki/wiki/Visual_Studio_.NET" class="mw-redirect" title="Visual Studio .NET">Visual Studio .NET</a> since 2002.<sup id="cite_ref-32" class="reference"><a href="#cite_note-32">[b]</a></sup> Third-party obfuscation tools are also available from vendors such as <a href="/enwiki/wiki/VMware" title="VMware">VMware</a>, <a href="/enwiki/w/index.php?title=V.i._Labs&action=edit&redlink=1" class="new" title="V.i. Labs (page does not exist)">V.i. Labs</a>, <a href="/enwiki/wiki/Turbo_(software)" title="Turbo (software)">Turbo</a>, and <a href="/enwiki/wiki/Red_Gate_Software" class="mw-redirect" title="Red Gate Software">Red Gate Software</a>. Method-level encryption tools for .NET code are available from vendors such as <a href="/enwiki/wiki/SafeNet" title="SafeNet">SafeNet</a>.
</p>
<h3><span class="mw-headline" id="Memory_management">Memory management</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/enwiki/w/index.php?title=.NET_Framework&action=edit&section=14" title="Edit section: Memory management">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
<p>CLR frees the developer from the burden of managing memory (allocating and freeing up when done); it handles memory management itself by detecting when memory can be safely freed. Instantiations of .NET types (objects) are allocated from the managed heap; a pool of memory managed by CLR. As long as a reference to an object exists, which may be either direct, or via a <a href="/enwiki/wiki/Graph_(data_structure)" class="mw-redirect" title="Graph (data structure)">graph</a> of objects, the object is considered to be in use. When no reference to an object exists, and it cannot be reached or used, it becomes garbage, eligible for collection.
</p><p>.NET Framework includes a <a href="/enwiki/wiki/Garbage_collection_(computer_science)" title="Garbage collection (computer science)">garbage collector</a> (GC) which runs periodically, on a separate <a href="/enwiki/wiki/Thread_(computing)" title="Thread (computing)">thread</a> from the application's thread, that enumerates all the unusable objects and reclaims the memory allocated to them. It is a non-deterministic, compacting, <a href="/enwiki/wiki/Tracing_garbage_collection#Naïve_mark-and-sweep" title="Tracing garbage collection">mark-and-sweep</a> garbage collector. GC runs only when a set amount of memory has been used or there is enough pressure for memory on the system. Since it is not guaranteed when the conditions to reclaim memory are reached, GC runs are <a href="/enwiki/wiki/Nondeterministic_algorithm" title="Nondeterministic algorithm">non-deterministic</a>. Each .NET application has a set of roots, which are pointers to objects on the managed heap (<i>managed objects</i>). These include references to static objects, objects defined as local variables or method parameters currently in scope, and objects referred to by CPU registers.<sup id="cite_ref-part1_33-0" class="reference"><a href="#cite_note-part1-33">[31]</a></sup> When GC runs, it pauses the application and then, for each object referred to in the root, it <a href="/enwiki/wiki/Recursion" title="Recursion">recursively</a> enumerates all the objects reachable from the root objects and marks them as reachable. It uses CLI metadata and <a href="/enwiki/wiki/Reflection_(computer_programming)" class="mw-redirect" title="Reflection (computer programming)">reflection</a> to discover the objects encapsulated by an object, and then recursively walk them. It then enumerates all the objects on the heap (which were initially allocated contiguously) using reflection. All objects not marked as reachable are garbage.<sup id="cite_ref-part1_33-1" class="reference"><a href="#cite_note-part1-33">[31]</a></sup> This is the <i>mark</i> phase.<sup id="cite_ref-gcnet_34-0" class="reference"><a href="#cite_note-gcnet-34">[32]</a></sup> Since the memory held by garbage is of no consequence, it is considered free space. However, this leaves chunks of free space between objects which were initially contiguous. The objects are then <i>compacted</i> together to make free space on the managed heap contiguous again.<sup id="cite_ref-part1_33-2" class="reference"><a href="#cite_note-part1-33">[31]</a></sup><sup id="cite_ref-gcnet_34-1" class="reference"><a href="#cite_note-gcnet-34">[32]</a></sup> Any reference to an object invalidated by moving the object is updated by GC to reflect the new location.<sup id="cite_ref-gcnet_34-2" class="reference"><a href="#cite_note-gcnet-34">[32]</a></sup> The application is resumed after garbage collection ends. The latest version of .NET framework uses concurrent garbage collection along with user code, making pauses unnoticeable, because it is done in the background.<sup id="cite_ref-35" class="reference"><a href="#cite_note-35">[33]</a></sup>
</p><p>The garbage collector used by .NET Framework is also <i><a href="/enwiki/wiki/Garbage_collection_(computer_science)#Generational" title="Garbage collection (computer science)">generational</a></i>.<sup id="cite_ref-PART2_36-0" class="reference"><a href="#cite_note-PART2-36">[34]</a></sup> Objects are assigned a <i>generation</i>. Newly created objects are tagged <i>Generation 0</i>. Objects that survive one garbage collection are tagged <i>Generation 1</i>. Generation 1 objects that survive another collection are <i>Generation 2</i>. The framework uses up to Generation 2 objects.<sup id="cite_ref-PART2_36-1" class="reference"><a href="#cite_note-PART2-36">[34]</a></sup> Higher generation objects are garbage collected less often than lower generation objects. This raises the efficiency of garbage collection, as older objects tend to have longer lifetimes than newer objects.<sup id="cite_ref-PART2_36-2" class="reference"><a href="#cite_note-PART2-36">[34]</a></sup> By ignoring older objects in most collection runs, fewer checks and compaction operations are needed in total.<sup id="cite_ref-PART2_36-3" class="reference"><a href="#cite_note-PART2-36">[34]</a></sup>
</p>
<h3><span class="mw-headline" id="Performance">Performance</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/enwiki/w/index.php?title=.NET_Framework&action=edit&section=15" title="Edit section: Performance">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
<p>When an application is first launched, the .NET Framework compiles the <a href="/enwiki/wiki/Common_Intermediate_Language" title="Common Intermediate Language">CIL code</a> into executable code using its <a href="/enwiki/wiki/Just-in-time_compiler" class="mw-redirect" title="Just-in-time compiler">just-in-time compiler</a>, and caches the executable program into the .NET Native Image Cache.<sup id="cite_ref-37" class="reference"><a href="#cite_note-37">[35]</a></sup><sup id="cite_ref-cache_38-0" class="reference"><a href="#cite_note-cache-38">[36]</a></sup> 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 <a href="/enwiki/wiki/Native_Image_Generator" title="Native Image Generator">Native Image Generator</a> utility to manually <a href="/enwiki/wiki/Ahead-of-time_compilation" title="Ahead-of-time compilation">ahead-of-time compile</a> and cache any .NET application.<sup id="cite_ref-cache_38-1" class="reference"><a href="#cite_note-cache-38">[36]</a></sup>
</p><p>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."<sup id="cite_ref-39" class="reference"><a href="#cite_note-39">[37]</a></sup>
</p><p>.NET Framework provides support for calling <a href="/enwiki/wiki/Streaming_SIMD_Extensions" title="Streaming SIMD Extensions">Streaming SIMD Extensions</a> (SSE) via <a href="/enwiki/wiki/Managed_code" title="Managed code">managed code</a> from April 2014 in Visual Studio 2013 Update 2. However, <a href="/enwiki/wiki/Mono_(software)" title="Mono (software)">Mono</a> has provided support for <a href="/enwiki/wiki/SIMD" title="SIMD">SIMD</a> Extensions as of version 2.2 within the Mono.Simd namespace in 2009.<sup id="cite_ref-Release_Notes_40-0" class="reference"><a href="#cite_note-Release_Notes-40">[38]</a></sup> Mono's lead developer <a href="/enwiki/wiki/Miguel_de_Icaza" title="Miguel de Icaza">Miguel de Icaza</a> has expressed hope that this SIMD support will be adopted by CLR's ECMA standard.<sup id="cite_ref-41" class="reference"><a href="#cite_note-41">[39]</a></sup> Streaming SIMD Extensions have been available in <a href="/enwiki/wiki/X86" title="X86">x86</a> CPUs since the introduction of the <a href="/enwiki/wiki/Pentium_III" title="Pentium III">Pentium III</a>. Some other architectures such as <a href="/enwiki/wiki/ARM_architecture" title="ARM architecture">ARM</a> and <a href="/enwiki/wiki/MIPS_architecture" title="MIPS architecture">MIPS</a> also have SIMD extensions. In case the CPU lacks support for those extensions, the instructions are simulated in software.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/enwiki/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (June 2020)">citation needed</span></a></i>]</sup>
</p>
<h2><span class="mw-headline" id="Alternative_implementations">Alternative implementations</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/enwiki/w/index.php?title=.NET_Framework&action=edit&section=16" title="Edit section: Alternative implementations">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
<p>.NET Framework was the predominant implementation of .NET technologies, until the release of <a href="/enwiki/wiki/.NET" title=".NET">.NET</a>. Other implementations for parts of the framework exist. Although the runtime engine is described by an ECMA-ISO specification, other implementations of it may be encumbered by <a href="/enwiki/wiki/Software_patent" title="Software patent">patent</a> issues; ISO standards may include the disclaimer, "Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. ISO shall not be held responsible for identifying any or all such patent rights."<sup id="cite_ref-42" class="reference"><a href="#cite_note-42">[40]</a></sup> It is harder to develop alternatives to FCL, which is not described by an open standard and may be subject to copyright restrictions. Also, parts of FCL have Windows-specific functions and behavior, so implementation on non-Windows platforms can be problematic.
</p><p>Some alternative implementations of parts of the framework are listed here.
</p>
<ul><li><a href="/enwiki/wiki/.NET_Micro_Framework" title=".NET Micro Framework">.NET Micro Framework</a> is a .NET platform for extremely resource-constrained devices. It includes a small version of CLR and supports development in <a href="/enwiki/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a> (though some developers were able to use <a href="/enwiki/wiki/VB.NET" class="mw-redirect" title="VB.NET">VB.NET</a>,<sup id="cite_ref-43" class="reference"><a href="#cite_note-43">[41]</a></sup> albeit with an amount of hacking, and with limited functionalities) and debugging (in an emulator or on hardware), both using <a href="/enwiki/wiki/Microsoft_Visual_Studio" title="Microsoft Visual Studio">Microsoft Visual Studio</a>. It also features a subset of .NET Framework Class Library (about 70 classes with about 420 methods), a <a href="/enwiki/wiki/GUI" class="mw-redirect" title="GUI">GUI</a> framework loosely based on WPF, and additional libraries specific to embedded applications.</li>
<li><a href="/enwiki/wiki/Mono_(software)" title="Mono (software)">Mono</a> is an implementation of CLI and FCL, and provides added functions. It is licensed as <a href="/enwiki/wiki/Free_software" title="Free software">free software</a> under the <a href="/enwiki/wiki/MIT_License" title="MIT License">MIT License</a>. It includes support for ASP.NET, ADO.NET, and Windows Forms libraries for a wide range of architectures and operating systems. It also includes C# and VB.NET compilers.</li>
<li><a href="/enwiki/wiki/Portable.NET" class="mw-redirect" title="Portable.NET">Portable.NET</a> (part of <a href="/enwiki/wiki/DotGNU" title="DotGNU">DotGNU</a>) provides an implementation of CLI, parts of FCL, and a C# compiler. It supports a variety of CPUs and operating systems. The project was discontinued, with the last stable release in 2009.</li>
<li>Microsoft <a href="/enwiki/wiki/Shared_Source_Common_Language_Infrastructure" title="Shared Source Common Language Infrastructure">Shared Source Common Language Infrastructure</a> is a <a href="/enwiki/wiki/Shared_source#Microsoft_Shared_Source_Common_Language_Infrastructure" class="mw-redirect" title="Shared source">non-free</a> implementation of CLR. However, the last version runs on Windows XP SP2 only, and has not been updated since 2006. Thus, it does not contain all features of version 2.0 of .NET Framework.</li>
<li>CrossNet<sup id="cite_ref-44" class="reference"><a href="#cite_note-44">[42]</a></sup> is an implementation of CLI and parts of FCL. It is free software using an open source <a href="/enwiki/wiki/MIT_License" title="MIT License">MIT License</a>.</li></ul>
<h2><span class="mw-headline" id="Licensing">Licensing</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/enwiki/w/index.php?title=.NET_Framework&action=edit&section=17" title="Edit section: Licensing">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
<p>Microsoft managed code frameworks and their components are licensed as follows:
<span class="anchor" id="lic-detail-table"></span>
</p>
<table class="wikitable plainrowheaders" border="1">
<tbody><tr>
<th scope="col">Component
</th>
<th scope="col">License
</th></tr>
<tr>
<th scope="row">.NET Framework (redistributable package)
</th>
<td><a href="/enwiki/wiki/Proprietary_software" title="Proprietary software">Proprietary software</a><sup id="cite_ref-45" class="reference"><a href="#cite_note-45">[43]</a></sup>
</td></tr>
<tr>
<th scope="row">Reference <a href="/enwiki/wiki/Source_code" title="Source code">source code</a> of .NET Framework 4.5 and earlier
</th>
<td><a href="/enwiki/wiki/Microsoft_Reference_License" class="mw-redirect" title="Microsoft Reference License">Microsoft Reference License</a> (Ms-RSL<sup id="cite_ref-Ms-RSL-dab_9-1" class="reference"><a href="#cite_note-Ms-RSL-dab-9">[a]</a></sup>)<sup id="cite_ref-sourcerelease_10-1" class="reference"><a href="#cite_note-sourcerelease-10">[9]</a></sup><sup id="cite_ref-46" class="reference"><a href="#cite_note-46">[44]</a></sup>
</td></tr>
<tr>
<th scope="row">Reference source code of .NET Framework 4.6
</th>
<td><a href="/enwiki/wiki/MIT_License" title="MIT License">MIT License</a><sup id="cite_ref-47" class="reference"><a href="#cite_note-47">[45]</a></sup>
</td></tr>
<tr>
<th scope="row"><a href="/enwiki/wiki/Mono_(software)" title="Mono (software)">Mono</a>
</th>
<td>MIT License<sup id="cite_ref-48" class="reference"><a href="#cite_note-48">[46]</a></sup>
</td></tr>
<tr>
<th scope="row"><a href="/enwiki/wiki/.NET" title=".NET">.NET</a> (formerly .NET Core)<br /><small>CoreFX, CoreCLR and CLI</small>
</th>
<td>MIT License<sup id="cite_ref-49" class="reference"><a href="#cite_note-49">[47]</a></sup>
</td></tr>
<tr>
<th scope="row"><a href="/enwiki/wiki/.NET_Micro_Framework" title=".NET Micro Framework">.NET Micro Framework</a>
</th>
<td><a href="/enwiki/wiki/Apache_License_2.0" class="mw-redirect" title="Apache License 2.0">Apache License 2.0</a><sup id="cite_ref-50" class="reference"><a href="#cite_note-50">[48]</a></sup>
</td></tr>
<tr>
<th scope="row"><a href="/enwiki/wiki/.NET_Compiler_Platform" class="mw-redirect" title=".NET Compiler Platform">.NET Compiler Platform</a> (codename "Roslyn")
</th>
<td>MIT License<sup id="cite_ref-51" class="reference"><a href="#cite_note-51">[49]</a></sup>
</td></tr>
<tr>
<th scope="row"><a href="/enwiki/wiki/ASP.NET_MVC" title="ASP.NET MVC">ASP.NET MVC</a>, Web API and Web Pages (<a href="/enwiki/wiki/ASP.NET_Razor" title="ASP.NET Razor">Razor</a>)
</th>
<td>Apache License 2.0<sup id="cite_ref-52" class="reference"><a href="#cite_note-52">[50]</a></sup>
</td></tr>
<tr>
<th scope="row"><a href="/enwiki/wiki/ASP.NET_Core" title="ASP.NET Core">ASP.NET Core</a>
</th>
<td>Apache License 2.0<sup id="cite_ref-53" class="reference"><a href="#cite_note-53">[51]</a></sup>
</td></tr>
<tr>
<th scope="row"><a href="/enwiki/w/index.php?title=ASP.NET_Ajax_Control_Toolkit&action=edit&redlink=1" class="new" title="ASP.NET Ajax Control Toolkit (page does not exist)">ASP.NET Ajax Control Toolkit</a>
</th>
<td><a href="/enwiki/wiki/BSD_License" class="mw-redirect" title="BSD License">BSD License</a><sup id="cite_ref-54" class="reference"><a href="#cite_note-54">[52]</a></sup>
</td></tr>
<tr>
<th scope="row"><a href="/enwiki/wiki/ASP.NET_SignalR" class="mw-redirect" title="ASP.NET SignalR">ASP.NET SignalR</a>
</th>
<td>Apache License 2.0<sup id="cite_ref-55" class="reference"><a href="#cite_note-55">[53]</a></sup>
</td></tr>
<tr>
<th scope="row"><a href="/enwiki/wiki/Entity_Framework" title="Entity Framework">Entity Framework</a>
</th>
<td>Apache License 2.0<sup id="cite_ref-56" class="reference"><a href="#cite_note-56">[54]</a></sup>
</td></tr>
<tr>
<th scope="row"><a href="/enwiki/wiki/NuGet" title="NuGet">NuGet</a>
</th>
<td>Apache License 2.0<sup id="cite_ref-57" class="reference"><a href="#cite_note-57">[55]</a></sup>
</td></tr></tbody></table>
<h2><span class="mw-headline" id="See_also">See also</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/enwiki/w/index.php?title=.NET_Framework&action=edit&section=18" title="Edit section: See also">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
<ul><li><a href="/enwiki/wiki/.NET" title=".NET">.NET</a> (formerly .NET Core)</li>
<li><a href="/enwiki/wiki/List_of_CLI_languages" title="List of CLI languages">List of CLI languages</a></li>
<li><a href="/enwiki/wiki/Standard_Libraries_(CLI)" title="Standard Libraries (CLI)">Standard Libraries (CLI)</a>, the .NET standard libraries</li>
<li><a href="/enwiki/wiki/Base_Class_Library" class="mw-redirect" title="Base Class Library">Base Class Library</a> (BCL)</li></ul>
<h2><span class="mw-headline" id="Notes">Notes</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/enwiki/w/index.php?title=.NET_Framework&action=edit&section=19" title="Edit section: Notes">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
<style data-mw-deduplicate="TemplateStyles:r1011085734">.mw-parser-output .reflist{font-size:90%;margin-bottom:0.5em;list-style-type:decimal}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist reflist-lower-alpha">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-Ms-RSL-dab-9"><span class="mw-cite-backlink">^ <a href="#cite_ref-Ms-RSL-dab_9-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Ms-RSL-dab_9-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text">The license was formerly abbreviated Ms-RL, but Ms-RL now refers to the <a href="/enwiki/wiki/Microsoft_Reciprocal_License" class="mw-redirect" title="Microsoft Reciprocal License">Microsoft Reciprocal License</a>.</span>
</li>
<li id="cite_note-32"><span class="mw-cite-backlink"><b><a href="#cite_ref-32">^</a></b></span> <span class="reference-text">Dotfuscator Community Edition 4.0</span>
</li>
</ol></div></div>
<h2><span class="mw-headline" id="References">References</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/enwiki/w/index.php?title=.NET_Framework&action=edit&section=20" title="Edit section: References">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1011085734"/><div class="reflist reflist-columns references-column-width" style="column-width: 30em;">
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r999302996">.mw-parser-output cite.citation{font-style:inherit}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .id-lock-free a,.mw-parser-output .citation .cs1-lock-free a{background:linear-gradient(transparent,transparent),url("/upwiki/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited a,.mw-parser-output .id-lock-registration a,.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:linear-gradient(transparent,transparent),url("/upwiki/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription a,.mw-parser-output .citation .cs1-lock-subscription a{background:linear-gradient(transparent,transparent),url("/upwiki/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registration{color:#555}.mw-parser-output .cs1-subscription span,.mw-parser-output .cs1-registration span{border-bottom:1px dotted;cursor:help}.mw-parser-output .cs1-ws-icon a{background:linear-gradient(transparent,transparent),url("/upwiki/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}.mw-parser-output code.cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;font-size:100%}.mw-parser-output .cs1-visible-error{font-size:100%}.mw-parser-output .cs1-maint{display:none;color:#33aa33;margin-left:0.3em}.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left,.mw-parser-output .cs1-kern-wl-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right,.mw-parser-output .cs1-kern-wl-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://dotnet.microsoft.com/download/thank-you/net48-offline">"Download .NET Framework 4.8 Offline Installer"</a>. <i>Microsoft</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20190815224743/https://dotnet.microsoft.com/download/thank-you/net48-offline">Archived</a> from the original on August 15, 2019<span class="reference-accessdate">. Retrieved <span class="nowrap">August 15,</span> 2019</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Microsoft&rft.atitle=Download+.NET+Framework+4.8+Offline+Installer&rft_id=https%3A%2F%2Fdotnet.microsoft.com%2Fdownload%2Fthank-you%2Fnet48-offline&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://opensource.com/business/14/11/microsoft-dot-net-empower-open-source-communities">"Microsoft gets on board with open source"</a>. <i>Opensource.com</i>. November 19, 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">January 2,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Opensource.com&rft.atitle=Microsoft+gets+on+board+with+open+source&rft.date=2014-11-19&rft_id=https%3A%2F%2Fopensource.com%2Fbusiness%2F14%2F11%2Fmicrosoft-dot-net-empower-open-source-communities&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite id="CITEREFgewarren" class="citation web cs1">gewarren. <a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/versions-and-dependencies">".NET Framework & Windows OS versions"</a>. <i>docs.microsoft.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">November 21,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=docs.microsoft.com&rft.atitle=.NET+Framework+%26+Windows+OS+versions&rft.au=gewarren&rft_id=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fdotnet%2Fframework%2Fmigration-guide%2Fversions-and-dependencies&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.ecma-international.org/publications/standards/Ecma-335.htm">"Standard ECMA-335: Common Language Infrastructure (CLI)"</a>. <i>ecma-international.org</i> (6 ed.). <a href="/enwiki/wiki/Ecma_International" title="Ecma International">ECMA</a>. June 2012. <a rel="nofollow" class="external text" href="https://www.webcitation.org/6HfXxFXH8?url=http://www.ecma-international.org/publications/standards/Ecma-335.htm">Archived</a> from the original on June 26, 2013<span class="reference-accessdate">. Retrieved <span class="nowrap">August 31,</span> 2005</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=ecma-international.org&rft.atitle=Standard+ECMA-335%3A+Common+Language+Infrastructure+%28CLI%29&rft.date=2012-06&rft_id=http%3A%2F%2Fwww.ecma-international.org%2Fpublications%2Fstandards%2FEcma-335.htm&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.ecma-international.org/publications/standards/Ecma-334.htm">"Standard ECMA-334: C# Language Specification"</a>. <i>ecma-international.org</i> (4 ed.). <a href="/enwiki/wiki/Ecma_International" title="Ecma International">ECMA</a>. June 2006. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20101031042906/http://www.ecma-international.org/publications/standards/Ecma-334.htm">Archived</a> from the original on October 31, 2010<span class="reference-accessdate">. Retrieved <span class="nowrap">August 31,</span> 2005</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=ecma-international.org&rft.atitle=Standard+ECMA-334%3A+C%23+Language+Specification&rft.date=2006-06&rft_id=http%3A%2F%2Fwww.ecma-international.org%2Fpublications%2Fstandards%2FEcma-334.htm&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=58046">"ISO/IEC 23271:2012 Information technology – Common Language Infrastructure"</a>. <i>iso.org</i> (3 ed.). <a href="/enwiki/wiki/International_Organization_for_Standardization" title="International Organization for Standardization">International Organization for Standardization</a>. February 13, 2012.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=iso.org&rft.atitle=ISO%2FIEC+23271%3A2012+Information+technology+%E2%80%93+Common+Language+Infrastructure&rft.date=2012-02-13&rft_id=http%3A%2F%2Fwww.iso.org%2Fiso%2Fiso_catalogue%2Fcatalogue_ics%2Fcatalogue_detail_ics.htm%3Fcsnumber%3D58046&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=42926">"ISO/IEC 23270:2006 – Information technology – Programming languages – C#"</a>. <i>iso.org</i> (2 ed.). <a href="/enwiki/wiki/International_Organization_for_Standardization" title="International Organization for Standardization">International Organization for Standardization</a>. January 26, 2012. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20101206152217/http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=42926">Archived</a> from the original on December 6, 2010<span class="reference-accessdate">. Retrieved <span class="nowrap">April 1,</span> 2008</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=iso.org&rft.atitle=ISO%2FIEC+23270%3A2006+%E2%80%93+Information+technology+%E2%80%93+Programming+languages+%E2%80%93+C%23&rft.date=2012-01-26&rft_id=http%3A%2F%2Fwww.iso.org%2Fiso%2Fiso_catalogue%2Fcatalogue_ics%2Fcatalogue_detail_ics.htm%3Fcsnumber%3D42926&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.fsf.org/news/2009-07-mscp-mono">"Microsoft's Empty Promise"</a>. <i><a href="/enwiki/wiki/Free_Software_Foundation" title="Free Software Foundation">Free Software Foundation</a></i>. 16 July 2009. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20090819101829/http://www.fsf.org/news/2009-07-mscp-mono/">Archived</a> from the original on August 19, 2009<span class="reference-accessdate">. Retrieved <span class="nowrap">August 3,</span> 2009</span>. <q>However, there are several libraries that are included with Mono, and commonly used by applications like Tomboy, that are not required by the standard. And just to be clear, we're not talking about Windows-specific libraries like ASP.NET and Windows Forms. Instead, we're talking about libraries under the System namespace that provide common functionality programmers expect in modern programming languages</q></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Free+Software+Foundation&rft.atitle=Microsoft%27s+Empty+Promise&rft.date=2009-07-16&rft_id=http%3A%2F%2Fwww.fsf.org%2Fnews%2F2009-07-mscp-mono&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-sourcerelease-10"><span class="mw-cite-backlink">^ <a href="#cite_ref-sourcerelease_10-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-sourcerelease_10-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite id="CITEREFGuthrie2007" class="citation web cs1"><a href="/enwiki/wiki/Scott_Guthrie" title="Scott Guthrie">Guthrie, Scott</a> (3 October 2007). <a rel="nofollow" class="external text" href="https://weblogs.asp.net/scottgu/releasing-the-source-code-for-the-net-framework-libraries">"Releasing the Source Code for the NET Framework"</a>. <i>Scott Guthrie's Blog</i>. <a href="/enwiki/wiki/Microsoft" title="Microsoft">Microsoft</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20100907233621/http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx">Archived</a> from the original on September 7, 2010<span class="reference-accessdate">. Retrieved <span class="nowrap">September 15,</span> 2010</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Scott+Guthrie%27s+Blog&rft.atitle=Releasing+the+Source+Code+for+the+NET+Framework&rft.date=2007-10-03&rft.aulast=Guthrie&rft.aufirst=Scott&rft_id=http%3A%2F%2Fweblogs.asp.net%2Fscottgu%2Freleasing-the-source-code-for-the-net-framework-libraries&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite id="CITEREFGuthrie2008" class="citation web cs1"><a href="/enwiki/wiki/Scott_Guthrie" title="Scott Guthrie">Guthrie, Scott</a> (January 16, 2008). <a rel="nofollow" class="external text" href="https://weblogs.asp.net/scottgu/net-framework-library-source-code-now-available">".NET Framework Library Source Code now available"</a>. <i>Scott Guthrie's Blog</i>. <a href="/enwiki/wiki/Microsoft" title="Microsoft">Microsoft</a><span class="reference-accessdate">. Retrieved <span class="nowrap">February 28,</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Scott+Guthrie%27s+Blog&rft.atitle=.NET+Framework+Library+Source+Code+now+available&rft.date=2008-01-16&rft.aulast=Guthrie&rft.aufirst=Scott&rft_id=https%3A%2F%2Fweblogs.asp.net%2Fscottgu%2Fnet-framework-library-source-code-now-available&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-dotnet-patent-promise-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-dotnet-patent-promise_12-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/dotnet/corefx/blob/master/PATENTS.TXT">"Microsoft Patent Promise for .NET Libraries and Runtime Components"</a>. <i><a href="/enwiki/wiki/GitHub" title="GitHub">GitHub</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210221070138/https://github.com/dotnet/corefx/blob/master/PATENTS.TXT">Archived</a> from the original on February 21, 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">November 16,</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Microsoft+Patent+Promise+for+.NET+Libraries+and+Runtime+Components&rft_id=https%3A%2F%2Fgithub.com%2Fdotnet%2Fcorefx%2Fblob%2Fmaster%2FPATENTS.TXT&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite id="CITEREFKrill2016" class="citation web cs1">Krill, Paul (April 1, 2016). <a rel="nofollow" class="external text" href="http://www.infoworld.com/article/3050732/microsoft-windows/xamarins-mono-runtime-gets-a-looser-license.html">"Xamarin's Mono runtime gets a looser license"</a>. <i><a href="/enwiki/wiki/InfoWorld" title="InfoWorld">InfoWorld</a></i>. <a href="/enwiki/wiki/IDG" class="mw-redirect" title="IDG">IDG</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=InfoWorld&rft.atitle=Xamarin%27s+Mono+runtime+gets+a+looser+license&rft.date=2016-04-01&rft.aulast=Krill&rft.aufirst=Paul&rft_id=http%3A%2F%2Fwww.infoworld.com%2Farticle%2F3050732%2Fmicrosoft-windows%2Fxamarins-mono-runtime-gets-a-looser-license.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-Ferraira1-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-Ferraira1_14-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite id="CITEREFFerraira2016" class="citation web cs1">Ferraira, Bruno (March 31, 2016). <a rel="nofollow" class="external text" href="http://techreport.com/news/29929/xamarin-now-comes-free-with-visual-studio">"Xamarin now comes free with Visual Studio"</a>. <i>The Tech Report</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160402173444/http://techreport.com/news/29929/xamarin-now-comes-free-with-visual-studio">Archived</a> from the original on April 2, 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">April 12,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=The+Tech+Report&rft.atitle=Xamarin+now+comes+free+with+Visual+Studio.&rft.date=2016-03-31&rft.aulast=Ferraira&rft.aufirst=Bruno&rft_id=http%3A%2F%2Ftechreport.com%2Fnews%2F29929%2Fxamarin-now-comes-free-with-visual-studio&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-Microsoft_PP_Mono-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-Microsoft_PP_Mono_15-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/mono/mono/blob/master/PATENTS.TXT">"Microsoft Patent Promise for Mono"</a>. <i>Mono on GitHub</i>. Mono Project. 28 March 2016. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160416133644/https://github.com/mono/mono/blob/master/PATENTS.TXT">Archived</a> from the original on April 16, 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">April 16,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Mono+on+GitHub&rft.atitle=Microsoft+Patent+Promise+for+Mono&rft.date=2016-03-28&rft_id=https%3A%2F%2Fgithub.com%2Fmono%2Fmono%2Fblob%2Fmaster%2FPATENTS.TXT&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-Friedman2-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-Friedman2_16-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20160412072728/https://blog.xamarin.com/xamarin-for-all/">"Xamarin for Everyone"</a>. <i>Xamarin Blog</i>. Xamarin. March 31, 2016. Archived from <a rel="nofollow" class="external text" href="https://blog.xamarin.com/xamarin-for-all/">the original</a> on April 12, 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">April 12,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Xamarin+Blog&rft.atitle=Xamarin+for+Everyone&rft.date=2016-03-31&rft_id=https%3A%2F%2Fblog.xamarin.com%2Fxamarin-for-all%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-ms-wpf-winforms-oss-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-ms-wpf-winforms-oss_17-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20181215163944/https://blogs.windows.com/buildingapps/2018/12/04/announcing-open-source-of-wpf-windows-forms-and-winui-at-microsoft-connect-2018/">"Announcing Open Source of WPF, Windows Forms, and WinUI at Microsoft Connect 2018"</a>. <i>Windows Developer Blog</i>. Microsoft. December 4, 2018. Archived from <a rel="nofollow" class="external text" href="https://blogs.windows.com/buildingapps/2018/12/04/announcing-open-source-of-wpf-windows-forms-and-winui-at-microsoft-connect-2018/">the original</a> on December 15, 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">December 24,</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Windows+Developer+Blog&rft.atitle=Announcing+Open+Source+of+WPF%2C+Windows+Forms%2C+and+WinUI+at+Microsoft+Connect+2018&rft.date=2018-12-04&rft_id=https%3A%2F%2Fblogs.windows.com%2Fbuildingapps%2F2018%2F12%2F04%2Fannouncing-open-source-of-wpf-windows-forms-and-winui-at-microsoft-connect-2018%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite id="CITEREFrpetrusha" class="citation web cs1">rpetrusha. <a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/dotnet/framework/net-native/">"Compiling Apps with .NET Native"</a>. <i>docs.microsoft.com</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20171203082710/https://docs.microsoft.com/en-us/dotnet/framework/net-native/">Archived</a> from the original on December 3, 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">December 2,</span> 2017</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=docs.microsoft.com&rft.atitle=Compiling+Apps+with+.NET+Native&rft.au=rpetrusha&rft_id=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fdotnet%2Fframework%2Fnet-native%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-bcllibs-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-bcllibs_19-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://msdn.microsoft.com/netframework/aa569603.aspx">"Base Class Library"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">June 1,</span> 2008</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Base+Class+Library&rft_id=https%3A%2F%2Fmsdn.microsoft.com%2Fnetframework%2Faa569603.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-netstandard-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-netstandard_20-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md">".NET Platform Standard"</a>. <i><a href="/enwiki/wiki/GitHub" title="GitHub">GitHub</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160519180849/https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md">Archived</a> from the original on May 19, 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">April 23,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=.NET+Platform+Standard&rft_id=https%3A%2F%2Fgithub.com%2Fdotnet%2Fcorefx%2Fblob%2Fmaster%2FDocumentation%2Farchitecture%2Fnet-platform-standard.md&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-appmodels-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-appmodels_21-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.hanselman.com/blog/AnUpdateOnASPNETCore10RC2.aspx">"An update on ASP.NET Core 1.0 RC2"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">April 23,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=An+update+on+ASP.NET+Core+1.0+RC2&rft_id=http%3A%2F%2Fwww.hanselman.com%2Fblog%2FAnUpdateOnASPNETCore10RC2.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://nuget.org">"NuGet Gallery - Home"</a>. <i>nuget.org</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210221070142/https://www.nuget.org/">Archived</a> from the original on February 21, 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">February 21,</span> 2021</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=nuget.org&rft.atitle=NuGet+Gallery+-+Home&rft_id=https%3A%2F%2Fnuget.org&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-23">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://msdn.microsoft.com/en-us/library/x0w2664k.aspx">Mixed (Native and Managed) Assemblies</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20141022111729/http://msdn.microsoft.com/en-us/library/x0w2664k.aspx">Archived</a> October 22, 2014, at the <a href="/enwiki/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a>, MSDN</span>
</li>
<li id="cite_note-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-24">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://channel9.msdn.com/shows/Going+Deep/Scott-Guthrie-Silverlight-and-the-Cross-Platform-CLR">"Scott Guthrie: Silverlight and the Cross-Platform CLR"</a>. <a href="/enwiki/wiki/Channel_9_(discussion_forum)" class="mw-redirect" title="Channel 9 (discussion forum)">Channel 9</a>. 30 April 2007. <a rel="nofollow" class="external text" href="https://www.webcitation.org/6XHacUsDc?url=http://channel9.msdn.com/shows/Going+Deep/Scott-Guthrie-Silverlight-and-the-Cross-Platform-CLR">Archived</a> from the original on March 25, 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">April 16,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Scott+Guthrie%3A+Silverlight+and+the+Cross-Platform+CLR&rft.pub=Channel+9&rft.date=2007-04-30&rft_id=https%3A%2F%2Fchannel9.msdn.com%2Fshows%2FGoing%2BDeep%2FScott-Guthrie-Silverlight-and-the-Cross-Platform-CLR&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-25">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20080614092650/http://www.ecma-international.org/publications/standards/Ecma-335.htm">"ECMA 335 – Standard ECMA-335 Common Language Infrastructure (CLI) 4th edition (June 2006)"</a>. ECMA. June 1, 2006. Archived from <a rel="nofollow" class="external text" href="http://www.ecma-international.org/publications/standards/Ecma-335.htm">the original</a> on June 14, 2008<span class="reference-accessdate">. Retrieved <span class="nowrap">June 1,</span> 2008</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=ECMA+335+%E2%80%93+Standard+ECMA-335+Common+Language+Infrastructure+%28CLI%29+4th+edition+%28June+2006%29&rft.pub=ECMA&rft.date=2006-06-01&rft_id=http%3A%2F%2Fwww.ecma-international.org%2Fpublications%2Fstandards%2FEcma-335.htm&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-26">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://standards.iso.org/ittf/PubliclyAvailableStandards/c042927_ISO_IEC_23271_2006(E)_Software.zip">"ISO/IEC 23271:2006"</a>. Standards.iso.org. September 29, 2006. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20180701142510/http://standards.iso.org/ittf/PubliclyAvailableStandards/c042927_ISO_IEC_23271_2006%28E%29_Software.zip">Archived</a> from the original on July 1, 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">April 17,</span> 2012</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=ISO%2FIEC+23271%3A2006&rft.pub=Standards.iso.org&rft.date=2006-09-29&rft_id=http%3A%2F%2Fstandards.iso.org%2Fittf%2FPubliclyAvailableStandards%2Fc042927_ISO_IEC_23271_2006%28E%29_Software.zip&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-27">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.ecma-international.org/publications/techreports/E-TR-084.htm">"Technical Report TR/84 Common Language Infrastructure (CLI) – Information Derived from Partition IV XML File"</a>. ECMA. 1 June 2006. <a rel="nofollow" class="external text" href="https://www.webcitation.org/6XHagdtvH?url=http://www.ecma-international.org/publications/techreports/E-TR-084.htm">Archived</a> from the original on March 25, 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">April 16,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Technical+Report+TR%2F84+Common+Language+Infrastructure+%28CLI%29+%E2%80%93+Information+Derived+from+Partition+IV+XML+File&rft.pub=ECMA&rft.date=2006-06-01&rft_id=http%3A%2F%2Fwww.ecma-international.org%2Fpublications%2Ftechreports%2FE-TR-084.htm&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-28">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.ecma-international.org/publications/standards/Ecma-334.htm">"ECMA-334 C# Language Specification"</a>. ECMA. June 1, 2006. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20101031042906/http://www.ecma-international.org/publications/standards/Ecma-334.htm">Archived</a> from the original on October 31, 2010<span class="reference-accessdate">. Retrieved <span class="nowrap">August 31,</span> 2005</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=ECMA-334+C%23+Language+Specification&rft.pub=ECMA&rft.date=2006-06-01&rft_id=http%3A%2F%2Fwww.ecma-international.org%2Fpublications%2Fstandards%2FEcma-334.htm&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-29"><span class="mw-cite-backlink"><b><a href="#cite_ref-29">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20080810165757/http://www.ecma-international.org/publications/standards/Ecma-372.htm">"Standard ECMA-372 C++/CLI Language Specification"</a>. ECMA. December 1, 2005. Archived from <a rel="nofollow" class="external text" href="http://www.ecma-international.org/publications/standards/Ecma-372.htm">the original</a> on August 10, 2008<span class="reference-accessdate">. Retrieved <span class="nowrap">January 16,</span> 2008</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Standard+ECMA-372+C%2B%2B%2FCLI+Language+Specification&rft.pub=ECMA&rft.date=2005-12-01&rft_id=http%3A%2F%2Fwww.ecma-international.org%2Fpublications%2Fstandards%2FEcma-372.htm&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-30">^</a></b></span> <span class="reference-text">Gartner, Inc. as reported in "Hype Cycle for Cyberthreats, 2006", September 2006, Neil MacDonald; Amrit Williams, et al.</span>
</li>
<li id="cite_note-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-31">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite id="CITEREFCifuentes1994" class="citation thesis cs1">Cifuentes, Cristina (July 1994). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20161122154356/http://www.labri.fr/perso/fleury/download/papers/binary_analysis/cifuentes-thesis.pdf">"6: Control Flow Analysis"</a> <span class="cs1-format">(PDF)</span>. <i>Reverse Compilation Techniques</i> (Thesis). <a href="/enwiki/wiki/Queensland_University_of_Technology" title="Queensland University of Technology">Queensland University of Technology</a>. Archived from <a rel="nofollow" class="external text" href="http://www.labri.fr/perso/fleury/download/papers/binary_analysis/cifuentes-thesis.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 22 November 2016.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adissertation&rft.title=Reverse+Compilation+Techniques&rft.inst=Queensland+University+of+Technology&rft.date=1994-07&rft.aulast=Cifuentes&rft.aufirst=Cristina&rft_id=http%3A%2F%2Fwww.labri.fr%2Fperso%2Ffleury%2Fdownload%2Fpapers%2Fbinary_analysis%2Fcifuentes-thesis.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-part1-33"><span class="mw-cite-backlink">^ <a href="#cite_ref-part1_33-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-part1_33-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-part1_33-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20070703083608/http://msdn.microsoft.com/msdnmag/issues/1100/GCI/">"Garbage Collection: Automatic Memory Management in the Microsoft .NET Framework"</a>. Archived from <a rel="nofollow" class="external text" href="https://msdn.microsoft.com/msdnmag/issues/1100/GCI/">the original</a> on July 3, 2007<span class="reference-accessdate">. Retrieved <span class="nowrap">June 1,</span> 2008</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Garbage+Collection%3A+Automatic+Memory+Management+in+the+Microsoft+.NET+Framework&rft_id=https%3A%2F%2Fmsdn.microsoft.com%2Fmsdnmag%2Fissues%2F1100%2FGCI%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-gcnet-34"><span class="mw-cite-backlink">^ <a href="#cite_ref-gcnet_34-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-gcnet_34-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-gcnet_34-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20080525165023/http://www.csharphelp.com/archives2/archive297.html">"Garbage collection in .NET"</a>. Archived from <a rel="nofollow" class="external text" href="http://www.csharphelp.com/archives2/archive297.html">the original</a> on May 25, 2008<span class="reference-accessdate">. Retrieved <span class="nowrap">June 1,</span> 2008</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Garbage+collection+in+.NET&rft_id=http%3A%2F%2Fwww.csharphelp.com%2Farchives2%2Farchive297.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-35"><span class="mw-cite-backlink"><b><a href="#cite_ref-35">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://blogs.msdn.microsoft.com/dotnet/2012/07/20/the-net-framework-4-5-includes-new-garbage-collector-enhancements-for-client-and-server-apps/">"The .NET Framework 4.5 includes new garbage collector enhancements for client and server apps"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">October 2,</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=The+.NET+Framework+4.5+includes+new+garbage+collector+enhancements+for+client+and+server+apps&rft_id=https%3A%2F%2Fblogs.msdn.microsoft.com%2Fdotnet%2F2012%2F07%2F20%2Fthe-net-framework-4-5-includes-new-garbage-collector-enhancements-for-client-and-server-apps%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-PART2-36"><span class="mw-cite-backlink">^ <a href="#cite_ref-PART2_36-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-PART2_36-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-PART2_36-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-PART2_36-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20070626080134/http://msdn.microsoft.com/msdnmag/issues/1200/GCI2/default.aspx">"Garbage Collection—Part 2: Automatic Memory Management in the Microsoft .NET Framework"</a>. Archived from <a rel="nofollow" class="external text" href="https://msdn.microsoft.com/msdnmag/issues/1200/GCI2/default.aspx">the original</a> on June 26, 2007<span class="reference-accessdate">. Retrieved <span class="nowrap">June 1,</span> 2008</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Garbage+Collection%E2%80%94Part+2%3A+Automatic+Memory+Management+in+the+Microsoft+.NET+Framework&rft_id=https%3A%2F%2Fmsdn.microsoft.com%2Fmsdnmag%2Fissues%2F1200%2FGCI2%2Fdefault.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-37"><span class="mw-cite-backlink"><b><a href="#cite_ref-37">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://blogs.telerik.com/justteam/posts/13-05-28/understanding-net-just-in-time-compilation">"Understanding .NET Just-In-Time Compilation"</a>. <i>telerik.com</i>. May 28, 2013. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20130611052214/http://blogs.telerik.com/justteam/posts/13-05-28/understanding-net-just-in-time-compilation">Archived</a> from the original on June 11, 2013<span class="reference-accessdate">. Retrieved <span class="nowrap">May 21,</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=telerik.com&rft.atitle=Understanding+.NET+Just-In-Time+Compilation&rft.date=2013-05-28&rft_id=http%3A%2F%2Fblogs.telerik.com%2Fjustteam%2Fposts%2F13-05-28%2Funderstanding-net-just-in-time-compilation&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-cache-38"><span class="mw-cite-backlink">^ <a href="#cite_ref-cache_38-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-cache_38-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://msdn.microsoft.com/en-us/library/ht8ecch6(v=vs.90).aspx">Compiling MSIL to Native Code</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20150419013531/https://msdn.microsoft.com/en-us/library/ht8ecch6(v=vs.90).aspx">Archived</a> April 19, 2015, at the <a href="/enwiki/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a>, MSDN, Microsoft</span>
</li>
<li id="cite_note-39"><span class="mw-cite-backlink"><b><a href="#cite_ref-39">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.red-gate.com/simple-talk/dotnet/net-framework/understanding-garbage-collection-in-net/">"Understanding Garbage Collection in .NET"</a>. June 17, 2009.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Understanding+Garbage+Collection+in+.NET&rft.date=2009-06-17&rft_id=https%3A%2F%2Fwww.red-gate.com%2Fsimple-talk%2Fdotnet%2Fnet-framework%2Funderstanding-garbage-collection-in-net%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-Release_Notes-40"><span class="mw-cite-backlink"><b><a href="#cite_ref-Release_Notes_40-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.mono-project.com/docs/about-mono/releases/2.2.0/">"Release Notes Mono 2.2 - Mono"</a>. <i>mono-project.com</i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=mono-project.com&rft.atitle=Release+Notes+Mono+2.2+-+Mono&rft_id=http%3A%2F%2Fwww.mono-project.com%2Fdocs%2Fabout-mono%2Freleases%2F2.2.0%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-41"><span class="mw-cite-backlink"><b><a href="#cite_ref-41">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://tirania.org/blog/archive/2008/Nov-03.html">"Mono's SIMD Support: Making Mono safe for Gaming"</a>. Tirania.org. November 3, 2008. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20101104173338/http://tirania.org/blog/archive/2008/Nov-03.html">Archived</a> from the original on November 4, 2010<span class="reference-accessdate">. Retrieved <span class="nowrap">April 17,</span> 2012</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Mono%27s+SIMD+Support%3A+Making+Mono+safe+for+Gaming&rft.pub=Tirania.org&rft.date=2008-11-03&rft_id=http%3A%2F%2Ftirania.org%2Fblog%2Farchive%2F2008%2FNov-03.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-42"><span class="mw-cite-backlink"><b><a href="#cite_ref-42">^</a></b></span> <span class="reference-text">ISO 9001:2008, Foreword</span>
</li>
<li id="cite_note-43"><span class="mw-cite-backlink"><b><a href="#cite_ref-43">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.christec.co.nz/blog/archives/317">"Using VB.NET with the .NET Micro Framework «/dev/mobile"</a>. Christec.co.nz. April 1, 2008<span class="reference-accessdate">. Retrieved <span class="nowrap">April 17,</span> 2012</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Using+VB.NET+with+the+.NET+Micro+Framework+%C2%AB%2Fdev%2Fmobile&rft.pub=Christec.co.nz&rft.date=2008-04-01&rft_id=http%3A%2F%2Fwww.christec.co.nz%2Fblog%2Farchives%2F317&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span><sup class="noprint Inline-Template"><span style="white-space: nowrap;">[<i><a href="/enwiki/wiki/Wikipedia:Link_rot" title="Wikipedia:Link rot"><span title=" Dead link tagged January 2021">permanent dead link</span></a></i>]</span></sup></span>
</li>
<li id="cite_note-44"><span class="mw-cite-backlink"><b><a href="#cite_ref-44">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.codeplex.com/crossnet">"CrossNet"</a>. Codeplex.com. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20100125035452/http://www.codeplex.com/crossnet">Archived</a> from the original on January 25, 2010<span class="reference-accessdate">. Retrieved <span class="nowrap">April 17,</span> 2012</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=CrossNet&rft.pub=Codeplex.com&rft_id=https%3A%2F%2Fwww.codeplex.com%2Fcrossnet&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-45"><span class="mw-cite-backlink"><b><a href="#cite_ref-45">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://msdn.microsoft.com/en-us/library/ms994405.aspx">"Microsoft .NET Framework Redistributable EULA"</a>. <i><a href="/enwiki/wiki/MSDN" class="mw-redirect" title="MSDN">MSDN</a></i>. <a href="/enwiki/wiki/Microsoft" title="Microsoft">Microsoft</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20150402161923/https://msdn.microsoft.com/en-us/library/ms994405.aspx">Archived</a> from the original on April 2, 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">February 28,</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=MSDN&rft.atitle=Microsoft+.NET+Framework+Redistributable+EULA&rft_id=https%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fms994405.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-46"><span class="mw-cite-backlink"><b><a href="#cite_ref-46">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite id="CITEREFBray2012" class="citation web cs1">Bray, Brandon (August 15, 2012). <a rel="nofollow" class="external text" href="https://blogs.msdn.microsoft.com/dotnet/2012/08/15/announcing-the-release-of-net-framework-4-5-rtm-product-and-source-code/">"Announcing the release of .NET Framework 4.5 RTM – Product and Source Code"</a>. <i>.NET Framework Blog</i>. <a href="/enwiki/wiki/Microsoft" title="Microsoft">Microsoft</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20161004153213/https://blogs.msdn.microsoft.com/dotnet/2012/08/15/announcing-the-release-of-net-framework-4-5-rtm-product-and-source-code/">Archived</a> from the original on October 4, 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">August 18,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=.NET+Framework+Blog&rft.atitle=Announcing+the+release+of+.NET+Framework+4.5+RTM+%E2%80%93+Product+and+Source+Code&rft.date=2012-08-15&rft.aulast=Bray&rft.aufirst=Brandon&rft_id=https%3A%2F%2Fblogs.msdn.microsoft.com%2Fdotnet%2F2012%2F08%2F15%2Fannouncing-the-release-of-net-framework-4-5-rtm-product-and-source-code%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-47"><span class="mw-cite-backlink"><b><a href="#cite_ref-47">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://blogs.msdn.microsoft.com/dotnet/2014/11/12/announcing-net-2015-preview-a-new-era-for-net/">"Announcing .NET 2015 Preview: A New Era for .NET"</a>. <i>.NET Framework Blog</i>. <a href="/enwiki/wiki/Microsoft" title="Microsoft">Microsoft</a>. November 12, 2014. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160819154819/https://blogs.msdn.microsoft.com/dotnet/2014/11/12/announcing-net-2015-preview-a-new-era-for-net/">Archived</a> from the original on August 19, 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">August 18,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=.NET+Framework+Blog&rft.atitle=Announcing+.NET+2015+Preview%3A+A+New+Era+for+.NET&rft.date=2014-11-12&rft_id=https%3A%2F%2Fblogs.msdn.microsoft.com%2Fdotnet%2F2014%2F11%2F12%2Fannouncing-net-2015-preview-a-new-era-for-net%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-48"><span class="mw-cite-backlink"><b><a href="#cite_ref-48">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://blog.xamarin.com/xamarin-for-all/">"Xamarin for Everyone"</a>. <i>Xamarin Blog</i>. <a href="/enwiki/wiki/Microsoft" title="Microsoft">Microsoft</a>. April 17, 2016. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160412072728/https://blog.xamarin.com/xamarin-for-all/">Archived</a> from the original on April 12, 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">April 12,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Xamarin+Blog&rft.atitle=Xamarin+for+Everyone&rft.date=2016-04-17&rft_id=https%3A%2F%2Fblog.xamarin.com%2Fxamarin-for-all%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-49"><span class="mw-cite-backlink"><b><a href="#cite_ref-49">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20150217191151/https://www.dotnetfoundation.org/netcore5">".NET Core 5"</a>. <i>dotnetfoundation.org</i>. .NET Foundation. Archived from <a rel="nofollow" class="external text" href="https://www.dotnetfoundation.org/netcore5">the original</a> on 17 February 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">17 February</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=dotnetfoundation.org&rft.atitle=.NET+Core+5&rft_id=https%3A%2F%2Fwww.dotnetfoundation.org%2Fnetcore5&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-50"><span class="mw-cite-backlink"><b><a href="#cite_ref-50">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20150217191241/https://www.dotnetfoundation.org/dotnet-micro-framework">".NET Micro Framework"</a>. <i>dotnetfoundation.org</i>. .NET Foundation. Archived from <a rel="nofollow" class="external text" href="https://www.dotnetfoundation.org/dotnet-micro-framework">the original</a> on 17 February 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">17 February</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=dotnetfoundation.org&rft.atitle=.NET+Micro+Framework&rft_id=https%3A%2F%2Fwww.dotnetfoundation.org%2Fdotnet-micro-framework&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-51"><span class="mw-cite-backlink"><b><a href="#cite_ref-51">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/dotnet/roslyn/blob/master/License.txt">"Roslyn License"</a>. <i>GitHub</i>. .NET Foundation. February 5, 2020. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20180324160854/https://github.com/dotnet/roslyn/blob/master/License.txt">Archived</a> from the original on March 24, 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">April 14,</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Roslyn+License&rft.date=2020-02-05&rft_id=https%3A%2F%2Fgithub.com%2Fdotnet%2Froslyn%2Fblob%2Fmaster%2FLicense.txt&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-52"><span class="mw-cite-backlink"><b><a href="#cite_ref-52">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20150217190307/https://www.dotnetfoundation.org/aspnet-4">"ASP.NET MVC, Web API and Web Pages (Razor)"</a>. <i>dotnetfoundation.org</i>. .NET Foundation. Archived from <a rel="nofollow" class="external text" href="https://www.dotnetfoundation.org/aspnet-4">the original</a> on 17 February 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">17 February</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=dotnetfoundation.org&rft.atitle=ASP.NET+MVC%2C+Web+API+and+Web+Pages+%28Razor%29&rft_id=https%3A%2F%2Fwww.dotnetfoundation.org%2Faspnet-4&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-53"><span class="mw-cite-backlink"><b><a href="#cite_ref-53">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/aspnet/Home/blob/master/LICENSE.txt">"ASP.NET Core License"</a>. <i>GitHub</i>. .NET Foundation. July 5, 2017. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210221070142/https://github.com/dotnet/aspnetcore/blob/main/LICENSE.txt">Archived</a> from the original on February 21, 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">April 14,</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=ASP.NET+Core+License&rft.date=2017-07-05&rft_id=https%3A%2F%2Fgithub.com%2Faspnet%2FHome%2Fblob%2Fmaster%2FLICENSE.txt&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-54"><span class="mw-cite-backlink"><b><a href="#cite_ref-54">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20150217201242/https://www.dotnetfoundation.org/aspnet-ajax">"ASP.NET Ajax Control Toolkit"</a>. <i>dotnetfoundation.org</i>. .NET Foundation. Archived from <a rel="nofollow" class="external text" href="https://www.dotnetfoundation.org/aspnet-ajax">the original</a> on 17 February 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">17 February</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=dotnetfoundation.org&rft.atitle=ASP.NET+Ajax+Control+Toolkit&rft_id=https%3A%2F%2Fwww.dotnetfoundation.org%2Faspnet-ajax&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-55"><span class="mw-cite-backlink"><b><a href="#cite_ref-55">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20150217191338/https://www.dotnetfoundation.org/asp.net-signalr">"ASP.NET SignalR"</a>. <i>dotnetfoundation.org</i>. .NET Foundation. Archived from <a rel="nofollow" class="external text" href="https://www.dotnetfoundation.org/asp.net-signalr">the original</a> on 17 February 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">17 February</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=dotnetfoundation.org&rft.atitle=ASP.NET+SignalR&rft_id=https%3A%2F%2Fwww.dotnetfoundation.org%2Fasp.net-signalr&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-56"><span class="mw-cite-backlink"><b><a href="#cite_ref-56">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20160418163228/http://www.dotnetfoundation.org/entity-framework">"Entity Framework"</a>. <i>dotnetfoundation.org</i>. .NET Foundation. Archived from <a rel="nofollow" class="external text" href="https://www.dotnetfoundation.org/entity-framework">the original</a> on 18 April 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">16 April</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=dotnetfoundation.org&rft.atitle=Entity+Framework&rft_id=https%3A%2F%2Fwww.dotnetfoundation.org%2Fentity-framework&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
<li id="cite_note-57"><span class="mw-cite-backlink"><b><a href="#cite_ref-57">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20150217200934/https://www.dotnetfoundation.org/nuget">"NuGet"</a>. <i>dotnetfoundation.org</i>. .NET Foundation. Archived from <a rel="nofollow" class="external text" href="https://www.dotnetfoundation.org/nuget">the original</a> on 17 February 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">17 February</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=dotnetfoundation.org&rft.atitle=NuGet&rft_id=https%3A%2F%2Fwww.dotnetfoundation.org%2Fnuget&rfr_id=info%3Asid%2Fen.wikipedia.org%3A.NET+Framework" class="Z3988"></span></span>
</li>
</ol></div>
<h2><span class="mw-headline" id="External_links">External links</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/enwiki/w/index.php?title=.NET_Framework&action=edit&section=21" title="Edit section: External links">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
<table role="presentation" class="mbox-small plainlinks sistersitebox" style="background-color:#f9f9f9;border:1px solid #aaa;color:#000">
<tbody><tr>
<td class="mbox-image"><img alt="" src="/upwiki/wikipedia/commons/thumb/d/df/Wikibooks-logo-en-noslogan.svg/40px-Wikibooks-logo-en-noslogan.svg.png" decoding="async" width="40" height="40" class="noviewer" srcset="/upwiki/wikipedia/commons/thumb/d/df/Wikibooks-logo-en-noslogan.svg/60px-Wikibooks-logo-en-noslogan.svg.png 1.5x, /upwiki/wikipedia/commons/thumb/d/df/Wikibooks-logo-en-noslogan.svg/80px-Wikibooks-logo-en-noslogan.svg.png 2x" data-file-width="400" data-file-height="400" /></td>
<td class="mbox-text plainlist">Wikibooks has a book on the topic of: <i><b><a href="https://en.wikibooks.org/wiki/.NET_Development_Foundation" class="extiw" title="wikibooks:.NET Development Foundation">.NET Development Foundation</a></b></i></td></tr>
</tbody></table>
<table role="presentation" class="mbox-small plainlinks sistersitebox" style="background-color:#f9f9f9;border:1px solid #aaa;color:#000">
<tbody><tr>
<td class="mbox-image"><img alt="" src="/upwiki/wikipedia/commons/thumb/0/0b/Wikiversity_logo_2017.svg/40px-Wikiversity_logo_2017.svg.png" decoding="async" width="40" height="33" class="noviewer" srcset="/upwiki/wikipedia/commons/thumb/0/0b/Wikiversity_logo_2017.svg/60px-Wikiversity_logo_2017.svg.png 1.5x, /upwiki/wikipedia/commons/thumb/0/0b/Wikiversity_logo_2017.svg/80px-Wikiversity_logo_2017.svg.png 2x" data-file-width="626" data-file-height="512" /></td>
<td class="mbox-text plainlist">Wikiversity has learning resources about <i><b><a href="https://en.wikiversity.org/wiki/Introduction_to_.NET" class="extiw" title="v:Introduction to .NET">Introduction to .NET</a></b></i></td></tr>
</tbody></table>
<ul><li><span class="official-website"><span class="url"><a rel="nofollow" class="external text" href="https://dotnet.microsoft.com/">Official website</a></span></span></li>
<li><a rel="nofollow" class="external text" href="https://msdn.microsoft.com/en-us/library/zw4w595w.aspx">Overview of .NET Framework (MSDN)</a></li>
<li><a rel="nofollow" class="external text" href="https://github.com/Microsoft/dotnet">.NET Github repository</a></li></ul>
<div role="navigation" class="navbox" aria-labelledby=".NET" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="3"><style data-mw-deduplicate="TemplateStyles:r1054937957">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}.mw-parser-output .infobox .navbar{font-size:100%}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/enwiki/wiki/Template:.NET_Framework" title="Template:.NET Framework"><abbr title="View this template" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">v</abbr></a></li><li class="nv-talk"><a href="/enwiki/wiki/Template_talk:.NET_Framework" title="Template talk:.NET Framework"><abbr title="Discuss this template" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">t</abbr></a></li><li class="nv-edit"><a class="external text" href="https://en.wikipedia.org/enwiki/w/index.php?title=Template:.NET_Framework&action=edit"><abbr title="Edit this template" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">e</abbr></a></li></ul></div><div id=".NET" style="font-size:114%;margin:0 4em">.NET</div></th></tr><tr><td class="navbox-abovebelow" colspan="3"><div id="*_.NET_strategy_*_Libraries_and_frameworks">
<ul><li><a href="/enwiki/wiki/Microsoft_.NET_strategy" title="Microsoft .NET strategy">.NET strategy</a></li>
<li><a href="/enwiki/wiki/List_of_.NET_libraries_and_frameworks" title="List of .NET libraries and frameworks">Libraries and frameworks</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Implementations</th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/.NET" title=".NET">.NET (Core)</a></li>
<li><a class="mw-selflink selflink">.NET Framework</a>
<ul><li><a href="/enwiki/wiki/.NET_Framework_version_history" title=".NET Framework version history">Version history</a></li></ul></li>
<li><a href="/enwiki/wiki/.NET_Compact_Framework" title=".NET Compact Framework">.NET Compact Framework</a></li>
<li><a href="/enwiki/wiki/.NET_Micro_Framework" title=".NET Micro Framework">.NET Micro Framework</a></li>
<li><a href="/enwiki/wiki/DotGNU" title="DotGNU">DotGNU</a></li>
<li><a href="/enwiki/wiki/Mono_(software)" title="Mono (software)">Mono</a></li>
<li><a href="/enwiki/wiki/XNA_Framework" class="mw-redirect" title="XNA Framework">XNA Framework</a></li></ul>
</div></td><td class="noviewer navbox-image" rowspan="6" style="width:1px;padding:0px 0px 0px 2px"><div><a href="/enwiki/wiki/File:.NET_Logo.svg" class="image"><img alt=".NET Logo.svg" src="/upwiki/wikipedia/commons/thumb/a/a3/.NET_Logo.svg/100px-.NET_Logo.svg.png" decoding="async" width="100" height="100" srcset="/upwiki/wikipedia/commons/thumb/a/a3/.NET_Logo.svg/150px-.NET_Logo.svg.png 1.5x, /upwiki/wikipedia/commons/thumb/a/a3/.NET_Logo.svg/200px-.NET_Logo.svg.png 2x" data-file-width="456" data-file-height="456" /></a></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Architecture</th><td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Common_Language_Runtime" title="Common Language Runtime">Common Language Runtime</a> (CLR)</li>
<li><a href="/enwiki/wiki/COM_Interop" title="COM Interop">COM Interop</a></li>
<li><a href="/enwiki/wiki/Framework_Class_Library" title="Framework Class Library">Framework Class Library</a> (FCL)</li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Components</th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/ADO.NET" title="ADO.NET">ADO.NET</a>
<ul><li><a href="/enwiki/wiki/Entity_Framework" title="Entity Framework">Entity Framework</a></li></ul></li>
<li><a href="/enwiki/wiki/ASP.NET" title="ASP.NET">ASP.NET</a>
<ul><li><a href="/enwiki/wiki/ASP.NET_Web_Forms" title="ASP.NET Web Forms">Web Forms</a></li>
<li><a href="/enwiki/wiki/ASP.NET_AJAX" title="ASP.NET AJAX">AJAX</a></li>
<li><a href="/enwiki/wiki/ASP.NET_Core" title="ASP.NET Core">Core</a></li>
<li><a href="/enwiki/wiki/ASP.NET_Dynamic_Data" title="ASP.NET Dynamic Data">Dynamic Data</a></li>
<li><a href="/enwiki/wiki/ASP.NET_MVC" title="ASP.NET MVC">MVC</a></li>
<li><a href="/enwiki/wiki/ASP.NET_Razor" title="ASP.NET Razor">Razor</a></li></ul></li>
<li><a href="/enwiki/wiki/ClickOnce" title="ClickOnce">ClickOnce</a></li>
<li><a href="/enwiki/wiki/Dynamic_Language_Runtime" title="Dynamic Language Runtime">Dynamic Language Runtime</a></li>
<li><a href="/enwiki/wiki/Extensible_Application_Markup_Language" title="Extensible Application Markup Language">Extensible Application Markup Language</a> (XAML)</li>
<li><a href="/enwiki/wiki/Language_Integrated_Query" title="Language Integrated Query">Language Integrated Query</a> (LINQ)</li>
<li><a href="/enwiki/wiki/Managed_Extensibility_Framework" title="Managed Extensibility Framework">Managed Extensibility Framework</a></li>
<li><a href="/enwiki/wiki/Microsoft_Silverlight" title="Microsoft Silverlight">Microsoft Silverlight</a></li>
<li><a href="/enwiki/wiki/Microsoft_XNA" title="Microsoft XNA">Microsoft XNA</a></li>
<li><a href="/enwiki/wiki/Parallel_Extensions" title="Parallel Extensions">Parallel Extensions</a></li>
<li><a href="/enwiki/wiki/Windows_Communication_Foundation" title="Windows Communication Foundation">Windows Communication Foundation</a> (WCF)
<ul><li><a href="/enwiki/wiki/WCF_Data_Services" title="WCF Data Services">WCF Data Services</a></li></ul></li>
<li><a href="/enwiki/wiki/Windows_Forms" title="Windows Forms">Windows Forms</a> (WinForms)</li>
<li><a href="/enwiki/wiki/Windows_Identity_Foundation" title="Windows Identity Foundation">Windows Identity Foundation</a> (WIF)</li>
<li><a href="/enwiki/wiki/Windows_Presentation_Foundation" title="Windows Presentation Foundation">Windows Presentation Foundation</a> (WPF)</li>
<li><a href="/enwiki/wiki/Windows_Workflow_Foundation" title="Windows Workflow Foundation">Windows Workflow Foundation</a> (WF)</li>
<li><a href="/enwiki/wiki/.NET_Remoting" title=".NET Remoting">.NET Remoting</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Tools</th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/enwiki/wiki/Code_obfuscation" class="mw-redirect" title="Code obfuscation">Obfuscators</a></th><td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Dotfuscator" title="Dotfuscator">Dotfuscator</a></li>
<li><a href="/enwiki/wiki/Redgate" title="Redgate">SmartAssembly</a></li>
<li><a href="/enwiki/w/index.php?title=V.i._Labs&action=edit&redlink=1" class="new" title="V.i. Labs (page does not exist)">CodeArmor</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/enwiki/wiki/Decompiler" title="Decompiler">Decompilers</a></th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/.NET_Reflector" title=".NET Reflector">.NET Reflector</a></li>
<li><a href="/enwiki/wiki/JetBrains" title="JetBrains">dotPeek</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Misc</th><td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/CLR_Profiler" title="CLR Profiler">CLR Profiler</a></li>
<li><a href="/enwiki/wiki/ILAsm" title="ILAsm">ILAsm</a></li>
<li><a href="/enwiki/wiki/.NET_Compiler_Platform" class="mw-redirect" title=".NET Compiler Platform">.NET Compiler Platform</a></li>
<li><a href="/enwiki/wiki/Native_Image_Generator" title="Native Image Generator">Native Image Generator</a> (NGen)</li>
<li><a href="/enwiki/wiki/XAMLPad" title="XAMLPad">XAMLPad</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/enwiki/wiki/Integrated_development_environment" title="Integrated development environment">IDEs</a></th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Microsoft_Visual_Studio" title="Microsoft Visual Studio">Visual Studio</a>
<ul><li><a href="/enwiki/wiki/Microsoft_Blend" title="Microsoft Blend">Blend</a></li>
<li><a href="/enwiki/wiki/Microsoft_Visual_Studio_Express" title="Microsoft Visual Studio Express">Express</a></li></ul></li>
<li><a href="/enwiki/wiki/MonoDevelop" title="MonoDevelop">MonoDevelop</a></li>
<li><a href="/enwiki/wiki/SharpDevelop" title="SharpDevelop">SharpDevelop</a></li>
<li><a href="/enwiki/wiki/Xamarin_Studio" class="mw-redirect" title="Xamarin Studio">Xamarin Studio</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Organizations</th><td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/.NET_Foundation" title=".NET Foundation">.NET Foundation</a></li>
<li><a href="/enwiki/wiki/Microsoft" title="Microsoft">Microsoft</a></li>
<li><a href="/enwiki/wiki/Xamarin" title="Xamarin">Xamarin</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="3"><div>
<ul><li><img alt="Category" src="/upwiki/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" title="Category" width="16" height="16" class="noviewer" srcset="/upwiki/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, /upwiki/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /> <a href="/enwiki/wiki/Category:.NET" title="Category:.NET">Category</a></li>
<li><img alt="List-Class article" src="/upwiki/wikipedia/en/thumb/d/db/Symbol_list_class.svg/16px-Symbol_list_class.svg.png" decoding="async" title="List-Class article" width="16" height="16" class="noviewer" srcset="/upwiki/wikipedia/en/thumb/d/db/Symbol_list_class.svg/23px-Symbol_list_class.svg.png 1.5x, /upwiki/wikipedia/en/thumb/d/db/Symbol_list_class.svg/31px-Symbol_list_class.svg.png 2x" data-file-width="180" data-file-height="185" /> <a href="/enwiki/wiki/.NET_Framework_version_history" title=".NET Framework version history">List</a></li>
<li><img alt="Commons page" src="/upwiki/wikipedia/en/thumb/4/4a/Commons-logo.svg/12px-Commons-logo.svg.png" decoding="async" title="Commons page" width="12" height="16" class="noviewer" srcset="/upwiki/wikipedia/en/thumb/4/4a/Commons-logo.svg/18px-Commons-logo.svg.png 1.5x, /upwiki/wikipedia/en/thumb/4/4a/Commons-logo.svg/24px-Commons-logo.svg.png 2x" data-file-width="1024" data-file-height="1376" /> <a href="https://commons.wikimedia.org/wiki/Category:.NET" class="extiw" title="commons:Category:.NET">Commons</a></li></ul>
</div></td></tr></tbody></table></div>
<div role="navigation" class="navbox" aria-labelledby="Common_Language_Infrastructure" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1054937957"/><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/enwiki/wiki/Template:Common_Language_Infrastructure" title="Template:Common Language Infrastructure"><abbr title="View this template" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">v</abbr></a></li><li class="nv-talk"><a href="/enwiki/wiki/Template_talk:Common_Language_Infrastructure" title="Template talk:Common Language Infrastructure"><abbr title="Discuss this template" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">t</abbr></a></li><li class="nv-edit"><a class="external text" href="https://en.wikipedia.org/enwiki/w/index.php?title=Template:Common_Language_Infrastructure&action=edit"><abbr title="Edit this template" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">e</abbr></a></li></ul></div><div id="Common_Language_Infrastructure" style="font-size:114%;margin:0 4em"><a href="/enwiki/wiki/Common_Language_Infrastructure" title="Common Language Infrastructure">Common Language Infrastructure</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Architecture</th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Application_domain" title="Application domain">Application domain</a></li>
<li><a href="/enwiki/wiki/Code_Access_Security" title="Code Access Security">Code Access Security</a></li>
<li><a href="/enwiki/wiki/Common_Intermediate_Language" title="Common Intermediate Language">Common Intermediate Language</a>
<ul><li><a href="/enwiki/wiki/List_of_CIL_instructions" title="List of CIL instructions">instructions</a></li></ul></li>
<li><a href="/enwiki/wiki/Common_Type_System" title="Common Type System">Common Type System</a></li>
<li><a href="/enwiki/wiki/Platform_Invocation_Services" title="Platform Invocation Services">Platform Invocation Services</a></li>
<li><a href="/enwiki/wiki/Virtual_Execution_System" title="Virtual Execution System">Virtual Execution System</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Components</th><td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Assembly_(CLI)" title="Assembly (CLI)">Assembly</a></li>
<li><a href="/enwiki/wiki/Delegate_(CLI)" title="Delegate (CLI)">Delegate</a></li>
<li><a href="/enwiki/wiki/Global_Assembly_Cache" title="Global Assembly Cache">Global Assembly Cache</a></li>
<li><a href="/enwiki/wiki/Manifest_(CLI)" title="Manifest (CLI)">Manifest</a></li>
<li><a href="/enwiki/wiki/Metadata_(CLI)" title="Metadata (CLI)">Metadata</a></li>
<li><a href="/enwiki/wiki/Standard_Libraries_(CLI)" title="Standard Libraries (CLI)">Standard Libraries</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Implementations</th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Microsoft</th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/.NET" title=".NET">.NET</a></li>
<li><a class="mw-selflink selflink">.NET Framework</a></li>
<li><a href="/enwiki/wiki/.NET_Compact_Framework" title=".NET Compact Framework">.NET Compact Framework</a></li>
<li><a href="/enwiki/wiki/.NET_Micro_Framework" title=".NET Micro Framework">.NET Micro Framework</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Mono_(software)" title="Mono (software)">Mono</a></li>
<li><a href="/enwiki/wiki/DotGNU" title="DotGNU">DotGNU</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/enwiki/wiki/List_of_CLI_languages" title="List of CLI languages">Languages</a></th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Major languages</th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a></li>
<li><a href="/enwiki/wiki/Visual_Basic_.NET" title="Visual Basic .NET">Visual Basic</a></li>
<li><a href="/enwiki/wiki/F_Sharp_(programming_language)" title="F Sharp (programming language)">F#</a></li>
<li><a href="/enwiki/wiki/PowerShell" title="PowerShell">PowerShell</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Axum_(programming_language)" title="Axum (programming language)">Axum</a></li>
<li><a href="/enwiki/wiki/A_Sharp_(.NET)" title="A Sharp (.NET)">A#</a></li>
<li><a href="/enwiki/wiki/Boo_(programming_language)" title="Boo (programming language)">Boo</a></li>
<li><a href="/enwiki/wiki/Cobra_(programming_language)" title="Cobra (programming language)">Cobra</a></li>
<li><a href="/enwiki/wiki/C%2B%2B/CLI" title="C++/CLI">C++/CLI</a></li>
<li><a href="/enwiki/wiki/IronScheme" title="IronScheme">IronScheme</a></li>
<li><a href="/enwiki/wiki/IronPython" title="IronPython">IronPython</a></li>
<li><a href="/enwiki/wiki/IronRuby" title="IronRuby">IronRuby</a></li>
<li><a href="/enwiki/wiki/JScript_.NET" title="JScript .NET">JScript .NET</a></li>
<li><a href="/enwiki/wiki/Visual_J_Sharp" title="Visual J Sharp">Visual J Sharp</a></li>
<li><a href="/enwiki/wiki/Nemerle" title="Nemerle">Nemerle</a></li>
<li><a href="/enwiki/wiki/Oxygene_(programming_language)" title="Oxygene (programming language)">Oxygene</a></li>
<li><a href="/enwiki/wiki/Phalanger_(compiler)" title="Phalanger (compiler)">Phalanger</a></li>
<li><a href="/enwiki/wiki/Q_Sharp" title="Q Sharp">Q#</a></li>
<li><a href="/enwiki/wiki/Scala_(programming_language)" title="Scala (programming language)">Scala</a></li>
<li><a href="/enwiki/wiki/Microsoft_Small_Basic" title="Microsoft Small Basic">Microsoft Small Basic</a></li>
<li><a href="/enwiki/wiki/XSharp" title="XSharp">X#</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Comparison</th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Comparison_of_C_Sharp_and_Java" title="Comparison of C Sharp and Java">C# and Java</a></li>
<li><a href="/enwiki/wiki/Comparison_of_C_Sharp_and_Visual_Basic_.NET" title="Comparison of C Sharp and Visual Basic .NET">C# and Visual Basic .NET</a></li>
<li><a href="/enwiki/wiki/Comparison_of_the_Java_and_.NET_platforms" title="Comparison of the Java and .NET platforms">Java and .NET platforms</a></li>
<li><a href="/enwiki/wiki/Comparison_of_Visual_Basic_and_Visual_Basic_.NET" title="Comparison of Visual Basic and Visual Basic .NET">Visual Basic and Visual Basic .NET</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr></tbody></table></div>
<div role="navigation" class="navbox" aria-labelledby="Microsoft_APIs_and_frameworks" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1054937957"/><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/enwiki/wiki/Template:Microsoft_APIs" title="Template:Microsoft APIs"><abbr title="View this template" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">v</abbr></a></li><li class="nv-talk"><a href="/enwiki/wiki/Template_talk:Microsoft_APIs" title="Template talk:Microsoft APIs"><abbr title="Discuss this template" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">t</abbr></a></li><li class="nv-edit"><a class="external text" href="https://en.wikipedia.org/enwiki/w/index.php?title=Template:Microsoft_APIs&action=edit"><abbr title="Edit this template" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">e</abbr></a></li></ul></div><div id="Microsoft_APIs_and_frameworks" style="font-size:114%;margin:0 4em"><a href="/enwiki/wiki/List_of_Microsoft_Windows_application_programming_interfaces_and_frameworks" title="List of Microsoft Windows application programming interfaces and frameworks">Microsoft APIs and frameworks</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em">Graphics</th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Desktop_Window_Manager" title="Desktop Window Manager">Desktop Window Manager</a></li>
<li><a href="/enwiki/wiki/Direct2D" title="Direct2D">Direct2D</a></li>
<li><a href="/enwiki/wiki/Microsoft_Direct3D" class="mw-redirect" title="Microsoft Direct3D">Direct3D</a></li>
<li><a href="/enwiki/wiki/D3DX" title="D3DX">D3D (extensions)</a></li>
<li><a href="/enwiki/wiki/Graphics_Device_Interface" title="Graphics Device Interface">GDI / GDI+</a></li>
<li><a href="/enwiki/wiki/Windows_Presentation_Foundation" title="Windows Presentation Foundation">WPF</a></li>
<li><a href="/enwiki/wiki/Microsoft_Silverlight" title="Microsoft Silverlight">Silverlight</a></li>
<li><a href="/enwiki/wiki/Windows_UI_Library" title="Windows UI Library">WinUI</a></li>
<li><a href="/enwiki/wiki/Windows_Color_System" title="Windows Color System">Windows Color System</a></li>
<li><a href="/enwiki/wiki/Windows_Image_Acquisition" title="Windows Image Acquisition">Windows Image Acquisition</a></li>
<li><a href="/enwiki/wiki/Windows_Imaging_Component" title="Windows Imaging Component">Windows Imaging Component</a></li>
<li><a href="/enwiki/wiki/DirectX_Graphics_Infrastructure" title="DirectX Graphics Infrastructure">DirectX Graphics Infrastructure (DXGI)</a></li>
<li><a href="/enwiki/wiki/Windows_Advanced_Rasterization_Platform" title="Windows Advanced Rasterization Platform">Windows Advanced Rasterization Platform</a></li>
<li><a href="/enwiki/wiki/WinG" title="WinG">WinG</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em">Audio</th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/DirectMusic" title="DirectMusic">DirectMusic</a></li>
<li><a href="/enwiki/wiki/DirectSound" title="DirectSound">DirectSound</a></li>
<li><a href="/enwiki/wiki/DirectX_plugin" title="DirectX plugin">DirectX plugin</a></li>
<li><a href="/enwiki/wiki/Cross-platform_Audio_Creation_Tool" title="Cross-platform Audio Creation Tool">XACT</a></li>
<li><a href="/enwiki/wiki/Microsoft_Speech_API" title="Microsoft Speech API">Speech API</a></li>
<li><a href="/enwiki/wiki/XAudio2" title="XAudio2">XAudio2</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em">Multimedia</th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/DirectX" title="DirectX">DirectX</a>
<ul><li><a href="/enwiki/wiki/DirectX_Media_Objects" class="mw-redirect" title="DirectX Media Objects">Media Objects</a></li>
<li><a href="/enwiki/wiki/DirectX_Video_Acceleration" title="DirectX Video Acceleration">Video Acceleration</a></li></ul></li>
<li><a href="/enwiki/wiki/Xinput" class="mw-redirect" title="Xinput">Xinput</a></li>
<li><a href="/enwiki/wiki/DirectInput" title="DirectInput">DirectInput</a></li>
<li><a href="/enwiki/wiki/DirectShow" title="DirectShow">DirectShow</a></li>
<li><a href="/enwiki/wiki/Image_Mastering_API" title="Image Mastering API">Image Mastering API</a></li>
<li><a href="/enwiki/wiki/Managed_DirectX" title="Managed DirectX">Managed DirectX</a></li>
<li><a href="/enwiki/wiki/Media_Foundation" title="Media Foundation">Media Foundation</a></li>
<li><a href="/enwiki/wiki/Microsoft_XNA" title="Microsoft XNA">XNA</a></li>
<li><a href="/enwiki/wiki/Windows_Media" title="Windows Media">Windows Media</a></li>
<li><a href="/enwiki/wiki/Video_for_Windows" title="Video for Windows">Video for Windows</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em">Web</th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Trident_(layout_engine)" class="mw-redirect" title="Trident (layout engine)">MSHTML</a></li>
<li><a href="/enwiki/wiki/Windows_RSS_Platform" title="Windows RSS Platform">RSS Platform</a></li>
<li><a href="/enwiki/wiki/JScript" title="JScript">JScript</a></li>
<li><a href="/enwiki/wiki/VBScript" title="VBScript">VBScript</a></li>
<li><a href="/enwiki/wiki/Browser_Helper_Object" title="Browser Helper Object">BHO</a></li>
<li><a href="/enwiki/wiki/XMLHttpRequest" title="XMLHttpRequest">XDR</a></li>
<li><a href="/enwiki/wiki/Microsoft_Gadgets" title="Microsoft Gadgets">SideBar Gadgets</a></li>
<li><a href="/enwiki/wiki/TypeScript" title="TypeScript">TypeScript</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em">Data access</th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Microsoft_Data_Access_Components" title="Microsoft Data Access Components">Data Access Components (MDAC)</a>
<ul><li><a href="/enwiki/wiki/ActiveX_Data_Objects" title="ActiveX Data Objects">ADO</a></li>
<li><a href="/enwiki/wiki/ADO.NET" title="ADO.NET">ADO.NET</a></li>
<li><a href="/enwiki/wiki/ODBC" class="mw-redirect" title="ODBC">ODBC</a></li>
<li><a href="/enwiki/wiki/OLE_DB" title="OLE DB">OLE DB</a></li></ul></li>
<li><a href="/enwiki/wiki/Extensible_Storage_Engine" title="Extensible Storage Engine">Extensible Storage Engine</a></li>
<li><a href="/enwiki/wiki/Entity_Framework" title="Entity Framework">Entity Framework</a></li>
<li><a href="/enwiki/wiki/Microsoft_Sync_Framework" title="Microsoft Sync Framework">Sync Framework</a></li>
<li><a href="/enwiki/wiki/Microsoft_Jet_Database_Engine" title="Microsoft Jet Database Engine">Jet Engine</a></li>
<li><a href="/enwiki/wiki/MSXML" title="MSXML">MSXML</a></li>
<li><a href="/enwiki/wiki/Open_Packaging_Conventions" title="Open Packaging Conventions">OPC</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em">Networking</th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Winsock" title="Winsock">Winsock</a>
<ul><li><a href="/enwiki/wiki/Layered_Service_Provider" title="Layered Service Provider">LSP</a></li></ul></li>
<li><a href="/enwiki/wiki/Windows_Vista_networking_technologies#Winsock_Kernel" title="Windows Vista networking technologies">Winsock Kernel</a></li>
<li><a href="/enwiki/wiki/Windows_Filtering_Platform" title="Windows Filtering Platform">Filtering Platform</a></li>
<li><a href="/enwiki/wiki/Network_Driver_Interface_Specification" title="Network Driver Interface Specification">NDIS</a></li>
<li><a href="/enwiki/wiki/Windows_Rally" title="Windows Rally">Windows Rally</a></li>
<li><a href="/enwiki/wiki/Background_Intelligent_Transfer_Service" title="Background Intelligent Transfer Service">BITS</a></li>
<li><a href="/enwiki/wiki/Windows_Vista_networking_technologies#Peer-to-peer_communication" title="Windows Vista networking technologies">P2P API</a></li>
<li><a href="/enwiki/wiki/Microsoft_Message_Queuing" title="Microsoft Message Queuing">MSMQ</a></li>
<li><a href="/enwiki/wiki/Microsoft_Messaging_Passing_Interface" class="mw-redirect" title="Microsoft Messaging Passing Interface">MS MPI</a></li>
<li><a href="/enwiki/wiki/DirectPlay" title="DirectPlay">DirectPlay</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em">Communication</th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Messaging_Application_Programming_Interface" class="mw-redirect" title="Messaging Application Programming Interface">Messaging API</a></li>
<li><a href="/enwiki/wiki/Telephony_Application_Programming_Interface" title="Telephony Application Programming Interface">Telephony API</a></li>
<li><a href="/enwiki/wiki/Windows_Communication_Foundation" title="Windows Communication Foundation">WCF</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em">Administration and<br />management</th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Win32_console" class="mw-redirect" title="Win32 console">Win32 console</a></li>
<li><a href="/enwiki/wiki/Windows_Script_Host" title="Windows Script Host">Windows Script Host</a></li>
<li><a href="/enwiki/wiki/Windows_Management_Instrumentation" title="Windows Management Instrumentation">WMI (extensions)</a></li>
<li><a href="/enwiki/wiki/PowerShell" title="PowerShell">PowerShell</a></li>
<li><a href="/enwiki/wiki/Windows_Task_Scheduler" title="Windows Task Scheduler">Task Scheduler</a></li>
<li><a href="/enwiki/wiki/Windows_Vista_I/O_technologies#Offline_Files" title="Windows Vista I/O technologies">Offline Files</a></li>
<li><a href="/enwiki/wiki/Shadow_Copy" title="Shadow Copy">Shadow Copy</a></li>
<li><a href="/enwiki/wiki/Windows_Installer" title="Windows Installer">Windows Installer</a></li>
<li><a href="/enwiki/wiki/Windows_Error_Reporting" title="Windows Error Reporting">Error Reporting</a></li>
<li><a href="/enwiki/wiki/Event_Viewer#Windows_Event_Log" title="Event Viewer">Event Log</a></li>
<li><a href="/enwiki/wiki/Common_Log_File_System" title="Common Log File System">Common Log File System</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em"><a href="/enwiki/wiki/Component-based_software_engineering" title="Component-based software engineering">Component model</a></th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Component_Object_Model" title="Component Object Model">COM</a></li>
<li><a href="/enwiki/wiki/Component_Object_Model#COM+" title="Component Object Model">COM+</a></li>
<li><a href="/enwiki/wiki/ActiveX" title="ActiveX">ActiveX</a></li>
<li><a href="/enwiki/wiki/Distributed_Component_Object_Model" title="Distributed Component Object Model">Distributed Component Object Model</a></li>
<li><a class="mw-selflink selflink">.NET Framework</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em"><a href="/enwiki/wiki/Library_(computing)" title="Library (computing)">Libraries</a></th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Framework_Class_Library" title="Framework Class Library">Framework Class Library</a></li>
<li><a href="/enwiki/wiki/Microsoft_Foundation_Class_Library" title="Microsoft Foundation Class Library">Microsoft Foundation Classes (MFC)</a></li>
<li><a href="/enwiki/wiki/Active_Template_Library" title="Active Template Library">Active Template Library (ATL)</a></li>
<li><a href="/enwiki/wiki/Windows_Template_Library" title="Windows Template Library">Windows Template Library (WTL)</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em"><a href="/enwiki/wiki/Device_driver" title="Device driver">Device drivers</a></th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Windows_Driver_Model" title="Windows Driver Model">WDM</a></li>
<li><a href="/enwiki/wiki/Windows_Driver_Frameworks" title="Windows Driver Frameworks">WDF</a>
<ul><li><a href="/enwiki/wiki/Kernel-Mode_Driver_Framework" title="Kernel-Mode Driver Framework">KMDF</a></li>
<li><a href="/enwiki/wiki/User-Mode_Driver_Framework" title="User-Mode Driver Framework">UMDF</a></li></ul></li>
<li><a href="/enwiki/wiki/Windows_Display_Driver_Model" title="Windows Display Driver Model">WDDM</a></li>
<li><a href="/enwiki/wiki/Network_Driver_Interface_Specification" title="Network Driver Interface Specification">NDIS</a></li>
<li><a href="/enwiki/wiki/Universal_Audio_Architecture" title="Universal Audio Architecture">UAA</a></li>
<li><a href="/enwiki/wiki/Broadcast_Driver_Architecture" title="Broadcast Driver Architecture">BDA</a></li>
<li><a href="/enwiki/wiki/VxD" title="VxD">VxD</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em">Security</th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Microsoft_CryptoAPI" title="Microsoft CryptoAPI">Crypto API</a>
<ul><li><a href="/enwiki/wiki/CAPICOM" title="CAPICOM">CAPICOM</a></li></ul></li>
<li><a href="/enwiki/wiki/Windows_CardSpace" title="Windows CardSpace">Windows CardSpace</a></li>
<li><a href="/enwiki/wiki/Data_Protection_API" title="Data Protection API">Data Protection API</a></li>
<li><a href="/enwiki/wiki/Security_Support_Provider_Interface" title="Security Support Provider Interface">Security Support Provider Interface (SSPI)</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em"><a class="mw-selflink selflink">.NET</a></th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/ASP.NET" title="ASP.NET">ASP.NET</a></li>
<li><a href="/enwiki/wiki/ADO.NET" title="ADO.NET">ADO.NET</a></li>
<li><a href="/enwiki/wiki/.NET_Remoting" title=".NET Remoting">Remoting</a></li>
<li><a href="/enwiki/wiki/Microsoft_Silverlight" title="Microsoft Silverlight">Silverlight</a></li>
<li><a href="/enwiki/wiki/Task_Parallel_Library" class="mw-redirect" title="Task Parallel Library">TPL</a></li>
<li><a href="/enwiki/wiki/Windows_Communication_Foundation" title="Windows Communication Foundation">WCF</a></li>
<li><a href="/enwiki/wiki/Windows_CardSpace" title="Windows CardSpace">WCS</a></li>
<li><a href="/enwiki/wiki/Windows_Presentation_Foundation" title="Windows Presentation Foundation">WPF</a></li>
<li><a href="/enwiki/wiki/Windows_Workflow_Foundation" title="Windows Workflow Foundation">WF</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em"><a href="/enwiki/wiki/Software_Factory_(Microsoft_.NET)" class="mw-redirect" title="Software Factory (Microsoft .NET)">Software factories</a></th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/EFx_Factory" title="EFx Factory">EFx Factory</a></li>
<li><a href="/enwiki/wiki/Microsoft_Enterprise_Library" title="Microsoft Enterprise Library">Enterprise Library</a></li>
<li><a href="/enwiki/wiki/Composite_UI_Application_Block" title="Composite UI Application Block">Composite UI</a></li>
<li><a href="/enwiki/wiki/Microsoft_Customer_Care_Framework" title="Microsoft Customer Care Framework">CCF</a></li>
<li><a href="/enwiki/wiki/Microsoft_Connected_Services_Framework" title="Microsoft Connected Services Framework">CSF</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em"><a href="/enwiki/wiki/Inter-process_communication" title="Inter-process communication">IPC</a></th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Microsoft_RPC" title="Microsoft RPC">MSRPC</a></li>
<li><a href="/enwiki/wiki/Dynamic_Data_Exchange" title="Dynamic Data Exchange">Dynamic Data Exchange (DDE)</a></li>
<li><a href="/enwiki/wiki/.NET_Remoting" title=".NET Remoting">Remoting</a></li>
<li><a href="/enwiki/wiki/Windows_Communication_Foundation" title="Windows Communication Foundation">WCF</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em">Accessibility</th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Microsoft_Active_Accessibility" title="Microsoft Active Accessibility">Active Accessibility</a></li>
<li><a href="/enwiki/wiki/Microsoft_UI_Automation" title="Microsoft UI Automation">UI Automation</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em">Text and multilingual<br />support</th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/DirectWrite" title="DirectWrite">DirectWrite</a></li>
<li><a href="/enwiki/wiki/Text_Services_Framework" title="Text Services Framework">Text Services Framework</a></li>
<li><a href="/enwiki/wiki/Text_Object_Model" title="Text Object Model">Text Object Model</a></li>
<li><a href="/enwiki/wiki/Input_method" title="Input method">Input method editor</a></li>
<li><a href="/enwiki/wiki/Language_Interface_Pack" title="Language Interface Pack">Language Interface Pack</a></li>
<li><a href="/enwiki/wiki/Multilingual_User_Interface" title="Multilingual User Interface">Multilingual User Interface</a></li>
<li><a href="/enwiki/wiki/Uniscribe" title="Uniscribe">Uniscribe</a></li></ul>
</div></td></tr></tbody></table></div>
<div role="navigation" class="navbox" aria-labelledby="Microsoft_free_and_open-source_software_(FOSS)" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1054937957"/><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/enwiki/wiki/Template:Microsoft_FOSS" title="Template:Microsoft FOSS"><abbr title="View this template" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">v</abbr></a></li><li class="nv-talk"><a href="/enwiki/wiki/Template_talk:Microsoft_FOSS" title="Template talk:Microsoft FOSS"><abbr title="Discuss this template" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">t</abbr></a></li><li class="nv-edit"><a class="external text" href="https://en.wikipedia.org/enwiki/w/index.php?title=Template:Microsoft_FOSS&action=edit"><abbr title="Edit this template" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">e</abbr></a></li></ul></div><div id="Microsoft_free_and_open-source_software_(FOSS)" style="font-size:114%;margin:0 4em"><a href="/enwiki/wiki/Microsoft" title="Microsoft">Microsoft</a> <a href="/enwiki/wiki/Free_and_open-source_software" title="Free and open-source software">free and open-source software (FOSS)</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Overview</th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Microsoft_and_open_source" title="Microsoft and open source">Microsoft and open source</a></li>
<li><a href="/enwiki/wiki/Shared_Source_Initiative" title="Shared Source Initiative">Shared Source Initiative</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Software</th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Applications</th><td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Atom_(text_editor)" title="Atom (text editor)">Atom</a></li>
<li><a href="/enwiki/wiki/Conference_XP" title="Conference XP">Conference XP</a></li>
<li><a href="/enwiki/wiki/Family.Show" title="Family.Show">Family.Show</a></li>
<li><a href="/enwiki/wiki/File_Manager_(Windows)" title="File Manager (Windows)">File Manager</a></li>
<li><a href="/enwiki/wiki/Open_Live_Writer" title="Open Live Writer">Open Live Writer</a></li>
<li><a href="/enwiki/wiki/Microsoft_PowerToys" title="Microsoft PowerToys">Microsoft PowerToys</a></li>
<li><a href="/enwiki/wiki/Windows_Calculator" title="Windows Calculator">Windows Calculator</a></li>
<li><a href="/enwiki/wiki/Windows_Console" title="Windows Console">Windows Console</a></li>
<li><a href="/enwiki/wiki/Windows_Package_Manager" title="Windows Package Manager">Windows Package Manager</a></li>
<li><a href="/enwiki/wiki/Windows_Terminal" title="Windows Terminal">Windows Terminal</a></li>
<li><a href="/enwiki/wiki/WorldWide_Telescope" title="WorldWide Telescope">WorldWide Telescope</a></li>
<li><a href="/enwiki/wiki/XML_Notepad" title="XML Notepad">XML Notepad</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Video games</th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Allegiance_(video_game)" title="Allegiance (video game)">Allegiance</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Programming<br />languages</th><td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Bosque_(programming_language)" title="Bosque (programming language)">Bosque</a></li>
<li><a href="/enwiki/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a></li>
<li><a href="/enwiki/wiki/Dafny" title="Dafny">Dafny</a></li>
<li><a href="/enwiki/wiki/F_Sharp_(programming_language)" title="F Sharp (programming language)">F#</a></li>
<li><a href="/enwiki/wiki/F*_(programming_language)" title="F* (programming language)">F*</a></li>
<li><a href="/enwiki/wiki/GW-BASIC" title="GW-BASIC">GW-BASIC</a></li>
<li><a href="/enwiki/wiki/IronPython" title="IronPython">IronPython</a></li>
<li><a href="/enwiki/wiki/IronRuby" title="IronRuby">IronRuby</a></li>
<li><a href="/enwiki/wiki/Lean_(proof_assistant)" title="Lean (proof assistant)">Lean</a></li>
<li><a href="/enwiki/wiki/P_(programming_language)" title="P (programming language)">P</a></li>
<li><a href="/enwiki/wiki/PowerShell" title="PowerShell">PowerShell</a></li>
<li><a href="/enwiki/wiki/Project_Verona" title="Project Verona">Project Verona</a></li>
<li><a href="/enwiki/wiki/Q_Sharp" title="Q Sharp">Q#</a></li>
<li><a href="/enwiki/wiki/R_(programming_language)" title="R (programming language)">R Open</a></li>
<li><a href="/enwiki/wiki/Microsoft_Small_Basic" title="Microsoft Small Basic">Small Basic Online</a></li>
<li><a href="/enwiki/wiki/TypeScript" title="TypeScript">TypeScript</a></li>
<li><a href="/enwiki/wiki/Visual_Basic_.NET" title="Visual Basic .NET">Visual Basic</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Frameworks and<br />development tools</th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/.NET" title=".NET">.NET</a></li>
<li><a href="/enwiki/wiki/.NET_Bio" title=".NET Bio">.NET Bio</a></li>
<li><a class="mw-selflink selflink">.NET Framework</a></li>
<li><a href="/enwiki/wiki/.NET_Gadgeteer" title=".NET Gadgeteer">.NET Gadgeteer</a></li>
<li><a href="/enwiki/wiki/.NET_MAUI" class="mw-redirect" title=".NET MAUI">.NET MAUI</a></li>
<li><a href="/enwiki/wiki/.NET_Micro_Framework" title=".NET Micro Framework">.NET Micro Framework</a></li>
<li><a href="/enwiki/wiki/AirSim" title="AirSim">AirSim</a></li>
<li><a href="/enwiki/wiki/ASP.NET" title="ASP.NET">ASP.NET</a></li>
<li><a href="/enwiki/wiki/ASP.NET_AJAX" title="ASP.NET AJAX">ASP.NET AJAX</a></li>
<li><a href="/enwiki/wiki/ASP.NET_Core" title="ASP.NET Core">ASP.NET Core</a></li>
<li><a href="/enwiki/wiki/ASP.NET_MVC" title="ASP.NET MVC">ASP.NET MVC</a></li>
<li><a href="/enwiki/wiki/ASP.NET_Razor" title="ASP.NET Razor">ASP.NET Razor</a></li>
<li><a href="/enwiki/wiki/ASP.NET_Web_Forms" title="ASP.NET Web Forms">ASP.NET Web Forms</a></li>
<li><a href="/enwiki/wiki/Babylon.js" title="Babylon.js">Babylon.js</a></li>
<li><a href="/enwiki/wiki/BitFunnel" title="BitFunnel">BitFunnel</a></li>
<li><a href="/enwiki/wiki/Blazor" title="Blazor">Blazor</a></li>
<li><a href="/enwiki/wiki/C%2B%2B/WinRT" title="C++/WinRT">C++/WinRT</a></li>
<li><a href="/enwiki/wiki/Confidential_Consortium_Framework" title="Confidential Consortium Framework">CCF</a></li>
<li><a href="/enwiki/wiki/Chakra_(JavaScript_engine)" title="Chakra (JavaScript engine)">ChakraCore</a></li>
<li><a href="/enwiki/wiki/CLR_Profiler" title="CLR Profiler">CLR Profiler</a></li>
<li><a href="/enwiki/wiki/Dapr" title="Dapr">Dapr</a></li>
<li><a href="/enwiki/wiki/DeepSpeed" title="DeepSpeed">DeepSpeed</a></li>
<li><a href="/enwiki/wiki/DiskSpd" title="DiskSpd">DiskSpd</a></li>
<li><a href="/enwiki/wiki/Dryad_(programming)" title="Dryad (programming)">Dryad</a></li>
<li><a href="/enwiki/wiki/Dynamic_Language_Runtime" title="Dynamic Language Runtime">Dynamic Language Runtime</a></li>
<li><a href="/enwiki/wiki/EBPF_on_Windows" class="mw-redirect" title="EBPF on Windows">eBPF on Windows</a></li>
<li><a href="/enwiki/wiki/Electron_(software_framework)" title="Electron (software framework)">Electron</a></li>
<li><a href="/enwiki/wiki/Entity_Framework" title="Entity Framework">Entity Framework</a></li>
<li><a href="/enwiki/wiki/Fluid_Framework" title="Fluid Framework">Fluid Framework</a></li>
<li><a href="/enwiki/wiki/Infer.NET" title="Infer.NET">Infer.NET</a></li>
<li><a href="/enwiki/wiki/LightGBM" title="LightGBM">LightGBM</a></li>
<li><a href="/enwiki/wiki/Managed_Extensibility_Framework" title="Managed Extensibility Framework">Managed Extensibility Framework</a></li>
<li><a href="/enwiki/wiki/Microsoft_Automatic_Graph_Layout" title="Microsoft Automatic Graph Layout">Microsoft Automatic Graph Layout</a></li>
<li><a href="/enwiki/wiki/Microsoft_C%2B%2B_Standard_Library" class="mw-redirect" title="Microsoft C++ Standard Library">Microsoft C++ Standard Library</a></li>
<li><a href="/enwiki/wiki/Microsoft_Cognitive_Toolkit" title="Microsoft Cognitive Toolkit">Microsoft Cognitive Toolkit</a></li>
<li><a href="/enwiki/wiki/Microsoft_Detours" title="Microsoft Detours">Microsoft Detours</a></li>
<li><a href="/enwiki/wiki/Microsoft_Enterprise_Library" title="Microsoft Enterprise Library">Microsoft Enterprise Library</a></li>
<li><a href="/enwiki/wiki/Microsoft_SEAL" title="Microsoft SEAL">Microsoft SEAL</a></li>
<li><a href="/enwiki/wiki/Mimalloc" title="Mimalloc">Mimalloc</a></li>
<li><a href="/enwiki/wiki/ML.NET" title="ML.NET">ML.NET</a></li>
<li><a href="/enwiki/wiki/Mod_mono" title="Mod mono">mod_mono</a></li>
<li><a href="/enwiki/wiki/Mono_(software)" title="Mono (software)">Mono</a></li>
<li><a href="/enwiki/wiki/MonoDevelop" title="MonoDevelop">MonoDevelop</a></li>
<li><a href="/enwiki/wiki/MSBuild" title="MSBuild">MSBuild</a></li>
<li><a href="/enwiki/wiki/MsQuic" title="MsQuic">MsQuic</a></li>
<li><a href="/enwiki/wiki/Neural_Network_Intelligence" title="Neural Network Intelligence">Neural Network Intelligence</a></li>
<li><a href="/enwiki/wiki/Npm_(software)" title="Npm (software)">npm</a></li>
<li><a href="/enwiki/wiki/NuGet" title="NuGet">NuGet</a></li>
<li><a href="/enwiki/wiki/OneFuzz" title="OneFuzz">OneFuzz</a></li>
<li><a href="/enwiki/wiki/Open_Management_Infrastructure" title="Open Management Infrastructure">Open Management Infrastructure</a></li>
<li><a href="/enwiki/wiki/Open_Neural_Network_Exchange" title="Open Neural Network Exchange">Open Neural Network Exchange</a></li>
<li><a href="/enwiki/wiki/Open_Service_Mesh" title="Open Service Mesh">Open Service Mesh</a></li>
<li><a href="/enwiki/wiki/Open_XML_SDK" class="mw-redirect" title="Open XML SDK">Open XML SDK</a></li>
<li><a href="/enwiki/wiki/Orleans_(software_framework)" title="Orleans (software framework)">Orleans</a></li>
<li><a href="/enwiki/wiki/ProcDump" title="ProcDump">ProcDump</a></li>
<li><a href="/enwiki/wiki/Process_Monitor" title="Process Monitor">ProcMon</a></li>
<li><a href="/enwiki/wiki/Python_Tools_for_Visual_Studio" title="Python Tools for Visual Studio">Python Tools for Visual Studio</a></li>
<li><a href="/enwiki/wiki/R_Tools_for_Visual_Studio" title="R Tools for Visual Studio">R Tools for Visual Studio</a></li>
<li><a href="/enwiki/wiki/RecursiveExtractor" class="mw-redirect" title="RecursiveExtractor">RecursiveExtractor</a></li>
<li><a href="/enwiki/wiki/Roslyn_(compiler)" title="Roslyn (compiler)">Roslyn</a></li>
<li><a href="/enwiki/wiki/Sandcastle_(software)" title="Sandcastle (software)">Sandcastle</a></li>
<li><a href="/enwiki/wiki/SignalR" title="SignalR">SignalR</a></li>
<li><a href="/enwiki/wiki/StyleCop" title="StyleCop">StyleCop</a></li>
<li><a href="/enwiki/wiki/SVNBridge" title="SVNBridge">SVNBridge</a></li>
<li><a href="/enwiki/wiki/T2_Temporal_Prover" title="T2 Temporal Prover">T2 Temporal Prover</a></li>
<li><a href="/enwiki/wiki/Text_Template_Transformation_Toolkit" title="Text Template Transformation Toolkit">Text Template Transformation Toolkit</a></li>
<li><a href="/enwiki/wiki/TLA%2B_Toolbox" class="mw-redirect" title="TLA+ Toolbox">TLA+ Toolbox</a></li>
<li><a href="/enwiki/wiki/U-Prove" title="U-Prove">U-Prove</a></li>
<li><a href="/enwiki/wiki/Vcpkg" title="Vcpkg">vcpkg</a></li>
<li><a href="/enwiki/wiki/Virtual_File_System_for_Git" title="Virtual File System for Git">Virtual File System for Git</a></li>
<li><a href="/enwiki/wiki/Visual_Studio_Code" title="Visual Studio Code">Visual Studio Code</a></li>
<li><a href="/enwiki/wiki/Voldemort_(distributed_data_store)" title="Voldemort (distributed data store)">Voldemort</a></li>
<li><a href="/enwiki/wiki/VoTT" title="VoTT">VoTT</a></li>
<li><a href="/enwiki/wiki/Vowpal_Wabbit" title="Vowpal Wabbit">Vowpal Wabbit</a></li>
<li><a href="/enwiki/wiki/Windows_Communication_Foundation" title="Windows Communication Foundation">Windows Communication Foundation</a></li>
<li><a href="/enwiki/wiki/Windows_Driver_Frameworks" title="Windows Driver Frameworks">Windows Driver Frameworks</a>
<ul><li><a href="/enwiki/wiki/Kernel-Mode_Driver_Framework" title="Kernel-Mode Driver Framework">KMDF</a></li>
<li><a href="/enwiki/wiki/User-Mode_Driver_Framework" title="User-Mode Driver Framework">UMDF</a></li></ul></li>
<li><a href="/enwiki/wiki/Windows_Forms" title="Windows Forms">Windows Forms</a></li>
<li><a href="/enwiki/wiki/Windows_Presentation_Foundation" title="Windows Presentation Foundation">Windows Presentation Foundation</a></li>
<li><a href="/enwiki/wiki/Windows_Template_Library" title="Windows Template Library">Windows Template Library</a></li>
<li><a href="/enwiki/wiki/Windows_UI_Library" title="Windows UI Library">Windows UI Library</a></li>
<li><a href="/enwiki/wiki/WinJS" title="WinJS">WinJS</a></li>
<li><a href="/enwiki/wiki/WinObjC" class="mw-redirect" title="WinObjC">WinObjC</a></li>
<li><a href="/enwiki/wiki/WiX" title="WiX">WiX</a></li>
<li><a href="/enwiki/wiki/XSP_(software)" title="XSP (software)">XSP</a></li>
<li><a href="/enwiki/wiki/XUnit.net" title="XUnit.net">xUnit.net</a></li>
<li><a href="/enwiki/wiki/Z3_Theorem_Prover" title="Z3 Theorem Prover">Z3 Theorem Prover</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Operating systems</th><td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/MS-DOS" title="MS-DOS">MS-DOS</a> (v1.25 & v2.0)</li>
<li><a href="/enwiki/wiki/Barrelfish" title="Barrelfish">Barrelfish</a></li>
<li><a href="/enwiki/wiki/SONiC_(operating_system)" title="SONiC (operating system)">SONiC</a></li>
<li><a href="/enwiki/wiki/CBL-Mariner" title="CBL-Mariner">CBL-Mariner</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/ChronoZoom" title="ChronoZoom">ChronoZoom</a></li>
<li><a href="/enwiki/wiki/Extensible_Storage_Engine" title="Extensible Storage Engine">Extensible Storage Engine</a></li>
<li><a href="/enwiki/wiki/FlexWiki" class="mw-redirect" title="FlexWiki">FlexWiki</a></li>
<li><a href="/enwiki/wiki/FourQ" title="FourQ">FourQ</a></li>
<li><a href="/enwiki/wiki/Gollum_(software)" title="Gollum (software)">Gollum</a></li>
<li><a href="/enwiki/wiki/Project_Mu" class="mw-redirect" title="Project Mu">Project Mu</a></li>
<li><a href="/enwiki/wiki/ReactiveX" title="ReactiveX">ReactiveX</a></li>
<li><a href="/enwiki/wiki/SILK" title="SILK">SILK</a></li>
<li><a href="/enwiki/wiki/TLAPS" class="mw-redirect" title="TLAPS">TLAPS</a></li>
<li><a href="/enwiki/wiki/TPM_2.0_Reference_Implementation" class="mw-redirect" title="TPM 2.0 Reference Implementation">TPM 2.0 Reference Implementation</a></li>
<li><a href="/enwiki/wiki/WikiBhasha" title="WikiBhasha">WikiBhasha</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/enwiki/wiki/Open-source_license" title="Open-source license">Licenses</a></th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Microsoft_Public_License" class="mw-redirect" title="Microsoft Public License">Microsoft Public License</a></li>
<li><a href="/enwiki/wiki/Microsoft_Reciprocal_License" class="mw-redirect" title="Microsoft Reciprocal License">Microsoft Reciprocal License</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/enwiki/wiki/Forge_(software)" title="Forge (software)">Forges</a></th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/CodePlex" title="CodePlex">CodePlex</a></li>
<li><a href="/enwiki/wiki/GitHub" title="GitHub">GitHub</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Related</th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/.NET_Foundation" title=".NET Foundation">.NET Foundation</a></li>
<li><a href="/enwiki/wiki/F_Sharp_Software_Foundation" title="F Sharp Software Foundation">F# Software Foundation</a></li>
<li><a href="/enwiki/wiki/Microsoft_Open_Specification_Promise" title="Microsoft Open Specification Promise">Microsoft Open Specification Promise</a></li>
<li><a href="/enwiki/wiki/Open_Letter_to_Hobbyists" title="Open Letter to Hobbyists">Open Letter to Hobbyists</a></li>
<li><a href="/enwiki/wiki/Open_Source_Security_Foundation" title="Open Source Security Foundation">Open Source Security Foundation</a></li>
<li><a href="/enwiki/wiki/Outercurve_Foundation" title="Outercurve Foundation">Outercurve Foundation</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div><img alt="Category" src="/upwiki/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" title="Category" width="16" height="16" class="noviewer" srcset="/upwiki/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, /upwiki/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /> <a href="/enwiki/wiki/Category:Microsoft_free_software" title="Category:Microsoft free software">Category</a></div></td></tr></tbody></table></div>
<div role="navigation" class="navbox" aria-labelledby="Microsoft_Windows_components" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1054937957"/><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/enwiki/wiki/Template:Microsoft_Windows_components" title="Template:Microsoft Windows components"><abbr title="View this template" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">v</abbr></a></li><li class="nv-talk"><a href="/enwiki/wiki/Template_talk:Microsoft_Windows_components" title="Template talk:Microsoft Windows components"><abbr title="Discuss this template" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">t</abbr></a></li><li class="nv-edit"><a class="external text" href="https://en.wikipedia.org/enwiki/w/index.php?title=Template:Microsoft_Windows_components&action=edit"><abbr title="Edit this template" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">e</abbr></a></li></ul></div><div id="Microsoft_Windows_components" style="font-size:114%;margin:0 4em"><a href="/enwiki/wiki/Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a> <a href="/enwiki/wiki/Computer_program" title="Computer program">components</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Management<br />tools</th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/App_Installer" title="App Installer">App Installer</a></li>
<li><a href="/enwiki/wiki/Cmd.exe" title="Cmd.exe">Command Prompt</a></li>
<li><a href="/enwiki/wiki/Control_Panel_(Windows)" title="Control Panel (Windows)">Control Panel</a>
<ul><li><a href="/enwiki/wiki/List_of_Control_Panel_applets_(Windows)" class="mw-redirect" title="List of Control Panel applets (Windows)">Applets</a></li></ul></li>
<li><a href="/enwiki/wiki/Device_Manager" title="Device Manager">Device Manager</a></li>
<li><a href="/enwiki/wiki/Disk_Cleanup" title="Disk Cleanup">Disk Cleanup</a></li>
<li><a href="/enwiki/wiki/Disk_Defragmenter_(Windows)" class="mw-redirect" title="Disk Defragmenter (Windows)">Disk Defragmenter</a></li>
<li><a href="/enwiki/wiki/Driver_Verifier" title="Driver Verifier">Driver Verifier</a></li>
<li><a href="/enwiki/wiki/DxDiag" title="DxDiag">DxDiag</a></li>
<li><a href="/enwiki/wiki/Event_Viewer" title="Event Viewer">Event Viewer</a></li>
<li><a href="/enwiki/wiki/IExpress" title="IExpress">IExpress</a></li>
<li><a href="/enwiki/wiki/Microsoft_Management_Console" title="Microsoft Management Console">Management Console</a></li>
<li><a href="/enwiki/wiki/Netsh" title="Netsh">Netsh</a></li>
<li><a href="/enwiki/wiki/Performance_Monitor" title="Performance Monitor">Performance Monitor</a></li>
<li><a href="/enwiki/wiki/Recovery_Console" title="Recovery Console">Recovery Console</a></li>
<li><a href="/enwiki/wiki/Resource_Monitor" title="Resource Monitor">Resource Monitor</a></li>
<li><a href="/enwiki/wiki/Settings_(Windows)" title="Settings (Windows)">Settings</a></li>
<li><a href="/enwiki/wiki/Sysprep" title="Sysprep">Sysprep</a></li>
<li><a href="/enwiki/wiki/MSConfig" title="MSConfig">System Configuration</a></li>
<li><a href="/enwiki/wiki/System_File_Checker" title="System File Checker">System File Checker</a></li>
<li><a href="/enwiki/wiki/System_Information_(Windows)" title="System Information (Windows)">System Information</a></li>
<li><a href="/enwiki/wiki/System_Policy_Editor" title="System Policy Editor">System Policy Editor</a></li>
<li><a href="/enwiki/wiki/System_Restore" title="System Restore">System Restore</a></li>
<li><a href="/enwiki/wiki/Task_Manager_(Windows)" title="Task Manager (Windows)">Task Manager</a></li>
<li><a href="/enwiki/wiki/Windows_Error_Reporting" title="Windows Error Reporting">Windows Error Reporting</a></li>
<li><a href="/enwiki/wiki/Windows_Ink" title="Windows Ink">Windows Ink</a></li>
<li><a href="/enwiki/wiki/Windows_Installer" title="Windows Installer">Windows Installer</a></li>
<li><a href="/enwiki/wiki/PowerShell" title="PowerShell">PowerShell</a></li>
<li><a href="/enwiki/wiki/Windows_Update" title="Windows Update">Windows Update</a>
<ul><li><a href="/enwiki/wiki/Windows_Insider" title="Windows Insider">Windows Insider</a></li></ul></li>
<li><a href="/enwiki/wiki/Windows_Recovery_Environment" class="mw-redirect" title="Windows Recovery Environment">WinRE</a></li>
<li><a href="/enwiki/wiki/Windows_Management_Instrumentation" title="Windows Management Instrumentation">WMI</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/enwiki/wiki/Computer_program" title="Computer program">Apps</a></th><td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Microsoft_3D_Viewer" title="Microsoft 3D Viewer">3D Viewer</a></li>
<li><a href="/enwiki/wiki/Windows_Alarms_%26_Clock" title="Windows Alarms & Clock">Alarms & Clock</a></li>
<li><a href="/enwiki/wiki/Windows_Calculator" title="Windows Calculator">Calculator</a></li>
<li><a href="/enwiki/wiki/Calendar_(Windows)" title="Calendar (Windows)">Calendar</a></li>
<li><a href="/enwiki/wiki/Windows_Camera" title="Windows Camera">Camera</a></li>
<li><a href="/enwiki/wiki/Character_Map_(Windows)" title="Character Map (Windows)">Character Map</a></li>
<li><a href="/enwiki/wiki/Cortana" title="Cortana">Cortana</a></li>
<li><a href="/enwiki/wiki/Microsoft_Edge" title="Microsoft Edge">Edge</a></li>
<li><a href="/enwiki/wiki/Windows_Fax_and_Scan" title="Windows Fax and Scan">Fax and Scan</a></li>
<li><a href="/enwiki/wiki/Feedback_Hub" title="Feedback Hub">Feedback Hub</a></li>
<li><a href="/enwiki/wiki/Get_Help" title="Get Help">Get Help</a></li>
<li><a href="/enwiki/wiki/Groove_Music" title="Groove Music">Groove Music</a></li>
<li><a href="/enwiki/wiki/Magnifier_(Windows)" title="Magnifier (Windows)">Magnifier</a></li>
<li><a href="/enwiki/wiki/Mail_(Windows)" title="Mail (Windows)">Mail</a></li>
<li><a href="/enwiki/wiki/Windows_Maps" title="Windows Maps">Maps</a></li>
<li><a href="/enwiki/wiki/Microsoft_Messaging" title="Microsoft Messaging">Messaging</a></li>
<li><a href="/enwiki/wiki/Microsoft_Movies_%26_TV" title="Microsoft Movies & TV">Movies & TV</a></li>
<li><a href="/enwiki/wiki/Windows_Mobility_Center" title="Windows Mobility Center">Mobility Center</a></li>
<li><a href="/enwiki/wiki/MSN_apps#Money" class="mw-redirect" title="MSN apps">Money</a></li>
<li><a href="/enwiki/wiki/MSN_apps#News" class="mw-redirect" title="MSN apps">News</a></li>
<li><a href="/enwiki/wiki/Microsoft_Narrator" title="Microsoft Narrator">Narrator</a></li>
<li><a href="/enwiki/wiki/Microsoft_Notepad" class="mw-redirect" title="Microsoft Notepad">Notepad</a></li>
<li><a href="/enwiki/wiki/Microsoft_OneDrive" class="mw-redirect" title="Microsoft OneDrive">OneDrive</a></li>
<li><a href="/enwiki/wiki/Microsoft_OneNote" title="Microsoft OneNote">OneNote</a></li>
<li><a href="/enwiki/wiki/Microsoft_Paint" title="Microsoft Paint">Paint</a></li>
<li><a href="/enwiki/wiki/Paint_3D" title="Paint 3D">Paint 3D</a></li>
<li><a href="/enwiki/wiki/People_(Windows)" title="People (Windows)">People</a></li>
<li><a href="/enwiki/wiki/Microsoft_Photos" title="Microsoft Photos">Photos</a></li>
<li><a href="/enwiki/wiki/Quick_Assist" title="Quick Assist">Quick Assist</a></li>
<li><a href="/enwiki/wiki/Snip_%26_Sketch" class="mw-redirect" title="Snip & Sketch">Snip & Sketch</a></li>
<li><a href="/enwiki/wiki/Windows_Speech_Recognition" title="Windows Speech Recognition">Speech Recognition</a></li>
<li><a href="/enwiki/wiki/Skype" title="Skype">Skype</a></li>
<li><a href="/enwiki/wiki/MSN_apps#Sports" class="mw-redirect" title="MSN apps">Sports</a></li>
<li><a href="/enwiki/wiki/Sticky_Notes" title="Sticky Notes">Sticky Notes</a></li>
<li><a href="/enwiki/wiki/Microsoft_Store" title="Microsoft Store">Store</a></li>
<li><a href="/enwiki/wiki/Microsoft_Tips" title="Microsoft Tips">Tips</a></li>
<li><a href="/enwiki/wiki/Windows_Voice_Recorder" title="Windows Voice Recorder">Voice Recorder</a></li>
<li><a href="/enwiki/wiki/MSN_apps#Weather" class="mw-redirect" title="MSN apps">Weather</a></li>
<li><a href="/enwiki/wiki/WordPad" title="WordPad">WordPad</a></li>
<li><a href="/enwiki/wiki/Xbox_Console_Companion" class="mw-redirect" title="Xbox Console Companion">Xbox Console Companion</a></li>
<li><a href="/enwiki/wiki/Your_Phone" title="Your Phone">Your Phone</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/enwiki/wiki/Windows_shell" title="Windows shell">Shell</a></th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Action_Center" title="Action Center">Action Center</a></li>
<li><a href="/enwiki/wiki/Windows_Aero" title="Windows Aero">Aero</a></li>
<li><a href="/enwiki/wiki/AutoPlay" title="AutoPlay">AutoPlay</a></li>
<li><a href="/enwiki/wiki/AutoRun" title="AutoRun">AutoRun</a></li>
<li><a href="/enwiki/wiki/ClearType" title="ClearType">ClearType</a></li>
<li><a href="/enwiki/wiki/File_Explorer" title="File Explorer">Explorer</a></li>
<li><a href="/enwiki/wiki/Windows_Search" title="Windows Search">Search</a>
<ul><li><a href="/enwiki/wiki/Indexing_Service" title="Indexing Service">Indexing Service</a></li>
<li><a href="/enwiki/wiki/IFilter" title="IFilter">IFilter</a></li>
<li><a href="/enwiki/wiki/Virtual_folder#Windows" title="Virtual folder">Saved search</a></li>
<li><a href="/enwiki/wiki/Windows_Shell_namespace" title="Windows Shell namespace">Namespace</a></li>
<li><a href="/enwiki/wiki/Special_folder" title="Special folder">Special folder</a></li></ul></li>
<li><a href="/enwiki/wiki/Start_menu" title="Start menu">Start menu</a></li>
<li><a href="/enwiki/wiki/Taskbar" title="Taskbar">Taskbar</a></li>
<li><a href="/enwiki/wiki/Task_View" title="Task View">Task View</a></li>
<li><a href="/enwiki/wiki/Windows_Spotlight" title="Windows Spotlight">Windows Spotlight</a></li>
<li><a href="/enwiki/wiki/Windows_XP_visual_styles" title="Windows XP visual styles">Windows XP visual styles</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/enwiki/wiki/Windows_service" title="Windows service">Services</a></th><td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Service_Control_Manager" title="Service Control Manager">Service Control Manager</a></li>
<li><a href="/enwiki/wiki/Background_Intelligent_Transfer_Service" title="Background Intelligent Transfer Service">BITS</a></li>
<li><a href="/enwiki/wiki/Common_Log_File_System" title="Common Log File System">CLFS</a></li>
<li><a href="/enwiki/wiki/Multimedia_Class_Scheduler_Service" title="Multimedia Class Scheduler Service">Multimedia Class Scheduler</a></li>
<li><a href="/enwiki/wiki/Shadow_Copy" title="Shadow Copy">Shadow Copy</a></li>
<li><a href="/enwiki/wiki/Windows_Task_Scheduler" title="Windows Task Scheduler">Task Scheduler</a></li>
<li><a href="/enwiki/wiki/Windows_Error_Reporting" title="Windows Error Reporting">Error Reporting</a></li>
<li><a href="/enwiki/wiki/Wireless_Zero_Configuration" title="Wireless Zero Configuration">Wireless Zero Configuration</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/enwiki/wiki/File_system" title="File system">File systems</a></th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/ISO_9660" title="ISO 9660">CDFS</a></li>
<li><a href="/enwiki/wiki/Distributed_File_System_(Microsoft)" title="Distributed File System (Microsoft)">DFS</a></li>
<li><a href="/enwiki/wiki/ExFAT" title="ExFAT">exFAT</a></li>
<li><a href="/enwiki/wiki/Installable_File_System" title="Installable File System">IFS</a></li>
<li><a href="/enwiki/wiki/File_Allocation_Table" title="File Allocation Table">FAT</a></li>
<li><a href="/enwiki/wiki/NTFS" title="NTFS">NTFS</a>
<ul><li><a href="/enwiki/wiki/Hard_link" title="Hard link">Hard link</a></li>
<li><a href="/enwiki/wiki/NTFS_links" title="NTFS links">links</a></li>
<li><a href="/enwiki/wiki/NTFS_volume_mount_point" title="NTFS volume mount point">Mount Point</a></li>
<li><a href="/enwiki/wiki/NTFS_reparse_point" title="NTFS reparse point">Reparse point</a></li>
<li><a href="/enwiki/wiki/Transactional_NTFS" title="Transactional NTFS">TxF</a></li>
<li><a href="/enwiki/wiki/Encrypting_File_System" title="Encrypting File System">EFS</a></li></ul></li>
<li><a href="/enwiki/wiki/ReFS" title="ReFS">ReFS</a></li>
<li><a href="/enwiki/wiki/Universal_Disk_Format" title="Universal Disk Format">UDF</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/enwiki/wiki/Server_(computing)" title="Server (computing)">Server</a></th><td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Windows_domain" title="Windows domain">Domains</a></li>
<li><a href="/enwiki/wiki/Active_Directory" title="Active Directory">Active Directory</a></li>
<li><a href="/enwiki/wiki/Microsoft_DNS" title="Microsoft DNS">DNS</a></li>
<li><a href="/enwiki/wiki/Group_Policy" title="Group Policy">Group Policy</a></li>
<li><a href="/enwiki/wiki/Roaming_user_profile" title="Roaming user profile">Roaming user profiles</a></li>
<li><a href="/enwiki/wiki/Folder_redirection" title="Folder redirection">Folder redirection</a></li>
<li><a href="/enwiki/wiki/Microsoft_Distributed_Transaction_Coordinator" title="Microsoft Distributed Transaction Coordinator">Distributed Transaction Coordinator</a></li>
<li><a href="/enwiki/wiki/Microsoft_Message_Queuing" title="Microsoft Message Queuing">MSMQ</a></li>
<li><a href="/enwiki/wiki/Windows_Media_Services" title="Windows Media Services">Windows Media Services</a></li>
<li><a href="/enwiki/wiki/Active_Directory_Rights_Management_Services" title="Active Directory Rights Management Services">Active DRM Services</a></li>
<li><a href="/enwiki/wiki/Internet_Information_Services" title="Internet Information Services">IIS</a></li>
<li><a href="/enwiki/wiki/Windows_Server_Update_Services" title="Windows Server Update Services">WSUS</a></li>
<li><a href="/enwiki/wiki/Microsoft_SharePoint" class="mw-redirect" title="Microsoft SharePoint">SharePoint</a></li>
<li><a href="/enwiki/wiki/Network_Access_Protection" title="Network Access Protection">Network Access Protection</a></li>
<li><a href="/enwiki/wiki/Microsoft_Personal_Web_Server" title="Microsoft Personal Web Server">PWS</a></li>
<li><a href="/enwiki/wiki/File_Replication_Service" title="File Replication Service">DFS Replication</a></li>
<li><a href="/enwiki/wiki/Print_Services_for_UNIX" title="Print Services for UNIX">Print Services for UNIX</a></li>
<li><a href="/enwiki/wiki/Remote_Desktop_Services" title="Remote Desktop Services">Remote Desktop Services</a></li>
<li><a href="/enwiki/wiki/Remote_Differential_Compression" title="Remote Differential Compression">Remote Differential Compression</a></li>
<li><a href="/enwiki/wiki/Remote_Installation_Services" title="Remote Installation Services">Remote Installation Services</a></li>
<li><a href="/enwiki/wiki/Windows_Deployment_Services" title="Windows Deployment Services">Windows Deployment Services</a></li>
<li><a href="/enwiki/wiki/Windows_System_Resource_Manager" title="Windows System Resource Manager">System Resource Manager</a></li>
<li><a href="/enwiki/wiki/Hyper-V" title="Hyper-V">Hyper-V</a></li>
<li><a href="/enwiki/wiki/Server_Core" title="Server Core">Server Core</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/enwiki/wiki/Software_architecture" title="Software architecture">Architecture</a></th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Architecture_of_Windows_NT" title="Architecture of Windows NT">Architecture of Windows NT</a></li>
<li><a href="/enwiki/wiki/Windows_startup_process" class="mw-redirect" title="Windows startup process">Startup process</a>
<ul><li><a href="/enwiki/wiki/Windows_NT_startup_process" class="mw-redirect" title="Windows NT startup process">NT</a></li>
<li><a href="/enwiki/wiki/Windows_NT_6_startup_process" title="Windows NT 6 startup process">NT 6</a></li></ul></li>
<li><a href="/enwiki/wiki/Client/Server_Runtime_Subsystem" title="Client/Server Runtime Subsystem">CSRSS</a></li>
<li><a href="/enwiki/wiki/Desktop_Window_Manager" title="Desktop Window Manager">Desktop Window Manager</a></li>
<li><a href="/enwiki/wiki/Portable_Executable" title="Portable Executable">Portable Executable</a>
<ul><li><a href="/enwiki/wiki/.exe" title=".exe">EXE</a></li>
<li><a href="/enwiki/wiki/Dynamic-link_library" title="Dynamic-link library">DLL</a></li></ul></li>
<li><a href="/enwiki/wiki/Enhanced_Write_Filter" title="Enhanced Write Filter">Enhanced Write Filter</a></li>
<li><a href="/enwiki/wiki/Graphics_Device_Interface" title="Graphics Device Interface">Graphics Device Interface</a></li>
<li><a href="/enwiki/wiki/Hal.dll" class="mw-redirect" title="Hal.dll">hal.dll</a></li>
<li><a href="/enwiki/wiki/I/O_request_packet" title="I/O request packet">I/O request packet</a></li>
<li><a href="/enwiki/wiki/Windows_Imaging_Format" title="Windows Imaging Format">Imaging Format</a></li>
<li><a href="/enwiki/wiki/Kernel_Transaction_Manager" title="Kernel Transaction Manager">Kernel Transaction Manager</a></li>
<li><a href="/enwiki/wiki/Microsoft_Windows_library_files" title="Microsoft Windows library files">Library files</a></li>
<li><a href="/enwiki/wiki/Logical_Disk_Manager" title="Logical Disk Manager">Logical Disk Manager</a></li>
<li><a href="/enwiki/wiki/Local_Security_Authority_Subsystem_Service" title="Local Security Authority Subsystem Service">LSASS</a></li>
<li><a href="/enwiki/wiki/MinWin" title="MinWin">MinWin</a></li>
<li><a href="/enwiki/wiki/NTLDR" title="NTLDR">NTLDR</a></li>
<li><a href="/enwiki/wiki/Ntoskrnl.exe" title="Ntoskrnl.exe">Ntoskrnl.exe</a></li>
<li><a href="/enwiki/wiki/Object_Manager_(Windows)" title="Object Manager (Windows)">Object Manager</a></li>
<li><a href="/enwiki/wiki/Open_XML_Paper_Specification" title="Open XML Paper Specification">Open XML Paper Specification</a></li>
<li><a href="/enwiki/wiki/Windows_Registry" title="Windows Registry">Registry</a></li>
<li><a href="/enwiki/wiki/Windows_Resource_Protection" title="Windows Resource Protection">Resource Protection</a></li>
<li><a href="/enwiki/wiki/Security_Account_Manager" title="Security Account Manager">Security Account Manager</a></li>
<li><a href="/enwiki/wiki/Server_Message_Block" title="Server Message Block">Server Message Block</a></li>
<li><a href="/enwiki/wiki/Shadow_Copy" title="Shadow Copy">Shadow Copy</a></li>
<li><a href="/enwiki/wiki/Session_Manager_Subsystem" title="Session Manager Subsystem">SMSS</a></li>
<li><a href="/enwiki/wiki/System_Idle_Process" title="System Idle Process">System Idle Process</a></li>
<li><a href="/enwiki/wiki/Windows_USER" title="Windows USER">USER</a></li>
<li><a href="/enwiki/wiki/Windows_Hardware_Error_Architecture" title="Windows Hardware Error Architecture">WHEA</a></li>
<li><a href="/enwiki/wiki/Win32_console" class="mw-redirect" title="Win32 console">Win32 console</a></li>
<li><a href="/enwiki/wiki/Winlogon" title="Winlogon">Winlogon</a></li>
<li><a href="/enwiki/wiki/WinUSB" title="WinUSB">WinUSB</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Security</th><td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Security_and_Maintenance" title="Security and Maintenance">Security and Maintenance</a></li>
<li><a href="/enwiki/wiki/AppLocker" title="AppLocker">AppLocker</a></li>
<li><a href="/enwiki/wiki/BitLocker" title="BitLocker">BitLocker</a></li>
<li><a href="/enwiki/wiki/Credential_Guard" title="Credential Guard">Credential Guard</a></li>
<li><a href="/enwiki/wiki/Data_Execution_Prevention" class="mw-redirect" title="Data Execution Prevention">Data Execution Prevention</a></li>
<li><a href="/enwiki/wiki/Microsoft_Family_Safety" class="mw-redirect" title="Microsoft Family Safety">Family Safety</a></li>
<li><a href="/enwiki/wiki/Kernel_Patch_Protection" title="Kernel Patch Protection">Kernel Patch Protection</a></li>
<li><a href="/enwiki/wiki/Mandatory_Integrity_Control" title="Mandatory Integrity Control">Mandatory Integrity Control</a></li>
<li><a href="/enwiki/wiki/Protected_Media_Path" title="Protected Media Path">Protected Media Path</a></li>
<li><a href="/enwiki/wiki/User_Account_Control" title="User Account Control">User Account Control</a></li>
<li><a href="/enwiki/wiki/User_Interface_Privilege_Isolation" title="User Interface Privilege Isolation">User Interface Privilege Isolation</a></li>
<li><a href="/enwiki/wiki/Windows_Defender" class="mw-redirect" title="Windows Defender">Windows Defender</a></li>
<li><a href="/enwiki/wiki/Windows_Firewall" title="Windows Firewall">Windows Firewall</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Compatibility</th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/COMMAND.COM" title="COMMAND.COM">COMMAND.COM</a></li>
<li><a href="/enwiki/wiki/WoW64" title="WoW64">WoW64</a></li>
<li><a href="/enwiki/wiki/Windows_Subsystem_for_Linux" title="Windows Subsystem for Linux">Windows Subsystem for Linux</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/enwiki/wiki/Application_programming_interface" class="mw-redirect" title="Application programming interface">API</a></th><td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Active_Scripting" title="Active Scripting">Active Scripting</a>
<ul><li><a href="/enwiki/wiki/Windows_Script_Host" title="Windows Script Host">WSH</a></li>
<li><a href="/enwiki/wiki/VBScript" title="VBScript">VBScript</a></li>
<li><a href="/enwiki/wiki/JScript" title="JScript">JScript</a></li></ul></li>
<li><a href="/enwiki/wiki/Component_Object_Model" title="Component Object Model">COM</a>
<ul><li><a href="/enwiki/wiki/ActiveX" title="ActiveX">ActiveX</a></li>
<li><a href="/enwiki/wiki/ActiveX_Document" title="ActiveX Document">ActiveX Document</a></li>
<li><a href="/enwiki/wiki/COM_Structured_Storage" title="COM Structured Storage">COM Structured storage</a></li>
<li><a href="/enwiki/wiki/Distributed_Component_Object_Model" title="Distributed Component Object Model">DCOM</a></li>
<li><a href="/enwiki/wiki/Object_Linking_and_Embedding" title="Object Linking and Embedding">OLE</a></li>
<li><a href="/enwiki/wiki/OLE_Automation" title="OLE Automation">OLE Automation</a></li>
<li><a href="/enwiki/wiki/Microsoft_Transaction_Server" title="Microsoft Transaction Server">Transaction Server</a></li></ul></li>
<li><a href="/enwiki/wiki/DirectX" title="DirectX">DirectX</a></li>
<li><a class="mw-selflink selflink">.NET Framework</a></li>
<li><a href="/enwiki/wiki/Universal_Windows_Platform" title="Universal Windows Platform">Universal Windows Platform</a></li>
<li><a href="/enwiki/wiki/Windows_Mixed_Reality" title="Windows Mixed Reality">Windows Mixed Reality</a></li>
<li><a href="/enwiki/wiki/Windows_Runtime" title="Windows Runtime">Windows Runtime</a></li>
<li><a href="/enwiki/wiki/WinUSB" title="WinUSB">WinUSB</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/enwiki/wiki/List_of_games_included_with_Windows" title="List of games included with Windows">Games</a></th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><i><a href="/enwiki/wiki/Microsoft_Solitaire_Collection" title="Microsoft Solitaire Collection">Solitaire Collection</a></i></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Discontinued</th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/enwiki/wiki/List_of_games_included_with_Windows" title="List of games included with Windows">Games</a></th><td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><i><a href="/enwiki/wiki/Full_Tilt!_Pinball#3D_Pinball_for_Windows_–_Space_Cadet" title="Full Tilt! Pinball">3D Pinball</a></i></li>
<li><i><a href="/enwiki/wiki/Chess_Titans" title="Chess Titans">Chess Titans</a></i></li>
<li><i><a href="/enwiki/wiki/Microsoft_FreeCell" title="Microsoft FreeCell">FreeCell</a></i></li>
<li><i><a href="/enwiki/wiki/Microsoft_Hearts" title="Microsoft Hearts">Hearts</a></i></li>
<li><i><a href="/enwiki/wiki/InkBall" title="InkBall">InkBall</a></i></li>
<li><i><a href="/enwiki/wiki/Windows_Ultimate_Extras" title="Windows Ultimate Extras">Hold 'Em</a></i></li>
<li><i><a href="/enwiki/wiki/Purble_Place" title="Purble Place">Purble Place</a></i></li>
<li><i><a href="/enwiki/wiki/Microsoft_Spider_Solitaire" title="Microsoft Spider Solitaire">Spider Solitaire</a></i></li>
<li><i><a href="/enwiki/wiki/Microsoft_Solitaire" title="Microsoft Solitaire">Solitaire</a></i></li>
<li><i><a href="/enwiki/wiki/Microsoft_Tinker" title="Microsoft Tinker">Tinker</a></i></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/enwiki/wiki/Computer_program" title="Computer program">Apps</a></th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/ActiveMovie" title="ActiveMovie">ActiveMovie</a></li>
<li><a href="/enwiki/wiki/Windows_Anytime_Upgrade" title="Windows Anytime Upgrade">Anytime Upgrade</a></li>
<li><a href="/enwiki/wiki/Windows_Address_Book" title="Windows Address Book">Address Book</a></li>
<li><a href="/enwiki/wiki/Backup_and_Restore" title="Backup and Restore">Backup and Restore</a></li>
<li><a href="/enwiki/wiki/Cardfile" title="Cardfile">Cardfile</a></li>
<li><a href="/enwiki/wiki/Windows_CardSpace" title="Windows CardSpace">CardSpace</a></li>
<li><a href="/enwiki/wiki/CD_Player_(Windows)" title="CD Player (Windows)">CD Player</a></li>
<li><a href="/enwiki/wiki/Windows_Chat" title="Windows Chat">Chat</a></li>
<li><a href="/enwiki/wiki/Windows_Contacts" title="Windows Contacts">Contacts</a></li>
<li><a href="/enwiki/wiki/Windows_Desktop_Gadgets" title="Windows Desktop Gadgets">Desktop Gadgets</a></li>
<li><a href="/enwiki/wiki/Microsoft_Diagnostics" title="Microsoft Diagnostics">Diagnostics</a></li>
<li><a href="/enwiki/wiki/DriveSpace" title="DriveSpace">DriveSpace</a></li>
<li><a href="/enwiki/wiki/Windows_DVD_Maker" title="Windows DVD Maker">DVD Maker</a></li>
<li><a href="/enwiki/wiki/Windows_Easy_Transfer" title="Windows Easy Transfer">Easy Transfer</a></li>
<li><a href="/enwiki/wiki/Microsoft_Fax" class="mw-redirect" title="Microsoft Fax">Fax</a></li>
<li><a href="/enwiki/wiki/MSN_Food_%26_Drink" class="mw-redirect" title="MSN Food & Drink">Food & Drink</a></li>
<li><a href="/enwiki/wiki/Help_and_Support_Center" class="mw-redirect" title="Help and Support Center">Help and Support Center</a></li>
<li><a href="/enwiki/wiki/MSN_Health_%26_Fitness" class="mw-redirect" title="MSN Health & Fitness">Health & Fitness</a></li>
<li><a href="/enwiki/wiki/HyperTerminal" class="mw-redirect" title="HyperTerminal">HyperTerminal</a></li>
<li><a href="/enwiki/wiki/Imaging_for_Windows" title="Imaging for Windows">Imaging</a></li>
<li><a href="/enwiki/wiki/Windows_Journal" title="Windows Journal">Journal</a></li>
<li><a href="/enwiki/wiki/Windows_Media_Center" title="Windows Media Center">Media Center</a></li>
<li><a href="/enwiki/wiki/Windows_Meeting_Space" title="Windows Meeting Space">Meeting Space</a></li>
<li><a href="/enwiki/wiki/Windows_Messaging" title="Windows Messaging">Messaging</a></li>
<li><a href="/enwiki/wiki/Windows_Messenger" title="Windows Messenger">Messenger</a></li>
<li><a href="/enwiki/wiki/Windows_Mobile_Device_Center" title="Windows Mobile Device Center">Mobile Device Center</a></li>
<li><a href="/enwiki/wiki/Windows_Movie_Maker" title="Windows Movie Maker">Movie Maker</a></li>
<li><a href="/enwiki/wiki/MSN_Dial-up" title="MSN Dial-up">MSN Dial-up</a></li>
<li><a href="/enwiki/wiki/Microsoft_NetMeeting" title="Microsoft NetMeeting">NetMeeting</a></li>
<li><a href="/enwiki/wiki/NTBackup" title="NTBackup">NTBackup</a></li>
<li><a href="/enwiki/wiki/Outlook_Express" title="Outlook Express">Outlook Express</a></li>
<li><a href="/enwiki/wiki/Phone_Companion" title="Phone Companion">Phone Companion</a></li>
<li><a href="/enwiki/wiki/Windows_Photo_Gallery" title="Windows Photo Gallery">Photo Gallery</a></li>
<li><a href="/enwiki/wiki/Windows_Photo_Viewer" title="Windows Photo Viewer">Photo Viewer</a></li>
<li><a href="/enwiki/wiki/Program_Manager" title="Program Manager">Program Manager</a></li>
<li><a href="/enwiki/wiki/Problem_Steps_Recorder" class="mw-redirect" title="Problem Steps Recorder">Steps Recorder</a></li>
<li><a href="/enwiki/wiki/Syskey" title="Syskey">Syskey</a></li>
<li><a href="/enwiki/wiki/Travel_(Windows)" class="mw-redirect" title="Travel (Windows)">Travel</a></li>
<li><a href="/enwiki/wiki/WinHelp" title="WinHelp">WinHelp</a></li>
<li><a href="/enwiki/wiki/Microsoft_Write" title="Microsoft Write">Write</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Others</th><td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Microsoft_ScanDisk" title="Microsoft ScanDisk">ScanDisk</a></li>
<li><a href="/enwiki/wiki/Windows_File_Protection" title="Windows File Protection">File Protection</a></li>
<li><a href="/enwiki/wiki/Media_Control_Interface" title="Media Control Interface">Media Control Interface</a></li>
<li><a href="/enwiki/wiki/Next-Generation_Secure_Computing_Base" title="Next-Generation Secure Computing Base">Next-Generation Secure Computing Base</a></li>
<li><a href="/enwiki/wiki/Microsoft_POSIX_subsystem" title="Microsoft POSIX subsystem">POSIX subsystem</a></li>
<li><a href="/enwiki/wiki/High_Performance_File_System" title="High Performance File System">HPFS</a></li>
<li><a href="/enwiki/wiki/Interix" title="Interix">Interix</a></li>
<li><a href="/enwiki/wiki/Video_for_Windows" title="Video for Windows">Video for Windows</a></li>
<li><a href="/enwiki/wiki/Virtual_DOS_machine" title="Virtual DOS machine">Virtual DOS machine</a></li>
<li><a href="/enwiki/wiki/Windows_on_Windows" title="Windows on Windows">Windows on Windows</a></li>
<li><a href="/enwiki/wiki/Windows_SideShow" title="Windows SideShow">Windows SideShow</a></li>
<li><a href="/enwiki/wiki/Windows_Services_for_UNIX" title="Windows Services for UNIX">Windows Services for UNIX</a></li>
<li><a href="/enwiki/wiki/Windows_System_Assessment_Tool" title="Windows System Assessment Tool">Windows System Assessment Tool</a></li>
<li><a href="/enwiki/wiki/Windows_To_Go" title="Windows To Go">Windows To Go</a></li>
<li><a href="/enwiki/wiki/WinFS" title="WinFS">WinFS</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Spun off to<br /><a href="/enwiki/wiki/Microsoft_Store" title="Microsoft Store">Microsoft Store</a></th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/DVD_Player_(Windows)" title="DVD Player (Windows)">DVD Player</a></li>
<li><a href="/enwiki/wiki/File_Manager_(Windows)" title="File Manager (Windows)">File Manager</a></li>
<li><a href="/enwiki/wiki/Hover!" title="Hover!">Hover!</a></li>
<li><a href="/enwiki/wiki/Microsoft_Mahjong" title="Microsoft Mahjong">Mahjong</a></li>
<li><a href="/enwiki/wiki/Microsoft_Minesweeper" title="Microsoft Minesweeper">Minesweeper</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Deprecated</th><td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Snipping_Tool" title="Snipping Tool">Snipping Tool</a></li>
<li><a href="/enwiki/wiki/Windows_Media_Player" title="Windows Media Player">Media Player</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Defunct</th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/Internet_Explorer" title="Internet Explorer">Internet Explorer</a></li>
<li><a href="/enwiki/wiki/Microsoft_Pay" title="Microsoft Pay">Pay</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><img alt="Category" src="/upwiki/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" title="Category" width="16" height="16" class="noviewer" srcset="/upwiki/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, /upwiki/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /> <a href="/enwiki/wiki/Category:Windows_components" title="Category:Windows components">Category</a></li>
<li><img alt="List-Class article" src="/upwiki/wikipedia/en/thumb/d/db/Symbol_list_class.svg/16px-Symbol_list_class.svg.png" decoding="async" title="List-Class article" width="16" height="16" class="noviewer" srcset="/upwiki/wikipedia/en/thumb/d/db/Symbol_list_class.svg/23px-Symbol_list_class.svg.png 1.5x, /upwiki/wikipedia/en/thumb/d/db/Symbol_list_class.svg/31px-Symbol_list_class.svg.png 2x" data-file-width="180" data-file-height="185" /> <a href="/enwiki/wiki/List_of_Microsoft_Windows_components" title="List of Microsoft Windows components">List</a></li></ul>
</div></td></tr></tbody></table></div>
<div role="navigation" class="navbox authority-control" aria-labelledby="Authority_control_frameless_&#124;text-top_&#124;10px_&#124;alt=Edit_this_at_Wikidata_&#124;link=https&#58;//www.wikidata.org/wiki/Q5289#identifiers&#124;Edit_this_at_Wikidata" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Authority_control_frameless_&#124;text-top_&#124;10px_&#124;alt=Edit_this_at_Wikidata_&#124;link=https&#58;//www.wikidata.org/wiki/Q5289#identifiers&#124;Edit_this_at_Wikidata" style="font-size:114%;margin:0 4em"><a href="/enwiki/wiki/Help:Authority_control" title="Help:Authority control">Authority control</a> <a href="https://www.wikidata.org/wiki/Q5289#identifiers" title="Edit this at Wikidata"><img alt="Edit this at Wikidata" src="/upwiki/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" style="vertical-align: text-top" srcset="/upwiki/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, /upwiki/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">General</th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="/enwiki/wiki/VIAF_(identifier)" class="mw-redirect" title="VIAF (identifier)">VIAF</a>
<ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://viaf.org/viaf/3150170462800011322">1</a></span></li></ul></li>
<li><span class="nowrap"><a rel="nofollow" class="external text" href="https://www.worldcat.org/identities/containsVIAFID/3150170462800011322">WorldCat (via VIAF)</a></span></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">National libraries</th><td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://id.loc.gov/authorities/names/n2017043838">United States</a></span></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://academic.microsoft.com/v2/detail/523747234">Microsoft Academic</a></span></li></ul>
</div></td></tr></tbody></table></div>
' |
Whether or not the change was made through a Tor exit node (tor_exit_node ) | false |
Unix timestamp of change (timestamp ) | 1637184089 |