Skip to content

.NET — Tier 2 — Recommended

Tier 2 .NET checks verify professional standards for well-maintained .NET solutions. Each check is worth 2 points. There are 8 checks in this tier for a maximum of 16 points. These checks only run when a .sln file is detected.

Nullable Reference Types

SlugCategoryWhat it checks
dotnet-nullableCode Quality<Nullable>enable</Nullable> is set in Directory.Build.props or all .csproj files

Nullable reference types catch null-reference bugs at compile time. Enabling them project-wide eliminates an entire class of runtime errors.


global.json SDK Pinning

SlugCategoryWhat it checks
dotnet-global-jsonBuild ConfigA global.json file exists with an SDK version pin

Pins the .NET SDK version for the solution, ensuring all developers and CI use the same SDK. Prevents "works on my machine" issues from SDK version differences.


Code Coverage

SlugCategoryWhat it checks
dotnet-code-coverageTestingA coverage tool (coverlet) is referenced in test projects

Code coverage measurement tracks which code paths are exercised by tests. Without it, you're guessing about test quality.


Central Package Management

SlugCategoryWhat it checks
dotnet-central-packagesBuild ConfigA Directory.Packages.props file exists with <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>

Centralizes NuGet package version management across all projects. Prevents version conflicts and makes upgrades a single-file change.


XML Documentation

SlugCategoryWhat it checks
dotnet-xml-docsCode Quality<GenerateDocumentationFile>true</GenerateDocumentationFile> is enabled

Generates XML documentation from /// comments, enabling IntelliSense in consuming projects and documentation generation tools.


NuGet Metadata

SlugCategoryWhat it checks
dotnet-nuget-metadataPackagingProjects intended for NuGet have PackageId, Authors, Description, and PackageLicenseExpression

Complete NuGet metadata ensures packages are discoverable, properly attributed, and legally clear on NuGet.org.


Solution Structure

SlugCategoryWhat it checks
dotnet-solution-structureBuild ConfigThe .sln file organizes projects into src\ and tests\ solution folders

A well-organized solution structure makes it immediately clear where source projects and test projects live, improving navigation for new contributors.


Implicit Usings

SlugCategoryWhat it checks
dotnet-implicit-usingsCode Quality<ImplicitUsings>enable</ImplicitUsings> is set

Implicit usings reduce boilerplate by automatically importing common namespaces (System, System.Collections.Generic, etc.). Keeps source files focused on actual logic.

Released under the MIT License.