.NET Tips and Tricks
The Data Science Lab
Practical .NET
The Practical Client
Data Driver
HTML Issue Archive
Agile/Scrum
Cross-Platform C#
Mobile Corner
Live! Video
C#/VB
Xamarin/Mobile
TypeScript/Blazor/ASP.NET
.NET Standard 2.1 Announced with 3,000 New APIs
By David Ramel
Microsoft just announced .NET Standard 2.1, its first update in more than a year as it plays catch-up with the .NET Core implementation, which is about to hit v2.2.
The .NET Standard is a formal specification of .NET APIs that are intended to be available on all .NET implementations. One of those implementations is the open source, cross-platform .NET Core, which has already hit v2.1 and will soon advance to v 2.2.
".NET Standard solves the code sharing problem for .NET developers across all platforms by bringing all the APIs that you expect and love across the environments that you need: desktop applications, mobile apps & games, and cloud services," Microsoft said Immo Landwerth, program manager on Microsoft's .NET team, in announcing .NET Standard 2.0 in August of last year.
[Click on image for larger view.] .NET Standard (source: Microsoft).
Today (Nov. 5), he announced .NET Standard 2.1, with some 3,000 APIs planned to be added. He said the definition of the new version is ongoing, providing no completion date, though the GitHub site currently reports it's 84 percent complete.
Landwerth listed some highlights of the new version, including the addition of Span<T>, introduced in .NET Core 2.1, which also includes many other APIs destined for .NET Standard 2.1. "Since .NET Core was open sourced, we've added many small features across the base class libraries such as System.HashCode for combining hash codes or new overloads on System.String," he said. "There are about 800 new members in .NET Core and virtually all of them got added in .NET Standard 2.1."
One .NET implementation that won't be moving to support .NET Standard 2.1 is the traditional Windows-entrenched .NET Framework, another indication of Microsoft's reduced focus on the 16-year old platform, which has upset some .NET developers.
Here's what Landwerth had to say about that:
.NET Framework is the implementation of .NET that's installed on over one billion machines and thus needs to remain as compatible as possible. Because of this, it moves at a slower pace than .NET Core. Even security and bug fixes can cause breaks in applications because applications depend on the previous behavior. We will make sure that .NET Framework always supports the latest networking protocols, security standards, and Windows features.
.NET Core is the open source, cross-platform, and fast-moving version of .NET. Because of its side-by-side nature it can take changes that we can't risk applying back to .NET Framework. This means that .NET Core will get new APIs and language features over time that .NET Framework cannot. At Build we showed a demo how the file APIs are faster on .NET Core. If we put those same changes into .NET Framework we could break existing applications, and we don't want to do that.
Given many of the API additions in .NET Standard 2.1 require runtime changes in order to be meaningful, .NET Framework 4.8 will remain on .NET Standard 2.0 rather than implement .NET Standard 2.1. .NET Core 3.0 as well as upcoming versions of Xamarin, Mono, and Unity will be updated to implement .NET Standard 2.1.
That led one developer to comment (unedited): ".NET Framework IS DEAD. NetStandard 2.1 will not be supported in .NET 4.8 and a few days earlier a statement that there'll be no further extension to .NET Framework. Does MSFT have the backbone to officially write that .NET Framework is dead?"
Microsoft has repeatedly assured developers that .NET Framework is not dead and will continue to receive some updates.
"We will continue to update the .NET Framework, but you'll see it slowing down," said Microsoft's Beth Massi in a recent Visual Studio Live! conference keynote address. "So you shouldn't feel pressured to move off .NET Framework, but just know that it's going to be much more highly targeted compatible fixes kind of going forward and we recommend that all new development that you start on .NET is on .NET Core if possible."
UPDATE: Since this article was originally published, Landwerth responded to the above reader comment:
.NET Framework is a Windows component and hence will be supported for a very long time to come. And supported means we'll fix bugs and add features that are required for compliance, for example, new crypto standards such as TLS changes.
But what is also true is that the rate of innovation in .NET Framework has to slow down in order to reduce breakage. In that sense, you should generally expect that most new features will only become available on .NET Core (and derived platforms, such as Xamarin, Mono, and Unity as they build from the same sources as .NET Core).
At the time of this writing, the discussion is ongoing at the bottom of today's blog post.
David Ramel is an editor and writer for Converge360.
.NET Core Ranks High Among Frameworks in New Dev Survey
.NET Core placed high in a web-dominated ranking of development frameworks published by CodinGame, which provides a tech hiring platform.
Here's a One-Stop Shop for .NET 5 Improvements
Culled from reams of Microsoft documentation, here's a high-level summary of what's new for performance, networking, diagnostics and more, along with links to the nitty-gritty details for those wanting to dig in more.
Azure SQL Database Ranked Among Top 3 Databases of 2020
Microsoft touted the inclusion of Azure SQL Database among the top three databases of 2020 in a popularity ranking by DB-Engines, which collects and manages information about database management systems, updating its lists monthly.
Time Tracker Says VS Code Is No. 1 Editor for Devs, Some Working 15+ Hours Per Day
WakaTime, which does time tracking for programmers, released data for 2020 showing that Visual Studio Code is by far the top editor/IDE used by its coders, some of whom are hacking away for more than 15 hours per day.
No. 1 Visual Studio IDE Feature Request: Linux
.NET Insight
The MSIX Journey: What have we learned?