Skip to content

Conversation

@devin-ai-integration
Copy link

Migrate ASP.NET MVC 5 application to Spring Boot

Summary

Complete migration from ASP.NET MVC 5 (.NET Framework 4.8) to Spring Boot 3.1.5 (Java 17) while preserving the existing AngularJS frontend functionality.

Key Changes:

  • Backend: Converted LandingController.cs to Java Spring @Controller
  • View Engine: Replaced Razor (.cshtml) with Thymeleaf (.html)
  • Build System: Migrated from MSBuild/NuGet to Gradle with Node plugin
  • Configuration: Converted Web.config to Spring Boot application.properties
  • Asset Management: Replaced ASP.NET bundling with direct asset references and Gradle copy tasks
  • Testing: Added Spring Boot unit tests and controller integration tests

The AngularJS frontend remains completely unchanged and functional - only the backend technology stack has been migrated.

Review & Testing Checklist for Human

⚠️ High Risk Migration - 5 Critical Items to Verify:

  • End-to-End Functionality: Run ./gradlew bootRun, navigate to http://localhost:8080, and verify both AngularJS components render correctly (jQuery version display and AngularJS version display)
  • Asset Loading: Open browser dev tools and confirm all static assets load without 404 errors (/css/site.css, /node_modules/jquery/dist/jquery.min.js, /node_modules/angular/angular.min.js, /WebApp/*.js)
  • Build Process: Run ./gradlew clean build and verify the copy tasks successfully populate src/main/resources/static/ with node_modules, WebApp, and CSS content
  • Cross-Environment Testing: Test the application with Java 17+ on a clean environment to ensure no hidden dependencies on specific dev machine configurations
  • Production Readiness: Verify no hardcoded localhost URLs or dev-only configurations remain in the codebase

Notes

  • Original ASP.NET bundling system has been replaced with direct script references - this may impact production performance but maintains simplicity
  • Gradle Node plugin automatically downloads Node.js 18.17.0 and npm 9.6.7 during build
  • Static resources are copied during the processResources phase, so ./gradlew bootRun includes the latest frontend assets
  • Session requested by @parkerduff
  • Link to Devin run: https://app.devin.ai/sessions/e3de32135c954cf2a272eca6238780be

Application Screenshot

- Convert LandingController from C# to Java Spring @controller
- Replace Razor view with Thymeleaf template (index.html)
- Migrate Web.config settings to application.properties
- Set up Gradle build system with Spring Boot 3.1.5 and Java 17
- Configure frontend asset copying with Gradle Node plugin
- Preserve AngularJS frontend components and functionality
- Add Spring Boot unit tests for controller and application context
- Update README with Java/Spring Boot setup instructions

The AngularJS frontend remains unchanged and works perfectly with the new Spring Boot backend.
All tests pass and the application runs successfully on localhost:8080.

Co-Authored-By: [email protected] <[email protected]>
@devin-ai-integration
Copy link
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

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