.NET 5 – One .NET to rule them all

There is No More .NET Core, it’s .NET 5

Here’s the umbrella of .NET 5 to the rescue. It’s a MAJOR change because of the following reasons:

As the first part of this unification scheme, Microsoft’s Xamarin mobile development platform will switch from using the Mono BCL to join other components leveraging the .NET Core BCL. With that move, Xamarin mobile development will be folded into .NET 5. That means that for the first time, one BCL-based framework will handle all app models:

  • ASP.NET Core
  • Entity Framework Core
  • Blazor
  • WinForms
  • WPF
  • Xamarin
  • ML.NET

Wait, WPF and WinForms made it into .NET 5? Yes, it’s true. Hello there, old friends! Nice to see them included in this runtime. The idea of using one SDK to build apps with is pretty exciting stuff, if you ask me.

Source: The Most Exciting Promise of .NET 5 | Okta Developer

Asynchronous Programming Models in C#

Pattern Description Based On Notes
Thread based By creating System .Threading .Thread instance Managed Thread Expensive, not recommended
Standard BeginXxx and EndXxx methods By calling BeginXxx method with a user callback; calling EndXxx inside that user callback Thread pool Widely used, standard, recommended, support cancellation and continuation
ThreadPool By calling ThreadPool’s static QueueUserWorkItem method Thread pool Widely used, recommended use as much as possible
Delegate By calling Delegate’s BeginInvoke and EndInvoke instance methods Thread pool Less used
Event based By subscribing to the appropriate event and calling the appropriate method Thread pool Avoid use as much as possible, not recommended
Task based By creating System .Threading .Tasks .Task instance A specified task scheduler Recommended, supports all features of a thread pool pattern, and has many other features
async method and await expression By using async and await keywords Task based pattern The new C# 5.0 asynchronous pattern

Read more in The Asynchronous Programming Models (C# 5.0 Series) at CodeProject