Skip to content

Development Environment

samgerene edited this page Oct 11, 2026 · 3 revisions

Development Environment

IDE

The core development team uses JetBrains Rider. The .editorconfig in the root of the repository states the code conventions; Rider, Visual Studio and VS Code read it and show violations while you type. The solution also includes a .DotSettings file with the file header template and naming rules for ReSharper and Rider.

Visual Studio 2022 is also supported.

SDK

ArgusTransfer targets .NET 10.0. Install the .NET 10.0 SDK or later.

NuGet

NuGet is used to manage dependencies. Packages are available on nuget.org.

Build and Test Commands

# Build the solution
dotnet build ArgusTransfer.sln

# Run all tests
dotnet test ArgusTransfer.sln

# Run tests with code coverage
dotnet test ArgusTransfer.sln --no-restore --no-build --verbosity normal \
    /p:CollectCoverage=true \
    /p:CoverletOutput="../CoverageResults/" \
    /p:MergeWith="../CoverageResults/coverage.json" \
    /p:CoverletOutputFormat="opencover,json"

# Run a single test by name
dotnet test ArgusTransfer.Tests --filter "FullyQualifiedName~Verify_that_HealthEndPoint_can_be_read"

# Apply the rules of .editorconfig (formatting, using order, file header, code style)
dotnet format ArgusTransfer.sln

# Check them without changing files (the build of a pull request runs this)
dotnet format ArgusTransfer.sln --verify-no-changes

# Build with warnings as errors (final verification)
dotnet build ArgusTransfer.sln -warnaserror

Code Conventions

  • Language: C# with LangVersion 14.0
  • Explicit usings: ImplicitUsings is disabled -- all using directives must be written explicitly
  • Nullable: disabled in both the main project and tests
  • XML doc comments: required on all public types and members
  • Style rules: .editorconfig sets them as warnings (using directives inside the namespace, this. for instance members, braces always, block-scoped namespaces, naming); dotnet build -warnaserror and dotnet format --verify-no-changes fail on a violation
  • License header: every .cs file starts with the short copyright block (<copyright file="..."> with its own file name, the copyright line and SPDX-License-Identifier: Apache-2.0); dotnet format adds it to a new file
  • Testing framework: NUnit with Assert.That syntax
  • Test class naming: {ClassName}TestFixture
  • Test method naming: Verify_that_{scenario_in_snake_case}

Clone this wiki locally