Developer(s) | .NET Foundation and the open-source community |
---|---|
Initial release | June 27, 2016 |
Stable release | |
Preview release | |
Repository | |
Written in | C++, C# |
Operating system | cross-platform: Windows, Linux, macOS, Android, iOS |
Platform | IA-32, x86-64, ARM |
Predecessor | .NET Framework |
Type | Software framework |
License | MIT [2] |
Website | dotnet |
The .NET platform (pronounced as "dot net") is a free and open-source, managed computer software framework for Windows, Linux, and macOS operating systems. [3] The project is mainly developed by Microsoft employees by way of the .NET Foundation and is released under an MIT License. [2]
In the late 1990s, Microsoft began developing a managed code runtime and programming language (C#) which it billed together as part of the ".NET platform", with the core runtime and software libraries comprising the .NET Framework.
At the heart of the .NET Platform is the .NET Framework, a high-productivity, multilanguage development and execution environment for building and running Web services with important features such as cross-language inheritance and debugging. [4]
Soon after the announcement of the C# language at the Professional Developers Conference in 2000 and previews of its software became available, Microsoft began a standardization effort through ECMA for what it dubbed the Common Language Infrastructure. The company continued development and support of its own implementation as proprietary, closed source software in the meantime.
On November 12, 2014, Microsoft introduced .NET Core—an open-source, cross-platform [5] successor [6] to .NET Framework—and released source code for the .NET Core CoreCLR implementation, source for the "entire [...] library stack" for .NET Core, [7] and announced the adoption of a conventional ("bazaar"-like) open-source development model under the stewardship of the .NET Foundation. Miguel de Icaza describes .NET Core as a "redesigned version of .NET that is based on the simplified version of the class libraries", [8] and Microsoft's Immo Landwerth explained that .NET Core would be "the foundation of all future .NET platforms". At the time of the announcement, the initial release of the .NET Core project had been seeded with a subset of the libraries' source code and coincided with the relicensing of Microsoft's existing .NET reference source away from the restrictions of the Ms-RSL. Landwerth acknowledged the disadvantages of the formerly selected shared license, explaining that it made codename Rotor "a non-starter" as a community-developed open source project because it did not meet the criteria of an Open Source Initiative (OSI) approved license. [9] [10] [11]
.NET Core 1.0 was released on June 27, 2016, [12] along with Microsoft Visual Studio 2015 Update 3, which enables .NET Core development. [13] .NET Core 1.0.4 and .NET Core 1.1.1 were released along with .NET Core Tools 1.0 and Visual Studio 2017 on March 7, 2017. [14]
.NET Core 2.0 was released on August 14, 2017, along with Visual Studio 2017 15.3, ASP.NET Core 2.0, and Entity Framework Core 2.0. [15] .NET Core 2.1 was released on May 30, 2018. [16] NET Core 2.2 was released on December 4, 2018. [17]
.NET Core 3 was released on September 23, 2019. [18] NET Core 3 adds support for Windows desktop application development [19] and significant performance improvements throughout the base library.
In November 2020, Microsoft released .NET 5.0. [20] The "Core" branding was abandoned and version 4.0 was skipped to avoid conflation with .NET Framework, of which the latest releases had all used 4.x versioning for all significant (non-bugfix) releases since 2010.
It addresses the patent concerns related to the .NET Framework [ citation needed ].
In November 2021, Microsoft released .NET 6.0, [21] in November 2022 released .NET 7.0, [22] and in November 2023 released .NET 8.0. [23]
Version | Release date | Released with | Latest update | Latest update date | Support ends [24] | Support Lifetime |
---|---|---|---|---|---|---|
.NET Core 1.0 | June 27, 2016 [25] | Visual Studio 2015 Update 3 | 1.0.16 | May 14, 2019 | June 27, 2019 | 3 years |
.NET Core 1.1 | November 16, 2016 [26] | Visual Studio 2017 Version 15.0 | 1.1.13 | May 14, 2019 | June 27, 2019 | 2.5 years |
.NET Core 2.0 | August 14, 2017 [15] | Visual Studio 2017 Version 15.3 | 2.0.9 | July 10, 2018 | October 1, 2018 | 1.25 years |
.NET Core 2.1 | May 30, 2018 [16] | Visual Studio 2017 Version 15.7 | 2.1.30 (LTS) | August 19, 2021 | August 21, 2021 | 3.25 years |
.NET Core 2.2 | December 4, 2018 [17] | Visual Studio 2019 Version 16.0 | 2.2.8 | November 19, 2019 | December 23, 2019 | 0.9 years |
.NET Core 3.0 | September 23, 2019 [27] | Visual Studio 2019 Version 16.3 | 3.0.3 | February 18, 2020 | March 3, 2020 | 0.5 years |
.NET Core 3.1 | December 3, 2019 [28] | Visual Studio 2019 Version 16.4 | 3.1.32 (LTS) | December 13, 2022 | December 13, 2022 | 3 years |
.NET 5 | November 10, 2020 [29] | Visual Studio 2019 Version 16.8 | 5.0.17 | May 10, 2022 | May 10, 2022 | 1.5 years |
.NET 6 | November 8, 2021 [21] | Visual Studio 2022 Version 17.0 | 6.0.35 (LTS) | October 8, 2024 | November 12, 2024 | 3 years |
.NET 7 | November 8, 2022 [22] | Visual Studio 2022 Version 17.4 | 7.0.19 | May 14, 2024 | May 14, 2024 | 1.5 years |
.NET 8 | November 14, 2023 [23] | Visual Studio 2022 Version 17.8 | 8.0.10 (LTS) | October 8, 2024 | November 10, 2026 | 3 years |
.NET 9 | November 2024 (projected) | 9.0.0-rc.2 | October 8, 2024 | May 2026 (projected) | 1.5 years (projected) | |
.NET 10 | November 2025 (projected) | (will be LTS) | November 2028 (projected) | 3 years (projected) | ||
Legend: Old version, not maintained Old version, still maintained Latest version Latest preview version Future release |
Alpine Linux, which primarily supports and uses musl libc, [30] is supported since .NET Core 2.1. [31]
Windows Arm64 is natively supported since .NET 5. Previously, .NET on ARM meant applications compiled for the x86 architecture and run through the ARM emulation layer. [29]
.NET fully supports C# and F# (and C++/CLI as of 3.1; only enabled on Windows) and supports Visual Basic .NET (for version 15.5 in .NET Core 5.0.100-preview.4, and some old versions supported in old .NET Core). [32]
VB.NET compiles and runs on .NET, but as of .NET Core 3.1, the separate Visual Basic Runtime is not implemented. Microsoft initially announced that .NET Core 3 would include the Visual Basic Runtime, but after two years the timeline for such support was updated to .NET 5. [33] [34]
.NET supports the following cross-platform scenarios: ASP.NET Core web apps, command-line/console apps, libraries and Universal Windows Platform apps. Prior to .NET Core 3.0, it did not implement Windows Forms or Windows Presentation Foundation (WPF), which render the standard GUI for desktop software on Windows. [35] However, from .NET Core 3 on, it started implementing them along with Universal Windows Platform (UWP). [36] It is also possible to write cross-platform graphical applications using .NET with the GTK# language-binding for the GTK widget toolkit.
.NET supports use of NuGet packages. Unlike .NET Framework, which is serviced using Windows Update, .NET used to rely on its package manager to receive updates. [35] Since December 2020, however, .NET updates started being delivered via Windows Update as well. [37]
The two main components of .NET are CoreCLR and CoreFX, which are comparable to the Common Language Runtime (CLR) and the Framework Class Library (FCL) of the .NET Framework's Common Language Infrastructure (CLI) implementation. [38]
As an implementation of CLI's Virtual Execution System (VES), CoreCLR is a complete runtime and virtual machine for managed execution of CLI programs and includes a just-in-time compiler called RyuJIT. [39] [lower-alpha 1] .NET Core also contains CoreRT, the .NET Native runtime optimized to be integrated into AOT compiled native binaries. [41]
As an implementation of CLI's Standard Libraries, [42] CoreFX shares a subset of .NET Framework APIs, however, it also comes with its own APIs that are not part of the .NET Framework. [35] A variant of the .NET library is used for UWP. [43]
The .NET command-line interface offers an execution entry point for operating systems and provides developer services like compilation and package management. [44]
.NET Multi-platform App UI (.NET MAUI, introduced with .NET 6) is a cross-platform framework for creating native mobile and desktop apps with C# and Extensible Application Markup Language (XAML), [45] which also supports Android and iOS.
The official community mascot of .NET is the .NET Bot (stylized as "dotnet bot" or "dotnet-bot"). The dotnet bot served as the placeholder developer for the initial check-in of the .NET source code when it was open-sourced. [46] It has since been used as the official mascot.
The Common Language Runtime (CLR), the virtual machine component of Microsoft .NET Framework, manages the execution of .NET programs. Just-in-time compilation converts the managed code into machine instructions which are then executed on the CPU of the computer. The CLR provides additional services including memory management, type safety, exception handling, garbage collection, security and thread management. All programs written for the .NET Framework, regardless of programming language, are executed in the CLR. All versions of the .NET Framework include CLR. The CLR team was started June 13, 1998.
ASP.NET is a server-side web-application framework designed for web development to produce dynamic web pages. It was developed by Microsoft to allow programmers to build dynamic web sites, applications and services. The name stands for Active Server Pages Network Enabled Technologies.
The Shared Source Common Language Infrastructure (SSCLI), previously codenamed Rotor, is Microsoft's shared source implementation of the CLI, the core of .NET. Although the SSCLI is not suitable for commercial use due to its license, it does make it possible for programmers to examine the implementation details of many .NET libraries and to create modified CLI versions. Microsoft provides the Shared Source CLI as a reference CLI implementation suitable for educational use.
Windows Presentation Foundation (WPF) is a free and open-source user interface framework for Windows-based desktop applications. WPF applications are based in .NET, and are primarily developed using C# and XAML.
The Microsoft Enterprise Library is a set of tools and programming libraries for the Microsoft .NET Framework. It provides APIs to facilitate proven practices in core areas of programming including data access, logging, exception handling and others. Enterprise Library is provided as pluggable binaries and source code, which can be freely used and customized by developers for their own purposes. It also ships with test cases and quickstarts.
Microsoft Silverlight is a discontinued application framework designed for writing and running rich internet applications, similar to Adobe's runtime, Adobe Flash. While early versions of Silverlight focused on streaming media, later versions supported multimedia, graphics, and animation, and gave support to developers for CLI languages and development tools. Silverlight was one of the two application development platforms for Windows Phone, but web pages using Silverlight did not run on the Windows Phone or Windows Mobile versions of Internet Explorer, as there was no Silverlight plugin for Internet Explorer on those platforms.
The Dynamic Language Runtime (DLR) from Microsoft runs on top of the Common Language Runtime (CLR) and provides computer language services for dynamic languages. These services include:
Visual Studio Tools for Office (VSTO) is a set of development tools available in the form of a Visual Studio add-in and a runtime that allows Microsoft Office 2003 and later versions of Office applications to host the .NET Framework Common Language Runtime (CLR) to expose their functionality via .NET.
Visual Studio is an integrated development environment (IDE) developed by Microsoft. It is used to develop computer programs including websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platforms including Windows API, Windows Forms, Windows Presentation Foundation (WPF), Microsoft Store and Microsoft Silverlight. It can produce both native code and managed code.
The .NET Framework is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until being superseded by the cross-platform .NET project. It includes a large class library called Framework Class Library (FCL) and provides language interoperability across several programming languages. Programs written for .NET Framework execute in a software environment named the Common Language Runtime (CLR). The CLR is an 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.
Microsoft started development on the .NET Framework in the late 1990s originally under the name of Next Generation Windows Services (NGWS). By late 2001 the first beta versions of .NET Framework 1.0 were released. The first version of .NET Framework was released on 13 February 2002, bringing managed code to Windows NT 4.0, 98, 2000, ME and XP.
Windows Runtime (WinRT) is a platform-agnostic component and application architecture first introduced in Windows 8 and Windows Server 2012 in 2012. It is implemented in C++ and officially supports development in C++, Rust/WinRT, Python/WinRT, JavaScript-TypeScript, and the managed code languages C# and Visual Basic (.NET) (VB.NET).
.NET Compiler Platform, also known by its codename Roslyn, is a set of open-source compilers and code analysis APIs for C# and Visual Basic (VB.NET) languages from Microsoft.
Mono is a free and open-source software framework that aims to run software made for the .NET Framework on Linux and other OSes. Originally by Ximian which was acquired by Novell, it was later developed by Xamarin which was acquired by Microsoft. In August 2024, Microsoft transferred ownership of Mono to WineHQ.
ASP.NET Core is an open-source modular web-application framework. It is a redesign of ASP.NET that unites the previously separate ASP.NET MVC and ASP.NET Web API into a single programming model. Despite being a new framework, built on a new web stack, it does have a high degree of concept compatibility with ASP.NET. The ASP.NET Core framework supports side-by-side versioning so that different applications being developed on a single machine can target different versions of ASP.NET Core. This was not possible with previous versions of ASP.NET. ASP.NET Core initially ran on both the Windows-only .NET Framework and the cross-platform .NET. However, support for the .NET Framework was dropped beginning with ASP.Net Core 3.0.
ML.NET is a free software machine learning library for the C# and F# programming languages. It also supports Python models when used together with NimbusML. The preview release of ML.NET included transforms for feature engineering like n-gram creation, and learners to handle binary classification, multi-class classification, and regression tasks. Additional ML tasks like anomaly detection and recommendation systems have since been added, and other approaches like deep learning will be included in future versions.
Microsoft Docs was a library of technical documentation for end users, developers, and IT professionals who work with Microsoft products. The Microsoft Docs website provided technical specifications, conceptual articles, tutorials, guides, API references, code samples and other information related to Microsoft software and web services. Microsoft Docs was introduced in June 2016 as a replacement for the MSDN and TechNet libraries which previously hosted some of these materials. Microsoft Docs initially contained only .NET documentation. The process of migrating the bulk of the MSDN and TechNet libraries' content took approximately two years.
Microsoft, a technology company historically known for its opposition to the open source software paradigm, turned to embrace the approach in the 2010s. From the 1970s through 2000s under CEOs Bill Gates and Steve Ballmer, Microsoft viewed the community creation and sharing of communal code, later to be known as free and open source software, as a threat to its business, and both executives spoke negatively against it. In the 2010s, as the industry turned towards cloud, embedded, and mobile computing—technologies powered by open source advances—CEO Satya Nadella led Microsoft towards open source adoption although Microsoft's traditional Windows business continued to grow throughout this period generating revenues of 26.8 billion in the third quarter of 2018, while Microsoft's Azure cloud revenues nearly doubled.