Alternatives to .NET
Microsoft's free, open-source, cross-platform runtime and SDK for building apps in C#, F# and Visual Basic. The listings below can replace it for an important use case. Each note says what changes if you switch.
The original
.NET
Microsoft's free, open-source, cross-platform runtime and SDK for building apps in C#, F# and Visual Basic.
Replacements
Listings that take over the same core job as .NET.
Eclipse Temurin
Free prebuilt OpenJDK Java runtime and development kit binaries from the Eclipse Adoptium project.
Eclipse Temurin moves development to Java on certified OpenJDK builds for Windows, macOS and Linux, with no production licensing fees, though IDEs and build tools must be added separately.
Amazon Corretto
A no-cost OpenJDK distribution from Amazon with long-term support and quarterly security updates.
Amazon Corretto switches to a free OpenJDK distribution with long-term support and quarterly security updates from Amazon, with the platform's direction set by Amazon rather than a community foundation.
Go
An open-source compiled programming language from Google with built-in concurrency and a module system.
Go replaces C# with a small compiled language from Google that has built-in concurrency and one toolchain for building, testing and dependencies, suited to network services and CLI tools.
Kotlin
A concise, multiplatform programming language from JetBrains for backend, Android, web and desktop apps.
Kotlin moves you to a JetBrains language targeting the JVM, Android, web and native through multiplatform, with its best tooling tied to JetBrains IDEs rather than Microsoft tools.
Node.js
The JavaScript runtime that server-side JavaScript is built on, with the npm ecosystem behind it.
Node.js swaps C# for server-side JavaScript under open governance at the OpenJS Foundation, with the large npm ecosystem, but it is single-threaded by default for CPU-heavy work.
Rust
A compiled systems programming language with no garbage collector, installed through the rustup toolchain manager.
Rust replaces the garbage-collected .NET runtime with a compiled language that checks memory safety at compile time, with an integrated package manager, though its ownership model takes time to learn.
Swift
A general-purpose, compiled programming language and toolchain available for Linux, macOS and Windows.
Swift offers a compiled language with toolchains for Linux, macOS and Windows and strong safety guarantees, though much of its library ecosystem targets Apple platforms.
Python
A general-purpose programming language used for scripting, web backends, data analysis and machine learning.
Python trades compiled C# for a readable interpreted language that dominates data and machine learning work, but it runs much slower for CPU-heavy tasks and packaging is often confusing.
Similar software
Related functionality, not a direct replacement.
Visual Studio
Microsoft's integrated development environment for .NET, C++ and Windows development, with a free Community edition.
PowerShell
Microsoft's cross-platform automation shell, where commands pass structured objects to each other instead of lines of text.
ILSpy
Browse and decompile .NET assemblies.
dnSpyEx
An unofficial, maintained continuation of dnSpy, the .NET debugger, decompiler and assembly editor.
Theia IDE
An open-source IDE for desktop and browser from the Eclipse Foundation that runs VS Code extensions.