Microsoft releases .NET 5.0 Final
Microsoft has released .NET 5.0 final on November 10, 2020. The new version of the company's .NET framework is available for Windows, Mac OS, Linux, and ARM operating systems.Â Microsoft promises that .NET 5.0 improves performance "greatly", that it includes language improvements, and highlights that Windows ARM64 and WebAssembly were added to the supported platforms in that release.
The announcement was made during the virtual .NET Conf 2020 designed specifically to provide developers with information about the new releases. The company released ASP.Net Core, EF Core, C# 9, and F# 5 on November 10, 2020 as well.
Microsoft unveiled .NET 5.0 back in May 2019 with the intention to release the final version of .NET 5.0 in November 2020. New major versions of .NET will be released once a year in November; the next major release, .NET 6.0, will be released in November 2021. Microsoft labels .NET 5.0 as a current release and will support it until February 2022 (approximately three months after .NET 6.0 is released).
Visual Studio 16.8 or later is required to use .NET 5.0 on Windows machines; Mac OS developers need the latest version of Visual Studio for Mac, and C# extension and Visual Studio Code support .NET 5.0 and C# 9 already.
Major .NET 5.0 changes and improvements
- Performance improvements across the board. Microsoft published a detailed analysis that includes benchmark results here. Sorting algorithm and Just in Time compiler performance has increased significantly.
- Improved performance for .NET libraries, e.g. Json serialization, regular expressions, HTTP.
- P95 latency drop thanks to improvements in areas such as garbage collection or tiered compilation.
- Improved application deployment options, e.g. Server Core container images, single-file apps and reduced container image sizes.
- Expanded platform scope to include Windows ARM64 and WebAssembly.
- C# 9 and F# 5 language improvements.
Microsoft published a detailed post on its Dot Net Dev Blog that provides additional information about the new features and improvements of .NET 5.0.Â Release notes for the latest .NET Core updates are available here.
Downloads are provided on the official Dot Net download site; there you find SDK and runtime downloads for all supported operating systems.
“Microsoft labels .NET 5.0 as a current release and will support it until February 2020…”
Main question. Is it compatible with mighty win7x64?
Yes .NET 5.0 supports win7 but only if you’re under the ESU program
and if what Rich Lander (richlander/ .NET team member) wrote it’s true (We will make our support plans for Windows 7 ESU on a release-by-release basis) then the answer for support plans for .NET 6 LTS is probably yes (Wishful thinking, i know)
Interesting they provide two different installers for x86 and x64. Previously they only had one, ~twice the size, which decided what to intall.
Is an end-user on Windows 7 (meaning no Microsoft upgrades anymore) supposed to do anything about it ? And if yes, what ?
That download page seems horribly complex. What is Visual Studio ? Do I have it ? Do I need it ?
You have to download “.NET Desktop Runtime 5.0.0” from:
On a 64-bit system you must install both (order in which you do so doesn’t matter).
Do note, this does not superseed .NET 4.8, which you can get from:
On a fresh install you want both 4.8 and 5. On 7 you must install an update prior to 4.8 (can’t remember which one, but you can easily find out by even just running the installer if I remember correctly).
You can check what you end up with by using netver:
If everything is okay, it should look like this:
One extra for Windows 10 users: .NET 4.8 installs as an update instead of a regular program, which means in order to usinstall* it you must go to installed updates, not installed programs.
.NET 5 is seen as an installed program, so you uninstall it as you would uninstall any regular program off your computer.
*if DISM cleanup has run, be it user-initiated after 30 days, user-forced or auto after 30 days, this operation cannot be undone through regular UI means afaik.
— This does not concern Windows 7 users. Chances are Win8.1 behaves like Win10 in this regard (I don’t know).
Thank you, Yuliya.
Does this replace the 3.1.4 runtime that I found in my installed programs list? Should that one even be there?
The most updated .NET Framework is v4.8 (in Microsoft page). Is this a update for that, or is a separate product.
For example: I have framework 4.8 installed, do I need to update to this, or wait to a new ‘v5.0’ framework comes out.
Since the installer says it is a runtime not a framework. Can someone clarify this to me.
Separate product, like the v4 family is separate from the v3.5 family.
If you do not use latest software, games or cloud services, then the net framework 5.0 is uneccesary
I think that NET version inside W10 should be updated as a separate program indeed. :]
So, if program “x” requires .NET Framework 4 and program “y” requires .NET Framework 3.5 to run, can I remove both “old” frameworks and replace them with this new and shiny 5 and both programs still work? OR do I have to install yet another behemoth-sized .NET Framework to cater to my possible future needs in the ultra-stupidly, end user-hostile designed .NET Framework realm?
No. If a program requires .NET 4.5 it will work with the newest .NET of v4 “family”, which is 4.8. v5 is a different family. So is 3.5. The latest versions for which ackwards compatibility is no longer offered in newer versions are:
Say if a program requires .NET 2.0, it will only work if you have v2 installed, regardless of whether or not you have other versions installed (3, 3.5, 4, etc).
You can see an easy answer: how many Microsoft Visual C++ versions do you have installed? Shouldn’t all old ones uninstalled and working only with the last one? Nope, MS works so. :[
> BonkerMan: “if program â€œxâ€ requires .NET Framework 4 and program â€œyâ€ requires .NET Framework 3.5 to run, can I remove both â€œoldâ€ frameworks and replace them with this new and shiny 5 and both programs still work?”
Possibly — see remark at bottom.
Contrary to what many people (mistakenly) think, .NET Framework v4.x does have backward compatibility with programs requiring .NET v3.5/3.0/2.0 /1.x.
As such, it is perfectly alright to keep only .NET v4.x (eg. v4.8) installed, but uninstall .NET v3.5. Likewise, if one is running Win 10 which comes bundled with .NET 4.7 onwards but not .NET v3.5, there is no need to install .NET v3.5 just to run programs targeting the older .NET versions.
The trick is to create a configuration file named “.exe.config” specifying the various supported runtime attributes, & put this config file in the program’s working folder (ie. next to the program’s main executable).
For instance, if the main executable file is called “BonkerPlay.exe”, use a text editor to create a “BonkerPlay.exe.config” plain-text file with the desired supported runtime attributes. If the file already exists, simply add the required “supportedRuntime” attributes at the correct section.
Text for XXXXXXXX.exe.config” file: https://justpaste.it/DotNETRuntimeConfig
You can indicate as many or as few “supportedRuntime” attributes (vX.X.XXXX) as you deem fit — in order of preference (first-listed = most preferred) — to specify support for multiple .NET versions. Usually, it is sufficient to indicate just the attributes for .NET 4.x & .NET 2.0/3.x.
.NET Framework Version & Corresponding supportedRuntime Attribute:
â–¶ .NET 1.0: v1.0.3705
â–¶ .NET 1.1: v1.1.4322
â–¶ .NET 2.0/3.0/3.5: v2.0.50727
â–¶ .NET 4.0-4.8: v4.0
Using this method, I am able to run .NET v2.0/3.5 programs with only .NET v4.8 installed. Without the config file in the respective programs’ working folders, these older .NET programs would otherwise fail to launch.
REMARK: Regarding .NET v5.0, the same config file may possibly/logically also support a “supportedRuntime version” attribute for “v5.0”. This could be something for users with .NET v5.0 (but no older .NET versions installed) to test for programs targeting .NET v4.x/3.x.
Thank you very much for the information. No 5.0 for me then.
What if you not install the frameworks? The programs that need it wont work or how does this work ?