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 librariesConnectSoft.Extensions.AI,.AI.AgentsFramework,.MessagingModeland.MessagingModel.MassTransitmulti-targetnet8.0;net9.0;net10.0.LibraryTemplateoffers net8/9/10;ApiLibraryTemplateis 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
Datefield above is the value from the 2026-06-17 bulk commit (58e0a9e) that introduced all eleven ADRs; it is not an approval date. Seehandoffs/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. |