Skip to content

Blazor and MAUI Template Alignment

This page defines the current alignment standard for Blazor and MAUI templates. Backend-style base-template submodule composition is intentionally deferred.

Repo classification

  • Templates generate a reusable starter solution and must be installable with dotnet new.
  • Concrete templates generate a specific shell or microfrontend implementation and must also be installable with dotnet new.
  • Libraries are reusable packages. They are not required to expose template metadata unless the repo intentionally acts as a generator.

ConnectSoft.Maui.UIKit is treated as a library. ConnectSoft.Blazor.UIKit keeps its existing generator metadata and is packaged as ConnectSoft.Blazor.UIKit.Template.

Required template surface

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
  • central package management through Directory.Packages.props
  • solution, source, tests, and docs exclusions for generated output

Standard parameters

Templates use these normalized parameter names:

  • Framework
  • uiKitAdapter
  • includeTests
  • includeSamples
  • includeDocs
  • UseLocalization
  • UseObservability
  • UseSecurity
  • UseValidatedOptions
  • skipRestore

Use specialCustomOperations casing in template manifests.

ConnectSoft extension baseline

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

Blazor and MAUI UI libraries reference the library-safe baseline: core extensions, options, metrics, localization, and testing.

Build matrix

Repository Classification Template metadata Packaging Extension baseline Restore check
ConnectSoft.Blazor.Mfe.ECS.AdminTemplate Concrete template Aligned Aligned Runtime baseline Requires authenticated ConnectSoft feed
ConnectSoft.Blazor.Mfe.ECS.MonitoringTemplate Concrete template Aligned Aligned Runtime baseline Requires authenticated ConnectSoft feed
ConnectSoft.Blazor.Mfe.ECS.SelfServiceTemplate Concrete template Aligned Aligned Runtime baseline Requires authenticated ConnectSoft feed
ConnectSoft.Blazor.Mfe.Identity.AdminTemplate Concrete template Aligned Aligned Runtime baseline Requires authenticated ConnectSoft feed
ConnectSoft.Blazor.Mfe.Identity.SelfServiceTemplate Concrete template Aligned Aligned Runtime baseline Requires authenticated ConnectSoft feed
ConnectSoft.Blazor.Mfe.Logistics.Template Concrete template Aligned Aligned Runtime baseline Requires authenticated ConnectSoft feed
ConnectSoft.Blazor.ECS.ShellTemplate Concrete shell template Aligned Aligned Runtime baseline Requires authenticated ConnectSoft feed
ConnectSoft.Blazor.Mfe.AIChatTemplate Existing template Normalized Existing Runtime baseline Requires authenticated ConnectSoft feed
ConnectSoft.Blazor.Mfe.AuthorizationServer.AdminTemplate Existing template Normalized Existing Runtime baseline Requires authenticated ConnectSoft feed
ConnectSoft.Blazor.UIKit Library with generator metadata Normalized Aligned Library baseline Passes restore
ConnectSoft.Maui.UIKit Library Not required Not required Library baseline Passes restore
ConnectSoft.MauiBaseTemplate MAUI template Existing Existing Runtime baseline Passes restore with OpenTelemetry advisory warnings

Gaps closed

  • Missing .template.config metadata on concrete Blazor shell and microfrontend templates.
  • Missing CLI and IDE host metadata for concrete Blazor templates.
  • Missing template .nuspec files and CI pack/install/scaffold smoke steps.
  • Inconsistent parameter names and casing, including IncludeTests/IncludeGallery and SpecialCustomOperations.
  • Missing defaultName, solution-level template type, primary outputs, and .slnx custom operations in selected template manifests.
  • Missing ConnectSoft extension baselines for options, metrics, localization, observability, security, request timeout, rate limiting, and template tests.
  • Invalid JSON comments in MAUI appsettings files.

Remaining operational gaps

  • Blazor runtime template restore depends on authenticated access to the ConnectSoft package feed for ConnectSoft.Extensions.* packages.
  • ConnectSoft.MauiBaseTemplate restore reports moderate vulnerability advisories for OpenTelemetry.Exporter.OpenTelemetryProtocol 1.13.1.
  • Backend-style base-template/submodule composition remains intentionally deferred.

Validation expectations

Template pipelines must pack the template, install the package, instantiate a smoke project with --skip-restore true, and publish the generated .nupkg artifact.