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
.nuspecwith package typeTemplate 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.