Updating web modules written in ASP.NET Core 2.1 to ASP.NET 6.0
Client`s pains
- We would like to modernize our system to avoid the risks of losing clients.
- We do not have enough in-house resources for realizing the project within the set timeframes.
Project size
- 6 months for realization
- 200 000+ lines of code
- More than 5-year-old code
Duration
6 months for realization
Efforts
200 000+ lines of code
01.
Description
Our client provides an education management system for employees and administrators that is suitable for any industry and can be used by a company of any size.
With the help of this product, users can get access to tests, results of the learning process, average test scores, work evaluations, surveys, and financial data reports. All this allows every manager to educate employees, monitor their progress, communicate with them, and control whether they meet the company’s requirements.
Market leaders have to continuously improve and update the software of their products with the help of modern technologies. Otherwise, their achievements may turn out to be useless due to a high level of competition. Our customers had been planning to modernize some parts of the software product for quite a lot. But as it usually happens, this project had been constantly postponed. The system included not only desktop modules written with Windows Forms and C++ but also SharePoint ASP.NET web modules. And the company didn’t have in-house resources for finishing the project in time.
They contacted us for modernizing the modules written with ASP.NET Core 2.1 and updating them to ASP.NET 6.0. There were the following reasons:
- the current version didn’t have new features and updates for obsolete software;
- now web modules are more vulnerable to risks and security issues;
- introducing changes to these modules became a very expensive and risky task which created a very favorable environment for new bugs and errors that were quite difficult to detect and fix;
- there was a high risk of losing clients.
02.
Solution
Together with the client’s team, we chose a front-end UI framework for software modules. After a careful analysis of all the pros and cons based on the system type and business goals, we decided to use Blazor. We also considered the possibilities for code refactoring, code cleanups, and the implementation of modern development concepts, such as testing automation, continuous integration and delivery, etc.
After that, we reviewed the modules, evaluated their architecture and the state of the used components. We also defined those parts that had the highest priority and required our attention in the first turn, in other words, we chose the functionality that had to be rewritten or replaced.
After that, we started to conduct migration. We:
- updated the target version of .NET SDK
- updated the target framework
- updated package references
- created a new Blazor 6.0 project from one of the Blazor project templates
- moved the components and the module code to the new version
- updated Dockerfile FROM statements and scenarios for the modules that use Docker
- adapted view Razor models for using them with Blazor
- tested and released the product
03.
Summary
- After the migration project was finished, our client got a fully functional product that was moved to a modern ASP.NET 6.0 version.
- New modernized modules with improved performance and quality allowed our customer to increase the efficiency of the company’s work.