Skip to content

ADR-0001: .NET 10 as the backend platform

Decision

This page records a decision and its status. A Proposed decision is not binding; an Accepted decision is binding on the Factory until amended or superseded.

  • Status: Accepted
  • Date: 2026-01-01
  • Deciders: Enterprise Architect, Solution Architect
  • Tags: backend, runtime, platform

Reviewed 2026-10-09 — retained, clarified

  • Disposition: retain. The user's direction is the .NET ecosystem.
  • Verified: AgentTemplate projects, ModelContextProtocol and the Orleans/NServiceBus messaging adapters target net10.0. The shared libraries ConnectSoft.Extensions.AI, .AI.AgentsFramework, .MessagingModel and .MessagingModel.MassTransit multi-target net8.0;net9.0;net10.0. LibraryTemplate offers net8/9/10; ApiLibraryTemplate is net10-only.
  • Clarification: "standardize on .NET 10" applies to hosts and generated services. Shared libraries may multi-target for external consumers; that is not a deviation.
  • Provenance: the Date field above is the value from the 2026-06-17 bulk commit (58e0a9e) that introduced all eleven ADRs; it is not an approval date. See handoffs/2026-10-09-independent-review/adr-dispositions.md.

Context

The factory and every service it generates need a single, modern, long-term-supported backend runtime. Earlier specs referenced .NET 10/9 (see Documentation Inconsistencies). The platform requires high performance, first-class cloud-native and container support, mature async/messaging libraries, and strong AI integration via Microsoft.Extensions.AI.

Decision

Standardize all backend platforms, microservices, workers, and generated services on .NET 10. Templates, ConnectSoft.Extensions.* libraries, and generation target .NET 10.

Consequences

Positive

  • One runtime across factory and generated products; consistent tooling and libraries.
  • Latest performance, AOT/trimming options, and native AI integration.
  • Long-term support alignment.

Negative / trade-offs

  • Residual .NET 10/9 references in legacy spec pages must be normalized over time.

Neutral

  • Pins minimum SDK/runtime versions in CI and base images.

Alternatives considered

Alternative Why not chosen
.NET 10/9 Older; superseded by .NET 10 capabilities and support window.
Mixed runtimes (Node/JVM) per service Fragments tooling, libraries, and the generation model.