2002 – 2025
.NET Versions
Every public release of .NET — .NET Framework 1.0 in February 2002 through .NET 10 in November 2025 — with support windows, end-of-life dates, and the major changes per version. Plus the Mono lineage, the Connect(); 2014 open-source pivot, the Xamarin acquisition, and the .NET 5 unification.
The original 2002 launch
.NET was previewed at Microsoft's Professional Developers Conference on July 11, 2000, and shipped February 13, 2002 with Visual Studio .NET. Microsoft's response to Java's positioning as a cross-platform, garbage-collected, JIT-compiled enterprise runtime — with carefully chosen differences (real generics with reified type information, value types, properties and events as first-class language constructs).
Anders Hejlsberg led the C# language design after his earlier work on Turbo Pascal and Delphi at Borland; Hejlsberg moved to Microsoft in 1996. Patrick Dussud was the lead architect on the CLR. Brad Abrams and Krzysztof Cwalina defined the BCL design conventions captured in Framework Design Guidelines. .NET 1.0 was proprietary, Windows-only, and shipped as a Windows component — a posture that would not change for twelve years.
C# vs. Java
.NET shipped explicitly as a competitor to Java, after Microsoft's relationship with Sun deteriorated through the J/Direct and J++ episode and the Sun v. Microsoft settlement that ended Microsoft's Java licensing in January 2001. Hejlsberg has been candid that early C# was Java-influenced with deliberate diversions: real generics with type information preserved at runtime (unlike Java's erasure), value types (struct), delegates and events as first-class language constructs, properties as syntactic sugar over getter/setter pairs, and the using statement for deterministic disposal. The two languages have evolved on parallel tracks since — with C# generally adding language features faster.
The Mono lineage
Mono was started in July 2001 by Miguel de Icaza at Ximian as an open-source reimplementation of the .NET CLR and BCL on Linux — before .NET 1.0 had even shipped. Ximian was acquired by Novell in 2003. After Novell was acquired by Attachmate in 2011, the Mono team founded Xamarin, which built iOS / Android / macOS toolchains on top of Mono.
Microsoft acquired Xamarin in February 2016 (reportedly $300–500M, never officially disclosed). Miguel de Icaza joined Microsoft as a Distinguished Engineer; the Mono runtime was relicensed under MIT shortly after. The Mono runtime continued to ship through .NET 7 inside the MAUI toolchain. In 2024 Microsoft formally handed Mono off to the Wine project as its long-term steward — closing a 23-year arc from outsider clone to supported derived runtime.
The 2007 LINQ revolution
.NET Framework 3.5 plus C# 3 plus VB 9 introduced LINQ (Language-Integrated Query) in November 2007, alongside a related set of language features — lambda expressions, extension methods, anonymous types, the var keyword, expression trees. LINQ turned C# from a Java alternative into a notably more expressive language and opened the door for query providers like LINQ to SQL and Entity Framework. The single largest leap in the C# language story until pattern matching and records arrived in C# 8–9.
The Roslyn rewrite (2010–2014)
Microsoft began rewriting the C# and VB compilers in C# itself — the "Roslyn" project, named after a Seattle suburb — starting around 2010. Roslyn was open-sourced under the Apache 2.0 license in April 2014 and shipped GA with Visual Studio 2015 and .NET Framework 4.6 in 2015. The compiler-as-a-service architecture made source generators, real-time analyzers, and the modern Visual Studio / VS Code experience possible, and quietly turned the C# compiler into one of the most-used pieces of open-source code in the world.
Connect(); 2014 — the open-source pivot
On November 12, 2014, Satya Nadella's still-new Microsoft (Nadella took over in February 2014) announced at the Connect(); 2014 event that .NET would be open-sourced under the MIT license, the .NET Foundation would be created to govern the project, ASP.NET vNext would become a new from-scratch cross-platform runtime (later renamed ASP.NET Core), and Visual Studio Community Edition would be free.
It was the largest single strategic reversal in Microsoft's developer-tools history. Twelve years of "we don't open-source platform code" became "we open-source all of it." Most of the post-2014 Microsoft developer story — TypeScript, VS Code, GitHub acquisition, Azure-first development, the modern .NET cadence — flows from this event.
The .NET Foundation
The .NET Foundation was founded April 3, 2014 to host the open-source projects. Independent legal entity with a board that includes both Microsoft and outside members. Hosts dotnet/runtime, dotnet/sdk, dotnet/aspnetcore, dotnet/maui, dotnet/roslyn, and dozens of community projects (NuGet, Newtonsoft.Json, Avalonia, ML.NET). Has had its share of governance debates over the years; remains the structural answer to "who owns the .NET ecosystem outside of Microsoft proper."
The Xamarin acquisition (February 2016)
Microsoft acquired Xamarin in February 2016 for an undisclosed sum (reported as $300–500M). Miguel de Icaza joined Microsoft as a Distinguished Engineer (a position he held until departing in 2022); Nat Friedman, the other Xamarin co-founder, would later become CEO of GitHub after Microsoft acquired GitHub in 2018. The Mono runtime and the Xamarin Studio iOS / Android / macOS toolchain were integrated into Visual Studio. Xamarin Forms eventually evolved into .NET MAUI in .NET 6 (2021).
The .NET Core pivot (2014–2020)
ASP.NET vNext — announced at Connect(); 2014 — was renamed ASP.NET Core, and the runtime under it became .NET Core. From-scratch rewrite of the runtime, BCL, and tooling around three goals: cross-platform support (Linux, macOS, Windows), open development on GitHub, and side-by-side installation on the same machine.
.NET Core 1.0 shipped at Build 2016 (June 27, 2016). 2.0 (August 2017) brought .NET Standard 2.0 and a much larger BCL. 2.1 (May 2018) was the first LTS in the line and shipped Span<T>, the primitive that unlocked the .NET-performance era. 3.0 (September 2019) ported WPF and Windows Forms to .NET Core (Windows-only). 3.1 (December 2019) was the final release under the "Core" branding.
The .NET 5 unification (November 2020)
.NET 5 shipped on November 10, 2020. One .NET, one BCL, no more Framework / Core / Mono / Xamarin runtime split. The version-number jump from 3.1 to 5 was deliberate: .NET 4 was skipped to avoid colliding with the long-running .NET Framework 4.x name space and the inevitable confusion around "is .NET 4 the same as Framework 4?"
From .NET 5 forward there is one runtime story across the targets that previously had separate runtimes (Windows desktop, ASP.NET Core, iOS / Android via Xamarin / MAUI, WebAssembly via Blazor). .NET Standard was deprecated as the cross-runtime API spec because the unified runtime made it unnecessary — existing libraries targeting netstandard2.0 still work, but new libraries should target a specific .NET version like net8.0.
The annual November cadence (2020–)
Since .NET 5, every November ships a new major version. Even-numbered releases (6, 8, 10) are LTS with three years of support. Odd-numbered releases (5, 7, 9) are STS with eighteen months of support. The cadence is documented at dotnet.microsoft.com/platform/support/policy and is the load-bearing piece of context for support-window decisions.
For a developer planning a multi-year project, the practical advice has been "target the LTS" since the cadence was formalized in 2021. The STS releases are useful for trying upcoming language features and for shorter-lived workloads that will be re-deployed before the 18-month support window ends; the LTS releases are the right default for production services.
The native-AOT story (2022–)
.NET 7 introduced native AOT (ahead-of-time) compilation for console and library workloads in November 2022. .NET 8 extended it to ASP.NET Core in November 2023, making it a real production target for cloud workloads. .NET 9 and 10 continued the work on size, startup time, and trim safety. The end goal: .NET binaries that compete with Go and Rust on cold-start time and deployment size for serverless and microservice workloads, while keeping the C# language and BCL developer experience.
.NET Standard — the parallel API spec
.NET Standard was a specification for the API surface that library authors could target to be portable across .NET Framework, .NET Core, Mono, Xamarin, and Unity, defined as a series of versions (1.0 through 2.1, 2016–2019). It was not itself a runtime — just an agreement that "if you target netstandard2.0, your library will work on any conforming runtime." For its era, it was an essential bridge.
The .NET 5 unification deprecated .NET Standard as the cross-runtime spec, because the unified runtime no longer needed it. Existing libraries targeting netstandard2.0 still work everywhere, including on modern .NET. New libraries should target a specific .NET version like net8.0 — or netstandard2.0 if they need to keep supporting .NET Framework consumers. Microsoft's official guidance is at learn.microsoft.com/dotnet/standard/net-standard.
People who actually shaped .NET
Original Microsoft team: Anders Hejlsberg (C# language designer, Distinguished Engineer; previously Turbo Pascal and Delphi at Borland; moved to Microsoft 1996), Patrick Dussud (CLR architect, Technical Fellow), Krzysztof Cwalina and Brad Abrams (Framework Design Guidelines; BCL conventions), Eric Lippert (C# language design and compiler), Jay Schmelzer (long-time Visual Studio leadership).
Mono / Xamarin lineage: Miguel de Icaza (Mono founder 2001, Xamarin co-founder, Distinguished Engineer at Microsoft 2016–2022), Nat Friedman (Xamarin co-founder, GitHub CEO 2018–2021), Joseph Hill (Xamarin co-founder).
Modern .NET team: Mads Torgersen (C# language design lead, current), Stephen Toub (performance lead; the public face of the annual "Performance Improvements in .NET N" mega-posts), Richard Lander (.NET runtime PM), Damian Edwards (ASP.NET Core lead, minimal APIs author), David Fowler (architect across many of the modern stacks — ASP.NET Core, Orleans, Aspire), Immo Landwerth (BCL / API surface). Public face: Scott Hanselman (long-running community-facing .NET evangelist), Scott Guthrie (Azure EVP, originally created ASP.NET in 2002).
The sibling and derived runtimes
Several runtimes branch off the main .NET tree:
- Mono — the open-source CLR started in 2001 by Miguel de Icaza. Stewarded by Microsoft 2016–2024; handed off to the Wine project in 2024 as its long-term home.
- .NET Native — the AOT-compiled UWP-only runtime; deprecated in favor of the modern native-AOT story.
- Blazor — .NET running in the browser via WebAssembly (Blazor WebAssembly) or rendered on the server with DOM diffs over SignalR (Blazor Server) or hybrid (Blazor Hybrid in MAUI).
- MAUI — .NET Multi-platform App UI; the Xamarin Forms successor for iOS / Android / macOS / Windows. Graduated in .NET 6 (2021).
- Unity scripting — the Unity game engine embeds a forked Mono runtime; Unity has been working toward a native-AOT-based future under "CoreCLR" support, but as of the table's last update most shipping Unity titles still use the Mono fork.
- dotnet/runtimelab — the public experimental sandbox for runtime-team work (Green Threads, Project Reunion-related code, and so on).