Skip to content

chore: upgrade EqDemo.AspNetCoreReact.AdvancedSearch to .NET 8.0#20

Open
devin-ai-integration[bot] wants to merge 3 commits intomasterfrom
upgrade/react-advancedsearch-to-net8
Open

chore: upgrade EqDemo.AspNetCoreReact.AdvancedSearch to .NET 8.0#20
devin-ai-integration[bot] wants to merge 3 commits intomasterfrom
upgrade/react-advancedsearch-to-net8

Conversation

@devin-ai-integration
Copy link
Copy Markdown

@devin-ai-integration devin-ai-integration Bot commented Apr 7, 2026

Summary

Upgrades the React AdvancedSearch sample project from .NET 6.0 to .NET 8.0, including the breaking migration from the removed Microsoft.AspNetCore.SpaServices.Extensions to the new Microsoft.AspNetCore.SpaProxy pattern.

csproj changes:

  • Target framework net6.0net8.0
  • Microsoft.AspNetCore.SpaServices.Extensions 6.0.1 → replaced with Microsoft.AspNetCore.SpaProxy 8.0.11
  • Microsoft.EntityFrameworkCore.Sqlite 6.0.1 → 8.0.11
  • Microsoft.EntityFrameworkCore.SqlServer 6.0.1 → 8.0.11
  • Microsoft.Data.SqlClient 2.1.7 → 5.2.2
  • Microsoft.IdentityModel.JsonWebTokens 6.34.0 → 6.35.0 (required by SqlClient 5.2.2)
  • System.IdentityModel.Tokens.Jwt 6.34.0 → 6.35.0 (same transitive dependency)
  • Added SpaProxyLaunchCommand (npm start) and SpaProxyServerUrl (http://localhost:3000) properties for dev-time SPA proxy
  • Updated PublishRunWebpack target to publish React build output to wwwroot/ (was ClientApp/build/) so that UseStaticFiles() can serve it in production

Startup.cs changes:

  • Removed using Microsoft.AspNetCore.SpaServices.ReactDevelopmentServer
  • Removed AddSpaStaticFiles, UseSpaStaticFiles, and UseSpa/UseReactDevelopmentServer calls
  • Added UseDefaultFiles() + UseStaticFiles() for serving the built SPA from wwwroot
  • Added MapFallbackToFile("index.html") inside UseEndpoints for client-side routing

dotnet restore and dotnet build pass with 0 errors, 0 warnings.

Review & Testing Checklist for Human

  • Run the app in Development mode (dotnet run) and confirm the SPA proxy launches the React dev server on http://localhost:3000 and the UI loads correctly through the ASP.NET Core host.
  • Test production publish path: Run dotnet publish -c Release, then verify the React build output lands under wwwroot/ in the publish directory (not ClientApp/build/). Serve the published output and verify index.html is served for client-side routes via the fallback.
  • Verify PublishRunWebpack file mapping: The %(RecursiveDir)%(Filename)%(Extension) pattern is intended to strip the ClientApp\build\ prefix when copying to wwwroot\. This was not tested with an actual dotnet publish — only dotnet build was verified.
  • Verify EasyQuery endpoints still work at runtime (e.g. advanced search queries execute against SQLite).

Notes

  • Microsoft.IdentityModel.JsonWebTokens and System.IdentityModel.Tokens.Jwt were bumped from 6.34.0 → 6.35.0 to resolve a transitive dependency conflict introduced by Microsoft.Data.SqlClient 5.2.2. Without this, dotnet restore fails with NU1605.
  • Legacy System.* compatibility packages (System.Net.Http, System.Text.RegularExpressions, System.Drawing.Common, System.Data.SqlClient) were left as-is since the build succeeds without changes. They could be cleaned up in a follow-up.
  • Snyk security/license checks are failing but are non-required and not used by the team.

Link to Devin session: https://app.devin.ai/sessions/c46cc86c9d344bfcad3c8d4108483447
Requested by: @tobydrinkall


Open with Devin

- Target framework: net6.0 -> net8.0
- Microsoft.EntityFrameworkCore.Sqlite: 6.0.1 -> 8.0.11
- Microsoft.EntityFrameworkCore.SqlServer: 6.0.1 -> 8.0.11
- Microsoft.Data.SqlClient: 2.1.7 -> 5.2.2
- Microsoft.IdentityModel.JsonWebTokens: 6.34.0 -> 6.35.0
- System.IdentityModel.Tokens.Jwt: 6.34.0 -> 6.35.0
- Replace Microsoft.AspNetCore.SpaServices.Extensions with Microsoft.AspNetCore.SpaProxy 8.0.11
- Add SpaProxyLaunchCommand and SpaProxyServerUrl to csproj PropertyGroup
- Remove old SPA middleware from Startup.cs (AddSpaStaticFiles, UseSpaStaticFiles, UseSpa/UseReactDevelopmentServer)
- Add UseDefaultFiles, MapFallbackToFile for .NET 8 SPA proxy pattern

Co-Authored-By: Toby Drinkall <toby.drinkall@cognition.ai>
@devin-ai-integration
Copy link
Copy Markdown
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

devin-ai-integration[bot]

This comment was marked as resolved.

…cripts default

Co-Authored-By: Toby Drinkall <toby.drinkall@cognition.ai>
devin-ai-integration[bot]

This comment was marked as resolved.

… serving

Co-Authored-By: Toby Drinkall <toby.drinkall@cognition.ai>
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.

1 participant