Skip to content

Template Artifact Model

ConnectSoft backend templates now distinguish between two business artifacts:

  • Materialized solution: generated software that a team develops, deploys, and owns.
  • Template artifact: a factory/platform asset used to create another reusable template layer.

The public CLI contract is:

dotnet new <connectsoft-template> -n MyService --artifact-kind solution
dotnet new <connectsoft-template> -n MyServiceTemplate --artifact-kind template

solution is the default.

Why This Matters

The distinction prevents factory internals from leaking into customer or product code while still allowing ConnectSoft to build deeper template layers for specific clients, platforms, domains, and vertical solution packs.

For example:

  • API Gateway to customer-specific Gateway Template to final Gateway solution.
  • BaseTemplate to new backend template to final service solution.
  • SaaS bounded-context template to vertical-specific SaaS template to customer solution.

Artifact Ownership

Materialized solutions are owned by delivery/product teams. They should contain application source, tests, runtime docs, deployment assets, and normal CI/CD.

Template artifacts are owned by the Factory/platform team. They intentionally contain authoring metadata, composition hooks, template CI, BaseTemplate submodules, and extension contracts.

In-Scope Backend Template Family

The first rollout applies to backend/service templates:

  • ConnectSoft.BaseTemplate
  • ConnectSoft.MicroserviceTemplate
  • ConnectSoft.ApiGatewayTemplate
  • ConnectSoft.IdentityTemplate
  • ConnectSoft.AuthorizationServerTemplate
  • ConnectSoft.HealthChecksAggregatorTemplate
  • ConnectSoft.WorkerTemplate
  • ConnectSoft.MicrosoftBotFrameworkTemplate
  • ConnectSoft.AI.SoftwareFactory.AgentTemplate
  • ConnectSoft.Saas.*Template
  • ConnectSoft.PlatformTemplate after its installer flow is finalized

Deferred for a separate decision:

  • ConnectSoft.DocumentationTemplate
  • ConnectSoft.MarketingSiteTemplate
  • ConnectSoft.MauiBaseTemplate
  • ConnectSoft.LibraryTemplate
  • ConnectSoft.ApiLibraryTemplate
  • ConnectSoft.AISkillsLibraryTemplate
  • ConnectSoft.Blazor.*Template

These deferred templates have different product shapes and should not inherit the backend artifact policy without a dedicated decision.

Lifecycle Policy

When a team needs a working service, generate artifact-kind=solution.

When ConnectSoft or a client platform team needs a reusable starter for repeated internal services, generate artifact-kind=template, then maintain it as a template repository with its own validation and release lifecycle.

Template artifacts must be tested by generating a final solution from them. A template artifact is not complete until it can produce a clean buildable solution.