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-previewandsdk:10.0-previewuntil GA (November 2026). - Must verify NuGet package compatibility when adding new dependencies.
- All
.csprojfiles targetnet10.0.