Upgrade .NET version to 8 on iteration 47 #42
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
.NET Framework to .NET 8 Migration - Executive Report
📊 Executive Summary
This report documents a comprehensive migration attempt of SmartStoreNET, a large-scale e-commerce application, from .NET Framework 4.7.2 to .NET 8. The migration involved systematic transformation of 10 projects including core libraries, data access layers, web frameworks, and plugin modules. While significant foundational work was completed—including project file modernization, package updates, and pre-build cleanup—the migration revealed the substantial complexity inherent in upgrading legacy ASP.NET MVC/Web API applications. The project successfully eliminated 136 EF6 Index attribute errors and converted all projects to SDK-style format, but 286+ compilation errors remain in the core library alone, primarily related to System.Web dependencies and Entity Framework 6 to EF Core conversions.
🔧 Application Changes
Projects Converted (10 total)
Architecture Modifications
🛠️ Tools Used
Microsoft .NET SDK
Migration Assistants
Amazon Q Developer
q chat)💻 Code Changes
Pre-Build Cleanup (Mandatory First Step)
Project File Transformations
Package Upgrades
Namespace Replacements (Automated)
Code Disabled (Requires Manual Migration)
⏱️ Time Savings Estimate
Automated Work Completed
Total Automated Savings: ~25.5 hours
Manual Work Remaining
Estimated Remaining Effort: ~76.5 hours
ROI Analysis
🎯 Next Steps
Immediate Actions (Critical Path)
🔴 Replace HttpContextBase/HttpRequestBase throughout codebase
IHttpContextAccessorfor dependency injectionHttpContext.Currentwith injectedHttpContext🔴 Migrate Entity Framework 6 to EF Core
DbEntityEntrywithEntityEntryDbSet<T>operations to EF Core equivalentsEntityTypeConfigurationto Fluent API🔴 Replace System.Web.Caching with IMemoryCache
IMemoryCachevia constructorCache.Insert()with_cache.Set()CacheDependencytoIChangeToken🟡 Create ASP.NET Core startup infrastructure
Program.cswith minimal hosting modelGlobal.asaxlogic to middleware pipeline🟡 Convert configuration system
Web.configtoappsettings.jsonConfigurationManagertoIConfigurationValidation Steps
dotnet build SmartStoreNET.Minimal.sln(currently 286+ errors)WebApplicationFactoryImprovement Recommendations
💡 Incremental migration strategy
<TargetFrameworks>net472;net8.0</TargetFrameworks>)💡 Leverage .NET Upgrade Assistant
💡 Modernize architecture
💡 Documentation and training
📈 Migration Status
🏁 Conclusion
The migration has successfully established the foundational infrastructure for .NET 8 compatibility, including modern project formats, updated packages, and systematic cleanup of incompatible attributes. However, the application requires significant additional work to achieve a fully functional .NET 8 build. The remaining effort focuses on replacing System.Web dependencies, migrating Entity Framework 6 to EF Core, and modernizing the application startup pipeline. With the knowledge base and automated tooling in place, the remaining work can be completed systematically over an estimated 76.5 hours of focused development effort.
Recommendation: Proceed with incremental migration, prioritizing the Core and Data projects first to establish a stable foundation before tackling the Web layer.
Report generated: Sunday, November 2, 2025
Migration tool: Amazon Q Developer CLI with Claude 3.5 Sonnet v2
Project: SmartStoreNET → .NET 8 Upgrade