Tools and diagnostics in .NET

In this article, you'll learn about the various tools available to .NET developers. With .NET, you have a robust software development kit (SDK) that includes a command-line interface (CLI). The .NET CLI enables many of the features throughout the .NET-ready integrated development environments (IDEs). This article also provides resources to productivity capabilities, such as .NET CLI tools for diagnosing performance issues, memory leaks, high CPU, deadlocks, and tooling support for code analysis.


The .NET SDK includes both the .NET Runtime and the .NET CLI. You can download the .NET SDK for Windows, Linux, macOS, or Docker. For more information, see .NET SDK overview.


The .NET CLI is a cross-platform toolchain for developing, building, running, and publishing .NET applications. The .NET CLI is included with the .NET SDK. For more information, see .NET CLI overview.


You can write .NET apps with a variety of IDEs and tools.

Additional tools

In addition to the more common tools, .NET also provides tools for specific scenarios. Some of the use cases include uninstalling the .NET SDK or the .NET Runtime, retrieving Windows Communication Foundation (WCF) metadata, generating proxy source code, and serializing XML. For more information, see .NET additional tools overview.

Diagnostics and instrumentation

As a .NET developer, you can make use of common performance diagnostic tools to monitor app performance, profile apps with tracing, collect performance metrics, and analyze dump files. You collect performance metrics with event counters, and use profiling tools to gain insights into how apps perform. For more information, see .NET diagnostics tools.

Code analysis

The .NET compiler platform (Roslyn) analyzers inspect your C# or Visual Basic code for code quality and code style issues. For more information, see .NET source code analysis overview.

Package Validation

The .NET SDK allows library developers to validate that their packages are consistent and well formed. For more information, see .NET SDK package validation.