.NET components
.NET includes the following components1:
- The runtime to executes application code.
- Libraries to provide utility functionality. For example, JSON parsing.
- The compiler to compile source code into (runtime) executable code.
- SDK and other tools to enable building and monitoring apps with modern workflows.
- App stacks to write different types of apps like ASP.NET Core and Windows Forms.
flowchart TD
SDK[".NET SDK & Tools<br/>create, build, test, etc."]
Source["C# Source Code"]
Compiler["Compiler"]
SDK --> Compiler
Source --> Compiler
subgraph App["Your Application"]
direction TB
subgraph Stack["App Stack<br/>(ASP.NET Core)"]
direction TB
Libraries[".NET Libraries<br/>APIs & types"]
end
end
Compiler -->|compiles| App
App -->|executed by| Runtime[".NET Runtime"]
The runtime, libraries, and languages are the pillars of the .NET stack. Higher-level components, like .NET tools, and app stacks, like ASP.NET Core, build on top of these pillars. C# is the primary programming language for .NET and much of .NET is written in C#.
The SDK and other tools enable a modern developer experience, both on a developer desktop and for continuous integration (CI). The modern developer experience includes building, analyzing, and testing code. .NET projects can often be built by a single dotnet build command, which orchestrates restoring NuGet packages and building dependencies.
NuGet is the package manager for .NET. It contains hundreds of thousands of packages that implement functionality for many scenarios. Many apps rely on NuGet packages for some functionality. The NuGet Gallery is maintained by Microsoft.