C# and .Net Version History
โก Smart Summary
C# and .NET version history traces how Microsoft evolved its language and framework from the 2002 release of .NET Framework 1.0 and C# 1.0 through the modern, cross-platform .NET 10 and C# 14 in 2025.

.Net Framework Version History
The first version of the .Net framework was released in the year 2002. The version was called .Net framework 1.0. The .Net framework has come a long way since then, and the latest version is 4.8.1, released in 2022. Newer development has since moved to the cross-platform .NET platform (formerly .NET Core).
Below is the table of .Net framework versions that have been released, with their release dates. Every version has relevant changes to the framework.
For example, in framework 3.5 and onwards, a key framework called the Entity framework was released. This framework is used to change the approach in which applications are developed while working with databases.
| Version number | CLR version | Release date |
|---|---|---|
| 1.0 | 1.0 | 2002-02-13 |
| 1.1 | 1.1 | 2003-04-24 |
| 2.0 | 2.0 | 2005-11-07 |
| 3.0 | 2.0 | 2006-11-06 |
| 3.5 | 2.0 | 2007-11-19 |
| 4.0 | 4 | 2010-04-12 |
| 4.5 | 4 | 2012-08-15 |
| 4.5.1 | 4 | 2013-10-17 |
| 4.5.2 | 4 | 2014-05-05 |
| 4.6 | 4 | 2015-07-20 |
| 4.6.1 | 4 | 2015-11-17 |
| 4.6.2 | 4 | 2016-08-02 |
| 4.7 | 4 | 2017-04-05 |
| 4.7.1 | 4 | 2017-10-17 |
| 4.7.2 | 4 | 2018-04-30 |
| 4.8 | 4 | 2019-04-18 |
| 4.8.1 | 4 | 2022-08-09 |
The biggest advantage of the .Net framework is that it supports the Windows platform, which almost everyone works with. Microsoft always ensures that .Net frameworks are in compliance with all the supported Windows operating systems.
Version 4.8.1 is the last major release of the .Net Framework. It remains supported as a built-in Windows component, but Microsoft now delivers new features only through the modern .NET platform described below.
C# Version History
C# has evolved alongside the framework, gaining major language features with almost every release. The table below maps each C# version to its .NET platform and Visual Studio release, together with the headline features it introduced.
| Version | .NET / Framework | Visual Studio | Important Features |
|---|---|---|---|
| C# 1.0 | .NET Framework 1.0/1.1 | Visual Studio .NET 2002 | First release of C# |
| C# 2.0 | .NET Framework 2.0 | Visual Studio 2005 | Generics, partial types, anonymous methods, nullable types, iterators, covariance and contravariance |
| C# 3.0 | .NET Framework 3.0/3.5 | Visual Studio 2008 | Auto-implemented properties, anonymous types, query expressions, lambda expressions, expression trees, extension methods |
| C# 4.0 | .NET Framework 4.0 | Visual Studio 2010 | Dynamic binding, named/optional arguments, generic covariance and contravariance, embedded interop types |
| C# 5.0 | .NET Framework 4.5 | Visual Studio 2012/2013 | Asynchronous members, caller info attributes |
| C# 6.0 | .NET Framework 4.6 | Visual Studio 2013/2015 | Static imports, exception filters, property initializers, expression-bodied members, null propagator, string interpolation, nameof operator, dictionary initializer |
| C# 7.0 | .NET Framework 4.6.2 / .NET Core | Visual Studio 2017 | Out variables, tuples and deconstruction, pattern matching, local functions, ref locals and returns, expression-bodied members |
| C# 8.0 | .NET Core 3.0 | Visual Studio 2019 | Nullable reference types, switch expressions, async streams, default interface methods, ranges and indices |
| C# 9.0 | .NET 5 | Visual Studio 2019 | Records, init-only setters, top-level statements, pattern-matching enhancements |
| C# 10 | .NET 6 | Visual Studio 2022 | Global using directives, file-scoped namespaces, record structs, constant interpolated strings |
| C# 11 | .NET 7 | Visual Studio 2022 | Raw string literals, required members, generic math, list patterns, UTF-8 string literals |
| C# 12 | .NET 8 | Visual Studio 2022 | Primary constructors, collection expressions, inline arrays, optional lambda parameters, alias any type |
| C# 13 | .NET 9 | Visual Studio 2022 | params collections, new Lock type, \e escape sequence, implicit index access, ref and unsafe in iterators |
| C# 14 | .NET 10 | Visual Studio 2022 | Extension members, the field keyword, null-conditional assignment, implicit span conversions, file-based apps |
What Is the Difference Between .NET Framework and .NET Core?
The .NET Framework and .NET Core represent two generations of the same idea. The .NET Framework, first released in 2002 and frozen at version 4.8.1, runs only on Windows and is installed as a system component. .NET Core, introduced in 2016, is a ground-up rewrite that runs on Windows, Linux, and macOS. From version 5 onward Microsoft dropped the word “Core” and named the product simply “.NET”, skipping the number 4 to avoid confusion with the older Framework.
The most important differences are:
- Platform: The .NET Framework is Windows-only, while modern .NET is cross-platform.
- Source model: Modern .NET is fully open source and developed in the open on GitHub.
- Deployment: Modern .NET supports side-by-side versions and self-contained apps; only one .NET Framework 4.x can exist per machine.
- Performance: The CoreCLR runtime behind modern .NET is faster on almost every throughput benchmark.
- Future: The .NET Framework receives security fixes only, whereas modern .NET gets all new features.
How to Check Your .NET Framework Version
Knowing which version is installed helps you confirm compatibility before running or building an application. On Windows you can check the installed .NET Framework version in several ways:
- Registry Editor: Open regedit and navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full. The Release DWORD maps to a version; for example, 528040 or higher indicates 4.8, and 533320 or higher indicates 4.8.1.
- Command Prompt: Run reg query “HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4” /s to list the version keys.
- PowerShell: Run Get-ItemProperty “HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full” | Select-Object Release and compare the number to the official mapping.
- File Explorer: Open C:\Windows\Microsoft.NET\Framework, enter the highest v4.0.30319 folder, right-click any DLL, and read the Product version.
To check modern .NET instead of the Framework, open a terminal and run dotnet –list-sdks and dotnet –list-runtimes, or dotnet –version for the active SDK. These commands work on Windows, Linux, and macOS.
How Often Are New C# and .NET Versions Released?
Since .NET 5 in 2020, Microsoft has shipped a major .NET release every November, and each one ships with a matching C# language version. This predictable annual cadence replaced the slower, less regular schedule of the old .NET Framework era.
Releases follow two support tracks:
- Long-Term Support (LTS): Even-numbered releases such as .NET 8 and .NET 10 receive three years of patches and are recommended for production.
- Standard-Term Support (STS): Odd-numbered releases such as .NET 9 receive eighteen months of support and are ideal for adopting the newest features early.
The .NET Framework does not follow this cadence at all. It stopped at 4.8.1 and stays fixed, so version currency now applies only to the modern .NET line and its C# releases.
