This episode traces the evolution of .NET from .NET Framework to .NET Core and unified .NET. You will understand the problems this platform solves, the changes to the release model, and how it compares with traditional development approaches.

In episode 0 you set up your .NET environment. Now it's time to understand why .NET exists and where it came from. Without this context, the technical decisions you'll encounter in this series — like choosing a runtime, understanding LTS releases, or using NuGet — will feel like rules without reasons.
Episode 1 dissects the long history of .NET: the birth of .NET Framework in the early 2000s, the rise of .NET Core as an open-source and cross-platform platform, and the unification of both into the single .NET we know today. You will also see the problems this platform solves and how it compares with traditional approaches.
.NET Framework was born in 2002 alongside the Windows era. It was powerful and stable, but tied to the Windows operating system and had a slow release model. The problem became clear as the industry started moving workloads to Linux and the cloud: developers couldn't run .NET Framework applications outside of Windows.
The solution was .NET Core, released in 2016. It was rewritten as a modular, open-source, cross-platform runtime. Applications could run on Windows, Linux, and macOS without significant changes. This was a turning point that paved the way for .NET adoption in the cloud world.
Starting with version 5, Microsoft dropped the Core and Framework terms and merged everything into a single platform: .NET. One SDK, one runtime, one C# language, and one release model scheduled every November:
dotnet --infoThe dotnet --info output shows the SDK version, runtime, and installation paths. Note the two release categories: LTS (for example .NET 8), supported for more than 3 years for production stability, and STS (for example .NET 9), released with short-term support for the latest features.
Before .NET Core, development teams often used different languages for backend, desktop, and tooling. .NET unifies everything: a single piece of C# code can be compiled into console apps, web APIs, desktop apps, and even mobile apps. The managed runtime handles garbage collection and type safety, so developers focus on business logic rather than memory management.
The modern C# compiler brings features like nullable reference types and pattern matching that make code safer and more concise. This improves productivity without sacrificing performance — the JIT can even match native code for many workloads.
No modern platform exists without a package manager. NuGet is .NET's primary package registry with hundreds of thousands of libraries. Adding a dependency is as easy as one command:
dotnet add package Newtonsoft.Jsondotnet add package Newtonsoft.Json downloads the library into your project and updates the .csproj file automatically. SDK-style projects (episode 3) make this dependency resolution transparent and reproducible, unlike the earlier era full of assembly conflicts.
Native languages like C++ offer full control but demand manual memory management and slow build cycles. Scripting languages like Python or JavaScript are fast for prototyping, but their performance depends on the interpreter. .NET takes the middle path: code is compiled to IL (Intermediate Language), then JIT- or AOT-compiled to native code at execution time — a combination of productivity and performance.
Java has a JVM with similar concepts, but .NET excels in modern tooling such as hot reload, source generators, and deep integration with the Microsoft cloud ecosystem. Go excels at fast startup and small binaries, but the library ecosystem and C# language features are far richer for enterprise applications.
Tip
Don't choose a platform just because of its popularity. Measure against your workload: for line-of-business, web APIs, and cloud integration, .NET is a strong candidate because one toolchain handles everything.
.NET has long been the primary choice for line-of-business systems — systems that drive a company's daily operations such as ERP, CRM, and financial systems. The reasons are stability, long LTS support, and mature tooling: debugging, profiling, and IDE integration proven over two decades. For companies, upgrading financial systems is not a light decision — and .NET provides the assurance they need.
On the web side, ASP.NET Core is known as one of the best-performing web server frameworks — approaching millions of requests per second in benchmarks. For games, Unity uses C# as its primary scripting language, so .NET skills open a path into the game industry. Meanwhile, .NET MAUI unifies mobile and desktop in a single codebase.
Since 2016, .NET is fully open source on GitHub with regular contributions from thousands of contributors. This has a huge impact: you can read the runtime source code, report bugs, and even contribute directly. The cloud ecosystem welcomes .NET with official SDKs for Azure, AWS, and GCP — making it a first-class citizen on all three major providers.
dotnet build --configuration Release
dotnet exec --runtimeconfig bin/Release/net8.0/HelloDotnet.runtimeconfig.json bin/Release/net8.0/HelloDotnet.dllThe example above shows two ways to run an application: through dotnet run, which combines build and execution, or through dotnet exec, which executes the assembly directly using the runtimeconfig produced by the build. This understanding is useful when you read deployment scripts in episode 19.
Behind the technology is a community that keeps it alive. The .NET ecosystem has official forums, high-quality documentation, millions of answered questions on Stack Overflow, and annual events like .NET Conf that are free to attend. You are never learning alone — and these resources will be very helpful throughout this series.
Also bookmark the official Microsoft Learn documentation as your primary reference whenever you encounter an unclear concept. Reading documentation is a skill as important as writing code.
Summary of platform-selection context:
If your workload falls into any of the categories above, .NET is the right answer.
Key takeaways:
In the next episode 2 we will discuss core concepts and main architecture — how C# is compiled to IL and executed by the CLR, the garbage collector, JIT, .NET project structure, and the Generic Host. This is the foundation that explains how .NET applications behave under the hood.