Skip to content

.NET 10 upgrade and Aspire AppHost with WireMock-mocked Sessionize#41

Merged
slang25 merged 15 commits intomainfrom
slang25/dotnet-10-upgrade
Apr 29, 2026
Merged

.NET 10 upgrade and Aspire AppHost with WireMock-mocked Sessionize#41
slang25 merged 15 commits intomainfrom
slang25/dotnet-10-upgrade

Conversation

@slang25
Copy link
Copy Markdown
Member

@slang25 slang25 commented Apr 29, 2026

Summary

  • All projects bumped to net10.0 with Microsoft package versions updated to 10.0.7; third-party packages bumped where required by .NET 10 (Fluxor 6.9.0, MudBlazor 9.4.0). Includes the unavoidable code changes from MudBlazor 9 (IMudDialogInstance, generic MudList/MudListItem/MudChip, ShowAsync, GetSystemDarkModeAsync) and the Fluxor 6 ReduxDevTools namespace move.
  • Three .sln files consolidated into a single root PocketDDD.slnx.
  • New PocketDDD.AppHost orchestrating SQL Server, the WebAPI, the Blazor client, and a WireMock-backed mock of the Sessionize API (static JSON mappings under PocketDDD.AppHost/Mocks). WebAPI HTTPS pinned to localhost:7081 so the Blazor WASM appsettings can target it deterministically; SessionizeService now reads its base URL from configuration with the real Sessionize URL as the fallback default.
  • OpenTelemetry wired into the WebAPI (logs/metrics/traces with AspNetCore/HttpClient/Runtime/SqlClient instrumentation) flowing into the Aspire dashboard via OTLP. EF migrations + a single seed EventDetail row run automatically on Development startup so a fresh SQL Server container is usable end-to-end.

Test plan

  • dotnet build PocketDDD.slnx passes (0 errors).
  • aspire run (or dotnet run --project PocketDDD.AppHost) starts the dashboard, SQL Server container, WireMock, WebAPI, and Blazor dev server.
  • https://localhost:7081/healthz returns 200 Healthy.
  • POST https://localhost:7081/api/EventData/FetchLatestEventData returns the seeded mock data (4 timeslots, 2 tracks, 2 sessions).
  • Browser the Blazor client, register a user, submit feedback, and confirm traces show up on the Aspire dashboard.

🤖 Generated with Claude Code

russdaygh and others added 4 commits April 29, 2026 20:42
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
- Bump all projects to net10.0; update Microsoft.* packages to 10.0.7,
  Swashbuckle to 10.1.7, Fluxor to 6.9.0, MudBlazor to 9.4.0; pin SDK via
  global.json. Includes the necessary code changes for MudBlazor 9
  (IMudDialogInstance, generic MudList/MudListItem/MudChip, ShowAsync,
  GetSystemDarkModeAsync) and the Fluxor 6 ReduxDevTools namespace move.
- Consolidate three .sln files into a single root PocketDDD.slnx and
  delete the obsolete duplicates.
- Add PocketDDD.AppHost orchestrating SQL Server, the WebAPI, the Blazor
  client, and a WireMock-backed mock of the Sessionize API (static JSON
  mappings under PocketDDD.AppHost/Mocks). The WebAPI gets the Sessionize
  base URL via WithEnvironment; SessionizeService now reads it from
  configuration with the real URL as the fallback default.
- Pin the WebAPI HTTPS endpoint to localhost:7081 and update the Blazor
  client's Development appsettings to call the real API instead of the
  in-memory fake backend.
- Wire OpenTelemetry into the WebAPI (logs/metrics/traces, with
  AspNetCore/HttpClient/Runtime/SqlClient instrumentation) flowing to
  the Aspire dashboard via OTLP.
- Apply EF migrations and seed an initial EventDetail row on Development
  startup so a fresh SQL Server container is usable end-to-end.
- Fix a malformed `dotnetRunMessages` value in the Blazor client
  launchSettings.json that was causing the AppHost to crash on startup.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Follows the .NET Aspire EF Core migrations guidance: a separate
PocketDDD.Server.MigrationService Worker project applies migrations and
seeds the placeholder EventDetail row, then stops itself. The AppHost
gates the WebAPI on `WaitForCompletion(migrations)` so the API only
starts after migrations complete. Removes the dev-only migrate-and-seed
block previously embedded in WebAPI/Program.cs.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
russdaygh and others added 3 commits April 29, 2026 21:16
Co-authored-by: Copilot <copilot@github.com>
The Blazor client builds endpoints as relative URIs (e.g. "Registration/Login")
against the configured apiUrl. Other environments end apiUrl with "/api/";
the Development value was missing it, so requests resolved to /Registration/Login
instead of /api/Registration/Login and got a 404.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@slang25 slang25 marked this pull request as ready for review April 29, 2026 21:08
@slang25 slang25 merged commit 96822bb into main Apr 29, 2026
3 of 4 checks passed
@slang25 slang25 deleted the slang25/dotnet-10-upgrade branch April 29, 2026 21:09
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.

3 participants