What’s the difference between SDK and Runtime in .NET Core?

According to the .Net Core Guide, .NET Core is composed of the following items

  • A .NET runtime, which provides a type system, assembly loading, a garbage collector, native interop and other basic services.
  • A set of framework libraries, which provide primitive data types, app composition types and fundamental utilities.
  • A set of SDK tools and language compilers that enable the base developer experience, available in the .NET Core SDK.
  • The ‘dotnet’ app host, which is used to launch .NET Core apps. It selects the runtime and hosts the runtime, provides an assembly loading policy and launches the app. The same host is also used to launch SDK tools in much the same way.

The SDK is all of the stuff that is needed/makes developing a .NET Core application easier, such as the CLI and a compiler.

The runtime is the “virtual machine” that hosts/runs the application and abstracts all the interaction with the base operating system.

Only the latter is required to run the application, but the former is needed to develop the application.

Leave a Comment

tech