Base Template (ConnectSoft.BaseTemplate)¶
Purpose¶
ConnectSoft.BaseTemplate is the Layer 2 kernel: a domain-agnostic ASP.NET Core solution that encodes ConnectSoft’s Clean Architecture layout, optional service surfaces (REST, gRPC, messaging, actors, AI stacks), observability, health, resilience, and test projects. It is not a product microservice— it contains no tenant- or business-domain aggregates meant for production feature work.
Layer 3 repositories (Microservice, Identity, API Gateway, Authorization Server, Health Checks Aggregator, Worker, SaaS templates, …) add ConnectSoft.{Product}.* projects beside the kernel and take ConnectSoft.BaseTemplate as a Git submodule at base-template/.
The ConnectSoft.BaseTemplate repository includes Graphify knowledge graphs for AI-assisted navigation (large graph; refresh with python -m graphify update . after template changes).
What this template is responsible for¶
| Concern | In Base | In Layer 3 only |
|---|---|---|
| Host bootstrap, Kestrel, middleware ordering | Yes | Fine-tuning |
MicroserviceRegistrationBase and kernel DI |
Yes | Template-specific registration subclasses |
*Model / *Application project graph |
Yes (ConnectSoft.BaseTemplate.*) |
Product-named parallel projects |
| Domain entities, SaaS bounded context | No | Yes |
| Identity UI / OIDC server endpoints | No | Identity / Auth Server templates |
Technical positioning¶
- Target framework and packages: follow repo
global.json,Directory.Packages.props, and.template.config/template.json(template metadata may show a TFM such asnet9.0; engineers should treat the repository as authoritative). - Installer:
ConnectSoft.BaseTemplate.Installer; short nameconnectsoft-base(confirm withdotnet new connectsoft-base -hafter install). - Authoring: maintainers often build with optional projects via AuthoringMode / solution filters—see repo README and
AGENTS.md.
Composition model¶
flowchart LR
subgraph L2 [Layer 2]
BT[ConnectSoft.BaseTemplate repo]
end
subgraph L3 [Layer 3]
P[Product template repo]
SM[base-template submodule]
end
BT --> SM
SM --> P
Rule: Bug fixes that belong to the kernel (shared behavior, security defaults, wrong health wiring) must land in ConnectSoft.BaseTemplate; Layer 3 repos then bump the submodule pointer. Avoid “fork drift” where the same fix exists only inside one product checkout.
Relationship to other templates¶
- Microservice Template — full product microservice on top of the same kernel pattern.
- Identity Backend / Authorization Server / API Gateway — specialized edges and security planes.
- Health Checks Aggregator — operations host (not domain).
Documentation map (this site)¶
| Section | Purpose |
|---|---|
| Getting Started | Clone, build, installer |
| Parameters | dotnet new symbols and feature flags |
| Solution structure | Projects and layers |
| Architecture | Clean Architecture, DI layering, dependency rules |
| Features | Optional stacks and capability flags |
| Configuration | appsettings conventions |
| Authentication | Host security surface (kernel) |
| Resiliency | Timeouts, Polly, HTTP resilience |
| Testing | Unit, architecture, acceptance |
| Development | Submodules, extending the kernel |
| Use cases | When Base vs Layer 3 |
| Runbook | CI, publishing the kernel |
Repository and cross-links¶
- Repo: ConnectSoft.BaseTemplate —
README.md,AGENTS.md - Templates registry
- Template layering and reuse
- Extended template configuration alignment
- BaseTemplate DI extensibility
Internal vs public docs
ConnectSoft.CompanyDocumentation holds a short, business-oriented summary of templates. This site (ConnectSoft.Documentation) is the technical source of truth for architecture, parameters, configuration contracts, and procedures.