.NET Core

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
.NET
.NET Logo.svg
Developer(s).NET Foundation
Initial releaseJune 27, 2016; 4 years ago (2016-06-27)
Stable release
5.0.2[1] / 12 January 2021; 4 days ago (12 January 2021)
Repository Edit this at Wikidata
Written inC++ and C#
Operating systemWindows, Linux and macOS
Predecessor.NET Framework
TypeSoftware framework
LicenseMIT License[2]
Websitedotnet.microsoft.com

.NET (previously named .NET Core) is a free and open-source, managed computer software framework for Windows, Linux, and macOS operating systems.[3] It is a cross-platform[4] successor to .NET Framework.[5] The project is primarily developed by Microsoft employees by way of the .NET Foundation, and released under the MIT License.[2]

History[edit]

dotnet-bot, the community mascot for .NET

On November 12, 2014, Microsoft announced .NET Core, in an effort to include cross-platform support for .NET, including Linux and macOS, source for the .NET Core CoreCLR implementation, source for the "entire […] library stack" for .NET Core, and the adoption of a conventional ("bazaar"-like) open-source development model under the consolation stewardship of the .NET Foundation. Miguel de Icaza describes .NET Core as a "redesigned version of .NET that is based on the simplified version of the class libraries",[6] 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.[7][8][9]

.NET Core 1.0 was released on June 27, 2016,[10] along with Microsoft Visual Studio 2015 Update 3, which enables .NET Core development.[11] .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.[12]

.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.[13] .NET Core 2.1 was released on May 30, 2018.[14] NET Core 2.2 was released on December 4, 2018.[15]

.NET Core 3 was released on September 23, 2019.[16] .NET Core 3 adds support for Windows desktop application development[17] and significant performance improvements throughout the base library.

In November 2020, Microsoft released .NET 5.0 which replaced .NET Framework. The "Core" branding was removed and version 4.0 was skipped to avoid conflation with .NET Framework. It provides native multi-platform support including Linux and macOS and addresses the patent concerns related to the .NET Framework.[18]

Version Release date Released with Latest update Latest update date Support ends[19]
Old version, no longer maintained: .NET Core 1.0 2016-06-27[20] Visual Studio 2015 Update 3 1.0.16 2019-05-14 June 27, 2019
Old version, no longer maintained: .NET Core 1.1 2016-11-16[21] Visual Studio 2017 Version 15.0 1.1.13 2019-05-14 June 27, 2019
Old version, no longer maintained: .NET Core 2.0 2017-08-14[13] Visual Studio 2017 Version 15.3 2.0.9 2018-07-10 October 1, 2018
Older version, yet still maintained: .NET Core 2.1 2018-05-30[14] Visual Studio 2017 Version 15.7 2.1.24 (LTS) 2021-01-12 August 21, 2021
Old version, no longer maintained: .NET Core 2.2 2018-12-04[15] Visual Studio 2019 Version 16.0 2.2.8 2019-11-19 December 23, 2019
Old version, no longer maintained: .NET Core 3.0 2019-09-23[22] Visual Studio 2019 Version 16.3 3.0.3 2020-02-18 March 3, 2020
Older version, yet still maintained: .NET Core 3.1 2019-12-03[23] Visual Studio 2019 Version 16.4 3.1.11 (LTS) 2021-01-12 December 3, 2022
Current stable version: .NET 5 2020-11-10[24] Visual Studio 2019 Version 16.8 5.0.2 2021-01-12 3 months after .NET 6 release
Future release: .NET 6[24][25] 2021-11 (projected) (LTS) November 2024 (projected)
Future release: .NET 7[25] 2022-11 (projected) February 2024 (projected)
Future release: .NET 8[25] 2023-11 (projected) (LTS) November 2026 (projected)

.NET Core 2.1 and later, i.e. including .NET 5, supports Alpine Linux (i.e. musl libc it uses[26]).[27]

As of .NET 5, Windows Arm64 is natively supported. Previously, .NET on ARM was actually emulated x86 programs.[24]

Language support[edit]

.NET uses the Common Language Infrastructure (CLI)

.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).

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.[28][29]

Architecture[edit]

.NET supports four cross-platform scenarios: ASP.NET Core web apps; command-line 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.[30][31] Now, however, .NET Core 3 supports desktop technologies Windows Forms, WPF, and Universal Windows Platform (UWP).[32]

.NET supports use of NuGet packages. Unlike .NET Framework, which is serviced using Windows Update, .NET relies on its package manager to receive updates.[30][31] Starting with December 2020 however, .NET updates started being delivered via Windows Update as well.[33]

The two main components of .NET are CoreCLR and CoreFX, respectively, 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.[citation needed]

As a CLI implementation of 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.[34][a] .NET Core also contains CoreRT, the .NET Native runtime optimized to be integrated into AOT compiled native binaries.[citation needed]

As a CLI implementation of the foundational Standard Libraries,[36] CoreFX shares a subset of .NET Framework APIs, however, it also comes with its own APIs that are not part of the .NET Framework.[30] A variant of the .NET library is used for UWP.[37]

The .NET command-line interface offers an execution entry point for operating systems and provides developer services like compilation and package management.[38]

Notes[edit]

  1. ^ The prefix "Ryu" is the Japanese word for "dragon" (竜, ryū), and is a reference to the book Compilers: Principles, Techniques, and Tools (commonly known as the dragon book, from an early cover design), as well as to a character from the video game Street Fighter.[35]

References[edit]

  1. ^ https://dotnet.microsoft.com/download/dotnet-core.
  2. ^ a b "core/LICENSE.TXT". GitHub. Retrieved 2018-06-04.
  3. ^ "Download .NET Core". microsoft.com. Microsoft. Retrieved 31 October 2017.
  4. ^ ".NET Core is the Future of .NET".
  5. ^ ".NET Framework is dead -- long live .NET 5".
  6. ^ de Icaza, Miguel. "Microsoft Open Sources .NET and Mono". Personal blog of Miguel de Icaza. Retrieved November 16, 2014.
  7. ^ Landwerth, Immo (November 12, 2014). ".NET Core is Open Source". .NET Framework Blog. Microsoft. Retrieved December 30, 2014.
  8. ^ "dotnet/corefx". GitHub. Retrieved November 16, 2014.
  9. ^ "Microsoft/referencesource". GitHub. Retrieved November 16, 2014.
  10. ^ Bright, Peter (27 June 2016). ".NET Core 1.0 released, now officially supported by Red Hat". Ars Technica. Condé Nast.
  11. ^ Foley, Mary Jo (27 June 2016). "Microsoft showcases SQL Server, .NET Core on Red Hat Enterprise Linux deliverables". ZDNet. CBS Interactive.
  12. ^ "Announcing .NET Core Tools 1.0 | .NET Blog". Blogs.msdn.microsoft.com. Retrieved 2020-01-18.
  13. ^ a b "Announcing .NET Core 2.0". .NET Blog. 14 August 2017.
  14. ^ a b "Announcing .NET Core 2.1". blogs.msdn.microsoft.com. Retrieved 2019-02-15.
  15. ^ a b "Announcing .NET Core 2.2". blogs.msdn.microsoft.com. Retrieved 2019-02-15.
  16. ^ ".NET Core is the Future of .NET". .NET Blog. 2019-05-06. Retrieved 2019-05-17.
  17. ^ "What's new in .NET Core 3.0". .NET documentation. Retrieved 2020-12-30.
  18. ^ "Announcing .NET 5.0". .NET Blog. November 10, 2020. Retrieved 2020-11-21.
  19. ^ ".NET Core official support policy". .NET. Microsoft.
  20. ^ "Announcing .NET Core 1.0". .NET Blog. Microsoft. June 27, 2016.
  21. ^ "Announcing .NET Core 1.1". .NET Blog. Microsoft. November 16, 2016.
  22. ^ "Announcing .NET Core 3.0". .NET Blog. Microsoft. September 23, 2019.
  23. ^ "Announcing .NET Core 3.1". .NET Blog. Microsoft. December 3, 2019.
  24. ^ a b c "Announcing .NET 5.0". .NET Blog. Microsoft. November 10, 2020.
  25. ^ a b c "Introducing .NET 5". .NET Blog. 2019-05-06. Retrieved 2021-01-09.
  26. ^ "Alpine 3.10.0 released | Alpine Linux". alpinelinux.org. Retrieved 2020-06-09.
  27. ^ "dotnet/core". GitHub. Retrieved 2020-06-09.
  28. ^ "Visual Basic in .NET Core 3.0 | Visual Basic Blog". Blogs.msdn.microsoft.com. 2019-10-12. Retrieved 2020-01-18.
  29. ^ "Visual Basic support planned for .NET 5.0 | Visual Basic Blog". Blogs.msdn.microsoft.com. 2020-03-11. Retrieved 2020-08-26.
  30. ^ a b c Carter, Phillip; Knezevic, Zlatko (April 2016). ".NET Core - .NET Goes Cross-Platform with .NET Core". MSDN Magazine. Microsoft.
  31. ^ a b Schmelzer, Jay (18 November 2015). ".NET 2015 Overview". Channel 9. Microsoft. 0:07:32.
  32. ^ Lander, Rich (7 May 2018). ".NET Core 3 and Support for Windows Desktop Applications". MSDN. Microsoft.
  33. ^ ".NET Core 2.1, 3.1, and .NET 5.0 updates are coming to Microsoft Update". .NET Blog. 2020-12-03. Retrieved 2020-12-15.
  34. ^ Landwerth, Immo (3 February 2015). "CoreCLR is now Open Source". .NET Framework Blog. Microsoft. Retrieved 27 February 2015.
  35. ^ "Why RyuJIT? How was the name chosen?". nuWave eSolutions Development Team Blog. Retrieved 21 June 2016.
  36. ^ Landwerth, Immo (4 December 2014). "Introducing .NET Core". .NET Framework Blog. Microsoft. Retrieved 27 February 2015.
  37. ^ "Intro to .NET Native and CoreRT". 23 April 2016.
  38. ^ "Intro to CLI". 23 April 2016.

External links[edit]