Skip to content

feat: fill LearnBlazor Part02-16 demos (Web-only, RCL + mini-api + bUnit tests) - #17

Merged
deku2026 merged 21 commits into
mainfrom
feat/learnblazor-fill
Jul 26, 2026
Merged

feat: fill LearnBlazor Part02-16 demos (Web-only, RCL + mini-api + bUnit tests)#17
deku2026 merged 21 commits into
mainfrom
feat/learnblazor-fill

Conversation

@deku2026

Copy link
Copy Markdown
Owner

Summary

Fills 14 of 15 LearnBlazor placeholder projects (Part02–16, skip Part11) with mid-size Blazor Server Web demos derived from \ArchitectureDesign/BlazorStudy\ docs, adapted to pure Web frontend (no MAUI/Hybrid).

Per-Part mapping

Part Topic Filled
02 HTML/CSS mobile visual foundation ✅ tokens + shell + drawer + safe-area + reduced-motion
03 Razor Components core ✅ params/cascade/lifecycle/fragments/bind/dynamic
04 Frontend state architecture ✅ scoped state container + cascade + subscribe
05 Navigation App Shell ✅ router + MainLayout + NavMenu + query/route params + 404
06 Forms/input/touch/files ✅ EditForm + validation + InputFile + custom input + touch
07 Lists/media/consumer UI ✅ Virtualize + card grid + Icon + lazy media
08 A11y & i18n ✅ ARIA + focus trap + IStringLocalizer + culture selector
09 Component library/styling ✅ RCL (new sub-project) + CSS isolation + token sharing
10 JS interop ✅ IJSRuntime/ES module/DotNetObjectReference/Dispose/CSP (WebView config skipped)
11 Native platform bridge ⛔ skipped (MAUI-only: camera/share/SecureStorage/permissions)
12 Code-First RPC client ✅ adapted to HTTP client + resilience + error mapping + UI state machine (new mini-API backend sub-project)
13 Auth security boundary ✅ AuthStateProvider + AuthorizeRouteView + cookie auth + route guard
14 Testing/debugging ✅ bUnit tests (new sub-project) + ErrorBoundary + logging + diagnostics
15 Performance diagnostics ✅ stream rendering + virtualization reuse + ShouldRender + manual IComponent
16 Packaging/engineering ✅ publish config + Dockerfile + health checks + cache headers + publish notes

New sub-projects (added to \LearnCSharp.CI.slnx)

  • \Blazor_Part09_ComponentLibStyling.RazorLib\ (RCL)
  • \Blazor_Part12_CodeFirstRpcClient.Api\ (Minimal API backend)
  • \Blazor_Part14_TestingDebugging.Tests\ (xUnit + bUnit)

Verification

  • \dotnet build LearnCSharp.CI.slnx -c Debug\ → 0 warnings 0 errors
  • \dotnet test src/LearnBlazor/Blazor_Part14_TestingDebugging.Tests\ → 4/4 pass
  • Host model: pure Blazor Server Web (\Microsoft.NET.Sdk.Web\ + \AddInteractiveServerComponents)
  • CPVM: added \�unit.web/\�unit.core\ 1.40.0 + \AngleSharp\ 1.5.2 (override vulnerable transitive)

Spec & plan

  • Spec: \docs/superpowers/specs/2026-07-26-learnblazor-fill-design.md\
  • Plan: \docs/superpowers/plans/2026-07-26-learnblazor-fill.md\

Part11 kept as compilable placeholder with a note explaining the skip (MAUI-only content, pure-Web n/a).

deku2026 added 19 commits July 26, 2026 10:21
deku2026 added 2 commits July 26, 2026 13:22
CI hook end-of-file-fixer failed because write tool omitted trailing newlines.
Run pre-commit run --all-files to fix all 154 files; all hooks now pass:
trim trailing whitespace, fix end of files, mixed line ending, check json/yaml,
codespell, clang-format, dotnet format.
- CultureSelector: add CookieOptions Secure/HttpOnly/IsEssential
- JsCallback.Dispose: replace empty catch-all with typed JSDisconnectedException/ObjectDisposedException
- SimpleAuthStateProvider: mark _state readonly
@deku2026
deku2026 merged commit bec1e42 into main Jul 26, 2026
9 checks passed
@deku2026
deku2026 deleted the feat/learnblazor-fill branch July 26, 2026 05:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants