Skip to content

Blazor and MAUI Template Governance

Blazor and MAUI repositories must be classified before template work starts.

Classification

  • Template - a reusable starter solution installed with dotnet new.
  • Concrete template - a specific shell or microfrontend implementation installed with dotnet new.
  • Library - a reusable package with samples/tests/docs; template metadata is optional and only kept when the repo intentionally acts as a generator.

ConnectSoft.Maui.UIKit is governed as a library. ConnectSoft.Blazor.UIKit keeps its existing generator metadata and must satisfy both library and template packaging checks.

Required template metadata

Every real template must include:

  • .template.config/template.json
  • .template.config/dotnetcli.host.json
  • .template.config/ide.host.json
  • a .nuspec with package type Template
  • azure-pipelines-template.yml
  • scaffold smoke validation in CI

Use camelCase parameter names for optional include/skip flags: includeTests, includeSamples, includeDocs, and skipRestore.

Standard extension baseline

Blazor shell and MFE templates should reference ConnectSoft packages for options, metrics, localization, logging, observability, telemetry, web security, rate limiting, request timeout, and testing.

UI libraries should reference the smaller baseline: core extensions, options, metrics, localization, and testing.

Required build matrix tracking

Template alignment work must maintain a build matrix with these columns: repository, classification, template metadata, packaging, extension baseline, and restore/build status.

Runtime Blazor templates may be marked blocked only when restore fails because the private ConnectSoft package feed is not authenticated. Package downgrade, malformed JSON/XML, missing template metadata, or missing CI smoke validation must be fixed before a template is marked aligned.

Deferred scope

Backend-style base-template submodule composition is not required for current Blazor or MAUI alignment. Revisit it only after template metadata, packaging, validation, and documentation are stable.