What is the difference between .NET Framework, .NET Core and .NET 5+?

.NET Framework & CLR Platform Basic 1–2 Yrs2–3 Yrs Conceptual 1 min read

Quick Answer

.NET Framework (4.x) — Windows-only, legacy, still supported but not evolving. .NET Core (1–3.1) — the cross-platform rewrite. .NET 5+ — the continuation of .NET Core (they dropped “Core” and skipped 4 to avoid confusion); one cross-platform stack, released yearly, with LTS every other version. New projects target .NET 8/9.

.NET Framework is the old Windows-only platform — version 4.8 is the last one, it only gets security patches now. .NET Core was the cross-platform rewrite, versions 1 through 3.1. Then Microsoft renamed it: .NET 5 is just .NET Core continued, and they dropped “Core” and skipped 4 so nobody confused it with Framework 4.x. So today there's one .NET, released every November, with long-term support on the even versions like 6 and 8. New work targets .NET 8. .NET Standard was a compatibility spec for libraries spanning both worlds; it barely matters now unless you still need to support Framework consumers.

  • .NET Framework 4.8 — the final version; gets security fixes only. WCF server, Web Forms and some Windows-specific APIs live here. Migrate when practical.
  • .NET Core → .NET 5/6/7/8/9 — cross-platform, open source, faster, container-friendly, side-by-side versioning. .NET 6 and .NET 8 are LTS (3 years); odd versions are STS (18 months).
  • .NET Standard — a spec of APIs a library can target to run on both Framework and Core. Less relevant now that everything is unified — target net8.0, and netstandard2.0 only if you must support .NET Framework consumers.
  • Target framework moniker (TFM): <TargetFramework>net8.0</TargetFramework>.