Skip to content

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 as net9.0; engineers should treat the repository as authoritative).
  • Installer: ConnectSoft.BaseTemplate.Installer; short name connectsoft-base (confirm with dotnet new connectsoft-base -h after 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
Hold "Alt" / "Option" to enable pan & zoom

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

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

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.