What is the difference between .NET Framework, .NET Core and .NET 5+?
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, andnetstandard2.0only if you must support .NET Framework consumers. - Target framework moniker (TFM):
<TargetFramework>net8.0</TargetFramework>.