Skip to content

Conversation

@PSCourtney
Copy link
Owner

This pull request upgrades the solution and all projects from .NET 9 to .NET 10, updates NuGet package dependencies to their latest major versions, and modernizes the Blazor WASM example app to use new features and conventions from .NET 10. It also adds a dedicated NotFound page, updates documentation and changelogs, and includes minor improvements to the web app's static assets.

.NET and Dependency Upgrades:

  • Upgraded the target framework from net9.0 to net10.0 in all project files: Example.csproj, PocketBaseSharp.csproj, and PocketBaseSharp.Tests.csproj. [1] [2] [3]
  • Updated NuGet package dependencies to their latest versions, including all Microsoft.AspNetCore.Components and MudBlazor packages in the example app, and test dependencies in the test project. [1] [2]
  • Updated the solution file for Visual Studio.

Blazor Example App Improvements:

  • Replaced the inline <NotFound> markup in App.razor with the new NotFoundPage parameter, and added a dedicated Pages/NotFound.razor page for improved 404 handling. [1] [2]
  • Updated index.html to support new asset fingerprinting conventions and added a preload link and empty import map for modern Blazor/WebAssembly features. [1] [2]

Documentation and Changelog Updates:

  • Updated the README.md to reference .NET 10 compatibility and requirements instead of .NET 9. [1] [2]
  • Added the latest PocketBase changelog entries up to v0.31.0 in CHANGELOG.md.

Updated the target framework for all projects (`Example.csproj`,
`PocketBaseSharp.Tests.csproj`, and `PocketBaseSharp.csproj`)
from `net9.0` to `net10.0`.

Upgraded Microsoft package references in `Example.csproj` to
`10.0.0-rc.1.25451.107` versions, replacing `9.0.9`. Updated
`MSTest.TestAdapter` and `MSTest.TestFramework` in
`PocketBaseSharp.Tests.csproj` to `4.0.0-preview.25465.3`.
- Added `OverrideHtmlAssetPlaceholders` property to `Example.csproj` for dynamic HTML asset management.
- Added `Blazored.LocalStorage` package (v4.5.0) for local storage support.
- Updated `Microsoft.AspNetCore.Components.Authorization` to v10.0.0-rc.1.25451.107.
- Preloaded WebAssembly asset in `index.html` for improved performance.
- Added import map support via `<script type="importmap">` in `index.html`.
- Replaced Blazor WebAssembly runtime script with fingerprinted version for cache-busting.
- Updated `.csproj` files to upgrade NuGet package versions:
  - `FluentAssertions` to 8.8.0
  - `Microsoft.NET.Test.Sdk` to 18.0.0
  - `MSTest.TestAdapter` and `MSTest.TestFramework` to 4.0.1
  - Added `Blazored.LocalStorage` (4.5.0) and updated `MudBlazor` (8.13.0).
- Introduced new namespaces for modularity:
  - `slog` for structured logging.
  - `router` for HTTP routing and middleware.
  - `oauth2` for OAuth2 token management.
  - `types` for reusable data structures.
- Enhanced I/O and network support with `bufio`, `http`, and `url`.
- Added `sql` for database operations and `search` for query handling.
- Removed redundant namespaces like `subscriptions`, `cron`, and `auth`.
- Updated SQLite database files (`auxiliary.db`, `data.db`) and added related shared memory and write-ahead log files.
- Added support for visualizing multiple `relation` fields (#7260).
- Introduced Ed25519 support for OIDC `id_token` validation (#7252).
- Added `ApiScenario.DisableTestAppCleanup` for manual cleanup (#7267).
- Added `ThumbError` field for custom thumb generation (#7268).
- Restricted client-side filtering for superuser-only collections (#4417, #5863).
- Fixed `json` field CSS regression and identity field priority (#7259, #7256).
- Implemented Firefox autocomplete overflow workaround (#7223).
- Updated SQLite dependency to version 1.39.1 (SQLite 3.50.4).
- Excluded `lost+found` directory from backups (#7208).
- Improved tests and bumped Go GitHub action version to 1.24.8.
- Added support for the Lark OAuth2 provider (#7130).
Updated `App.razor` to centralize "not found" route handling by using the `NotFoundPage` parameter in the `<Router>` component. Removed the inline `NotFound` block.

Replaced pre-release package versions in `Example.csproj` with stable `10.0.0` versions and upgraded `MudBlazor` to `8.14.0`.

Updated `PocketBaseSharp.sln` to target Visual Studio 2022 (v18.0).

Added a new `NotFound.razor` page to handle "not found" routes with a user-friendly message.
Removed the HTML `<div>` block containing images and badges to simplify the `README.md` file.
Updated the feature list and development requirements to reflect compatibility with Blazor & .NET 10.
Added a note highlighting compatibility with PocketBase v0.28.4.
@PSCourtney PSCourtney self-assigned this Nov 11, 2025
Copilot AI review requested due to automatic review settings November 11, 2025 21:12
@PSCourtney PSCourtney added the enhancement New feature or request label Nov 11, 2025
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR upgrades the PocketBaseSharp solution from .NET 9 to .NET 10, updates NuGet package dependencies to version 10.0.0 for Microsoft packages, modernizes the Blazor WASM example app with new .NET 10 features, and adds PocketBase changelog entries.

  • Upgraded all projects to target .NET 10
  • Updated Microsoft packages to version 10.0.0 and MudBlazor to 8.14.0
  • Added modern Blazor WASM features (import map, asset fingerprinting, NotFound page)

Reviewed Changes

Copilot reviewed 9 out of 17 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
README.md Updated .NET 9 references to .NET 10
PocketBaseSharp/PocketBaseSharp.csproj Changed target framework from net9.0 to net10.0
PocketBaseSharp.sln Updated Visual Studio version to 18
PocketBase/CHANGELOG.md Added PocketBase v0.30.1-v0.31.0 changelog entries
Example/wwwroot/index.html Added preload link, import map, and asset fingerprinting to blazor.webassembly.js
Example/Pages/NotFound.razor New dedicated 404 page component
Example/Example.csproj Updated to net10.0 and upgraded all package dependencies to 10.0.0

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@@ -1,14 +1,8 @@
<CascadingAuthenticationState>
<Router AppAssembly="@typeof(App).Assembly">
<Router AppAssembly="@typeof(App).Assembly" NotFoundPage="typeof(Pages.NotFound)">
Copy link

Copilot AI Nov 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The NotFoundPage parameter should be a Type, not a string. Remove the quotes around typeof(Pages.NotFound). It should be: NotFoundPage=\"@typeof(Pages.NotFound)\"

Suggested change
<Router AppAssembly="@typeof(App).Assembly" NotFoundPage="typeof(Pages.NotFound)">
<Router AppAssembly="@typeof(App).Assembly" NotFoundPage="@typeof(Pages.NotFound)">

Copilot uses AI. Check for mistakes.
<a class="dismiss">🗙</a>
</div>
<script src="_framework/blazor.webassembly.js"></script>
<script src="_framework/blazor.webassembly#[.{fingerprint}].js"></script>
Copy link

Copilot AI Nov 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The asset fingerprinting syntax appears incorrect. The hash # and placeholder syntax #[.{fingerprint}] should typically be just a placeholder like .{fingerprint} without the hash and brackets, or the entire placeholder pattern should be removed if not using the override. Verify this matches .NET 10's actual asset fingerprinting convention.

Suggested change
<script src="_framework/blazor.webassembly#[.{fingerprint}].js"></script>
<script src="_framework/blazor.webassembly.{fingerprint}.js"></script>

Copilot uses AI. Check for mistakes.
# Visual Studio Version 17
VisualStudioVersion = 17.4.32912.340
# Visual Studio Version 18
VisualStudioVersion = 18.0.11205.157 d18.0
Copy link

Copilot AI Nov 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Visual Studio version string appears malformed with 'd18.0' appended at the end. This should likely be just '18.0.11205.157' or follow the proper version format.

Suggested change
VisualStudioVersion = 18.0.11205.157 d18.0
VisualStudioVersion = 18.0.11205.157

Copilot uses AI. Check for mistakes.

<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap" rel="stylesheet" />
<link href="_content/MudBlazor/MudBlazor.min.css" rel="stylesheet" />
<script type="importmap"></script>
Copy link

Copilot AI Nov 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The import map script tag is empty and missing its content. An empty import map serves no purpose. Either populate it with actual import mappings or remove this line if not needed.

Suggested change
<script type="importmap"></script>

Copilot uses AI. Check for mistakes.
Updated the `dotnet-version` parameter in the `Setup .NET`
step of the GitHub Actions workflow (`dotnet.yml`) from
`9.x.x` to `10.x.x`. This ensures the workflow uses the
latest features and improvements provided by .NET 10.
@PSCourtney PSCourtney merged commit 1b5359b into master Nov 11, 2025
1 check passed
@PSCourtney PSCourtney deleted the dependancy/upgrade.NET10 branch January 9, 2026 14:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants