Skip to content

Features

ConnectSoft.Blazor.MicrofrontendLibraryTemplate (connectsoft-blazor-mfe) scaffolds a full multi-project microfrontend solution: a Blazor Server shell, a shared shell core RCL, UIKit theme adapters, and two sample WebAssembly MFEs. It is standalone (UIKit-based), not derived from ConnectSoft.BaseTemplate.

Scope vs README

The repository README and nuspec mention a Bff.Api and Shared.Contracts project; these are not present in the current template source. The actual MFEs are identity-themed WASM apps integrated through shell catch-all routes.

Shell host

  • Shell.BlazorServer - thin host that serves the shell.
  • Shell.BlazorServer.Core - RCL containing layout and pages: MainLayout.razor, Index.razor, App.razor, and MFE host pages SelfService.razor (@page "/self-service" + /self-service/{*PageRoute}) and Admin.razor (@page "/admin" + catch-all).
  • Hosting uses the legacy MapBlazorHub() + MapFallbackToPage("/_Host") pattern (contrast with the Shell template, which uses modern MapRazorComponents<App>()).

Sample WASM MFEs

MFE Pages
Mfe.Identity.SelfService.Blazor Dashboard.razor, Profile.razor
Mfe.Identity.Admin.Blazor Dashboard.razor, Users.razor

UIKit adapters and theming

  • Built on the ConnectSoft.Blazor.UIKit NuGet package plus adapter packages.
  • uiKitAdapter parameter (Tokens | Flowbite | DaisyUI, default Flowbite) drives conditional compilation (UseTokens/UseFlowbite/UseDaisyUI) in Program.cs, App.razor, and .csproj.
  • theme (Light/Dark), density (Default/Compact/Comfortable), and enableRTL parameters set defaults at generation time.
  • Adapter projects: Shell.BlazorServer.Tokens / .Flowbite / .DaisyUI with *ThemeProvider + DI extensions.

Security

Shell.BlazorServer.Security provides the CSP stack; Shell.BlazorServer.SecurityAnalyzers ships the same four markup-safety Roslyn analyzers as the Component Library template.

Ports

Generation parameters set ports: ShellPort (7000), BffApiPort (7001), SelfServiceMfePort (7002), AdminMfePort (7003), with EnableHttps default true. Note the sample WASM launchSettings.json currently uses 58085+ ports.

See also