Skip to content

ADR-008: .NET 10 as Runtime

Status: Accepted Date: 2026-03-09

Context

Choosing the .NET version for all Tablez backend services. Must be current, well-supported, and compatible with Marten, MediatR, and other dependencies.

Options Considered

Option Pros Cons
.NET 10 Latest, best performance, newest C# features, LTS (Nov 2026) Preview Docker images, some packages may lag
.NET 9 Stable, STS End of support May 2026 — would need upgrade soon
.NET 8 LTS, mature Older, missing performance improvements

Decision

Use .NET 10 for all services from day one.

Rationale

  • Already installed. Development machine runs .NET 10 SDK.
  • LTS release. .NET 10 will be a Long Term Support release (3 years of support from November 2026). Starting on it avoids an early forced migration.
  • All dependencies support it. Marten 8.23, MediatR 14, Stateless, YARP — all build and run on net10.0.
  • Performance. Each .NET release brings measurable ASP.NET Core performance improvements. Starting on the latest means benefiting immediately.
  • C# 14 features. Primary constructors, collection expressions, and other features that make code cleaner — relevant for AI agent productivity.

Consequences

  • Docker images use mcr.microsoft.com/dotnet/aspnet:10.0-preview and sdk:10.0-preview until GA (November 2026).
  • Must verify NuGet package compatibility when adding new dependencies.
  • All .csproj files target net10.0.