.NET Core has been the forward-looking.NET platform since its 2016 release. In 2020, the migration from.NET Framework to.NET Core is well underway but not complete for most enterprise organisations.

The two platforms

In early 2020,.NET developers navigate two platforms:.NET Framework (4.8 is the final version, Windows-only, maintenance mode) and.NET Core (3.1 LTS, cross-platform, active development). New projects should start on.NET Core 3.1. Existing.NET Framework applications need a migration plan, but the plan can be deferred for stable applications that are not changing and do not need cross-platform deployment.

The.NET 5 convergence ahead

Microsoft announced.NET 5 (to be released November 2020) as the convergence of.NET Core and.NET Framework into a single platform. The naming change (.NET 5, not.NET Core 5 or.NET Framework 5) signals the completion of the convergence. For organisations planning.NET Core migrations in 2020, migrating to.NET Core 3.1 and then upgrading to.NET 5 is the path,.NET Core 3.1 to.NET 5 upgrade is straightforward.

ASP.NET Core performance leadership

ASP.NET Core consistently places near the top of the TechEmpower web framework benchmarks, competitive with Go, Rust, and C++ frameworks for raw HTTP throughput. The combination of Kestrel (the high-performance ASP.NET Core HTTP server), the async pipeline, and the improvements in each release has made.NET a genuine performance leader. The 'but Java is fast enough' era for.NET skeptics is over.

Container-first development

The Docker tooling for.NET Core is first-class: Visual Studio generates Dockerfiles, the Microsoft Container Registry hosts official.NET runtime images, and the publish model (dotnet publish -c Release) produces output ready for containerisation..NET Framework has no comparable container story (Windows containers are available but have higher overhead and smaller ecosystem support than Linux containers for.NET Core).