# What .NET Is — .NET Core: Build, Test and Ship Web APIs

Source: https://www.geekswithgeeks.com/en/dotnet-core/dotnet-what-is

> Tell apart the SDK, the runtime and .NET Framework, and explain why modern .NET is cross-platform.

## SDK vs runtime

The **SDK** has the compiler and the `dotnet` CLI for building apps. The **runtime** only runs finished apps. Developers install the SDK; servers can run with just the runtime.

## From source to running app

Your C# is compiled to intermediate language, then the runtime turns it into machine code when the app runs.

![Four connected stages from C# source to a running process.](assets/figures/dotnet-core/section-1-map.svg) — Figure 1.1 — Source, compile, runtime, running app.

## A kitchen analogy

The SDK is the full kitchen where you cook. The runtime is the dining table where the finished dish is served. A restaurant customer needs only the table.

## Do not confuse the names

".NET Framework" is the older Windows-only product. ".NET Core" became plain ".NET" from version 5 onward. Tutorials for "ASP.NET" (System.Web) often do not apply to modern ASP.NET Core.

**Quiz:** Which piece must a build machine have to compile C# apps?

- [ ] Only the runtime
- [ ] Only a web browser
- [x] The .NET SDK
- [ ] .NET Framework 4.8

*Answer:* The .NET SDK. The SDK includes the compiler and CLI. The runtime alone can run apps but not build them.
