feat: add an Aspire sample host for local testing and as a setup demo#68
Merged
Conversation
andregoepel
force-pushed
the
feat/aspire-sample-host
branch
from
July 5, 2026 03:01
09d34a0 to
6e902a2
Compare
andregoepel
changed the base branch from
main
to
feat/configurable-login-features
July 5, 2026 03:01
Owner
Author
|
Rebased this branch onto Merge order: #67 first, then this. Once #67 lands on |
Add a runnable example under samples/: - AndreGoepel.AppFoundation.Sample — a minimal Blazor Server host that wires the packages exactly as the README describes (AddAppFoundation / UseAppFoundation, App.razor, Routes.razor, MapAdditionalIdentityEndpoints). - AndreGoepel.AppFoundation.AppHost — a .NET Aspire orchestrator that starts PostgreSQL (with a data volume) and the web app, wiring the appfoundation-database connection string. Run with: dotnet run --project samples/AndreGoepel.AppFoundation.AppHost. The AppHost opts out of central package management and lock files because the Aspire SDK injects RID-specific packages that aren't portable across OSes (would break CI locked-mode restore); the sample keeps a portable lock file. Both are IsPackable=false. Adds a "Try it locally" README section and points .aspire/settings.json at the in-repo AppHost.
The management layout (MainLayout) carries interactive click handlers — the
sidebar toggle, profile menu, and the RadzenPanelMenu in NavMenu. A layout is
rendered statically under per-page interactivity, so those handlers never wired
up and the menus appeared dead ("js not working").
Apply the render mode globally on <Routes> and <HeadOutlet> so the layout is
interactive. Verified this does not conflict with the foundation's per-page
@rendermode InteractiveServer pages (a matching descendant render mode is
allowed).
andregoepel
force-pushed
the
feat/aspire-sample-host
branch
from
July 5, 2026 03:21
3732f81 to
6fb07a4
Compare
andregoepel
changed the base branch from
feat/configurable-login-features
to
main
July 5, 2026 03:21
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a runnable example under
samples/so the foundation can be exercised end-to-end and so the host-side wiring is demonstrated in-repo (the real consumer lives in a separate repo).What
samples/AndreGoepel.AppFoundation.SampleProgram.cs,App.razor,Routes.razor,_Imports.razor, a/landing page, andwwwroot/app.css. WiresAddAppFoundation/UseAppFoundation, the router's additional assemblies, andMapAdditionalIdentityEndpoints.samples/AndreGoepel.AppFoundation.AppHostappfoundation-databaseconnection string andWaitFor-ing the DB.Run it:
Open the Aspire dashboard, start the web resource; the first visit funnels to
/Setup(create the admin), then sign in and explore the dashboard + Administration. A README "Try it locally" section documents this, and.aspire/settings.jsonnow points at the in-repo AppHost.Notes / decisions
AutoCreate.All, no key-ring cert required (the fail-closed check is non-Dev only), forwarded-headers trust-all. So the demo just works against the Aspire-provided Postgres.Aspire.AppHost.Sdkinjects RID-specific orchestration/dashboard packages, so a committed lock file would be win-x64/linux-x64 dependent and break CI's--locked-moderestore across OSes. The sample keeps a portable lock file; both projects areIsPackable=false, so nothing new is published.Verification
dotnet build -c Release(full solution incl. both new projects) — 0 errors.dotnet restore --locked-mode— clean (AppHost correctly excluded).dotnet test -c Release— 80/80 (unchanged).AndreGoepel.Marten.Identity.Blazorpackage's own README and public API (MapAdditionalIdentityEndpoints,RedirectToLogin,LoginLayout, Aspire 13.xAddPostgres/AddDatabase/AddProject<T>/WithReference/WaitFor).dotnet run. Worth one manualdotnet runon your side to confirm the dashboard/web come up and/Setupflows.Branched off
main, so it's independent of the open feature PRs.