The platform's path
Framework → Core → unified .NET
One platform, three eras: Windows-only, then cross-platform, then one .NET.
The runtime under F# did not stand still. It began as the .NET Framework, a Windows-only, in-place platform. A second line, .NET Core, rebuilt it open and cross-platform. Then the two converged into one unified .NET on an annual cadence. For F# the consequence is concrete: it runs on Linux and macOS, builds with one command-line tool, and shares the platform's base library. This dive walks the documented release line and reads off what each era changed for the language.
Three eras of the platform
The platform's history falls into three bands. The .NET Framework era (2002–2019) was
Windows-only and installed in place, one version at a time: 1.0 in 2002, 2.0 in 2005 (which added generics),
3.0 in 2006 (WPF, WCF, WF), 3.5 in 2007 (LINQ), 4.0 in 2010, and a last release at 4.8 in 2019. The
.NET Core era opened in 2016 with a cross-platform, open-source, modular rebuild that runs on
Windows, Linux, and macOS and installs side by side, driven by the dotnet command-line
tool. The unified .NET era began with .NET 5 in November 2020 — the name dropped "Core", and
one .NET carried forward, with even-numbered releases marked long-term support.
Select a release below to read its year, whether it ran cross-platform, whether it was open-source, and its headline feature.
The .NET release line · select a release
Even-numbered unified releases (.NET 6, .NET 8) carry long-term support; the platform ships a new major version each November. The years and versions here are the documented release line — Framework 1.0 (2002) through .NET 8 (2023).
Two lines became one: a Windows-only framework and a cross-platform rebuild converged into a single .NET that ships every year.
What cross-platform meant for F#
The move off Windows changed where and how F# is used. On the .NET Framework, F# ran where Windows ran. After
.NET Core, the same F# code runs on Linux and macOS, which is why an F# service can be built in a container and
deployed to a Linux host. The build experience unified too: one dotnet command-line
tool restores, builds, runs, and tests an F# project on any supported operating system, and the base class
library an F# program calls is the platform's shared library, not a Windows-specific one.
Two organisations sit in the background of this story. The .NET Foundation, established in 2014, is an independent steward for open-source .NET projects. And Mono, started by Miguel de Icaza around 2004, was an earlier independent cross-platform implementation of .NET — a precursor to the cross-platform direction the unified platform later took.
Platform change
.NET Core (2016) made the runtime cross-platform and open-source; .NET 5 (2020) unified the two lines.
For F#
F# now runs on Linux and macOS; the dotnet tool builds and runs it; the base class
library is shared across the platform.
The platform's path is F#'s path: cross-platform .NET is what put F# on a Linux server and a Mac laptop, not only on Windows.
References
Sources
- Microsoft — .NET documentation — the platform overview, the release history, and the
dotnetCLI. - Microsoft — F# documentation — building and running F# on cross-platform .NET.
- The F# Software Foundation — F#'s home across the platform's evolution.
Related in this course
- C0.2 · .NET & the CLR — the module hub.
- C0.2.1 — The CLR — the runtime this platform ships.
- C0.2.3 — The F# Software Foundation — the open community behind the language.
- Elixir F0.2 — the evolution of the runtime — the BEAM's parallel history, for contrast.