From dfd88812242ded0af30de61d834e5599053ea949 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:06:29 +0000 Subject: [PATCH 1/3] chore: upgrade EqDemo.AspNetCoreReact.AdvancedSearch to .NET 8.0 - 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 --- ...Demo.AspNetCoreReact.AdvancedSearch.csproj | 18 +++++++++-------- AspNetCore/React/AdvancedSearch/Startup.cs | 20 ++----------------- 2 files changed, 12 insertions(+), 26 deletions(-) diff --git a/AspNetCore/React/AdvancedSearch/EqDemo.AspNetCoreReact.AdvancedSearch.csproj b/AspNetCore/React/AdvancedSearch/EqDemo.AspNetCoreReact.AdvancedSearch.csproj index 40bb9e61..4bc8ca92 100644 --- a/AspNetCore/React/AdvancedSearch/EqDemo.AspNetCoreReact.AdvancedSearch.csproj +++ b/AspNetCore/React/AdvancedSearch/EqDemo.AspNetCoreReact.AdvancedSearch.csproj @@ -1,20 +1,22 @@ - net6.0 + net8.0 true Latest false ClientApp\ + npm start + https://localhost:44441 $(DefaultItemExcludes);$(SpaRoot)node_modules\** EqDemo.AspNetCoreReact.AdvancedSearch true - - - - - + + + + + @@ -34,7 +36,7 @@ - + @@ -66,4 +68,4 @@ - \ No newline at end of file + diff --git a/AspNetCore/React/AdvancedSearch/Startup.cs b/AspNetCore/React/AdvancedSearch/Startup.cs index 6ea66069..9433d075 100644 --- a/AspNetCore/React/AdvancedSearch/Startup.cs +++ b/AspNetCore/React/AdvancedSearch/Startup.cs @@ -2,7 +2,6 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.HttpsPolicy; using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.SpaServices.ReactDevelopmentServer; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.DependencyInjection; @@ -43,12 +42,6 @@ public void ConfigureServices(IServiceCollection services) services.AddControllersWithViews(); - // In production, the React files will be served from this directory - services.AddSpaStaticFiles(configuration => - { - configuration.RootPath = "ClientApp/build"; - }); - services.AddEasyQuery() .UseSqlManager() .AddDefaultExporters() @@ -78,10 +71,8 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env) app.UseCors("AllowAllPolicy"); app.UseHttpsRedirection(); + app.UseDefaultFiles(); app.UseStaticFiles(); - if (!env.IsDevelopment()) { - app.UseSpaStaticFiles(); - } app.UseRouting(); @@ -103,15 +94,8 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env) endpoints.MapControllerRoute( name: "default", pattern: "{controller}/{action=Index}/{id?}"); - }); - - app.UseSpa(spa => - { - spa.Options.SourcePath = "ClientApp"; - if (env.IsDevelopment()) { - spa.UseReactDevelopmentServer(npmScript: "start"); - } + endpoints.MapFallbackToFile("index.html"); }); //Init demo database (if necessary) From fbec1d7619f7dfa7a677480eb1acf43f77c6e404 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:11:56 +0000 Subject: [PATCH 2/3] fix: use http://localhost:3000 for SpaProxyServerUrl to match react-scripts default Co-Authored-By: Toby Drinkall --- .../AdvancedSearch/EqDemo.AspNetCoreReact.AdvancedSearch.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AspNetCore/React/AdvancedSearch/EqDemo.AspNetCoreReact.AdvancedSearch.csproj b/AspNetCore/React/AdvancedSearch/EqDemo.AspNetCoreReact.AdvancedSearch.csproj index 4bc8ca92..c4a7bb43 100644 --- a/AspNetCore/React/AdvancedSearch/EqDemo.AspNetCoreReact.AdvancedSearch.csproj +++ b/AspNetCore/React/AdvancedSearch/EqDemo.AspNetCoreReact.AdvancedSearch.csproj @@ -6,7 +6,7 @@ false ClientApp\ npm start - https://localhost:44441 + http://localhost:3000 $(DefaultItemExcludes);$(SpaRoot)node_modules\** EqDemo.AspNetCoreReact.AdvancedSearch true From 33e78c30478603d05b84b733ece75b61f38e363c Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:15:43 +0000 Subject: [PATCH 3/3] fix: publish React build output to wwwroot for production static file serving Co-Authored-By: Toby Drinkall --- .../EqDemo.AspNetCoreReact.AdvancedSearch.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AspNetCore/React/AdvancedSearch/EqDemo.AspNetCoreReact.AdvancedSearch.csproj b/AspNetCore/React/AdvancedSearch/EqDemo.AspNetCoreReact.AdvancedSearch.csproj index c4a7bb43..46665bf1 100644 --- a/AspNetCore/React/AdvancedSearch/EqDemo.AspNetCoreReact.AdvancedSearch.csproj +++ b/AspNetCore/React/AdvancedSearch/EqDemo.AspNetCoreReact.AdvancedSearch.csproj @@ -59,11 +59,11 @@ - + - %(DistFiles.Identity) + wwwroot\%(RecursiveDir)%(Filename)%(Extension) PreserveNewest