Legacy System Modernization for a GreenTech Stormwater Platform
.NET and AngularJS migration without downtime for a live stormwater monitoring platform
Duration: Ongoing since May 2023
Customer location: USA
Services: Legacy System Migration ● Backend Development ● Frontend Development ● CI/CD Migration ● QA & Test Automation ● Project Management
Tech stack: .NET 10 ● Blazor WASM ● GitHub Actions
Dedicated team behind the project
Senior Full Stack Engineer
Senior Full Stack Engineer
Project Manager
Middle Software Engineer
In Brief
Ralabs migrated a live stormwater monitoring platform from .NET Framework 4.7 and AngularJS to .NET 10 and Blazor WASM. The migration ran without disrupting active operations, simplified the microservices architecture, and moved CI/CD to GitHub Actions. The engagement has been ongoing since May 2023.
The Client
The client is a leading provider of digital adaptive stormwater control solutions, helping communities and partners secure the sustainability of their natural resources. Their core product turns passive stormwater infrastructure into an active, optimized system through Continuous Monitoring and Adaptive Control (CMAC).
CMAC is a cloud-based stormwater management technology that combines weather forecasts with real-time sensor data to predictively automate storage and flow control across an entire watershed.
Due to an active NDA, the client’s name and public identity are not disclosed in this case study.
Client Achievements:
Building smart stormwater technology
Managed through the client’s cloud platform
Part of an international infrastructure group
The Challenge
Our client needed application modernization for a legacy solution, without disrupting a system that municipalities and partners rely on for active environmental monitoring. The backend was still running on legacy .NET Framework 4.7, and the frontend was built on legacy AngularJS: both increasingly difficult to maintain, extend, and secure.
Beyond the technical migration itself, the team faced two early hurdles:
Safe access to a business-critical platformGaining the client’s trust and getting the access needed to work safely inside a live, business-critical system
Mapping undocumented legacy logicUnderstanding the existing core functionality and data sources well enough to migrate without breaking real-world monitoring and control logic already in use
Mapping a legacy system before changing it is the first step of any modernization, and the focus of our legacy system audit.
What Was Done
Migrating a Live, Business-Critical System
Ralabs’ team carried out a full-stack legacy migration while the system remained in active use
Backend Modernization
The backend was migrated from .NET Framework 4.7 to .NET 10
Frontend Rebuild
The frontend was migrated from legacy AngularJS to Blazor WASM
Simplifying the Architecture
The overall solution was refactored and simplified, removing unnecessary microservices separation that had accumulated over time
Delivery Improvements
CI/CD migration to GitHub Actions, modernizing the deployment pipeline alongside the application stack
QA regression testing and automation were introduced to protect system stability throughout the ongoing migration
Results
01
Zero-downtime modernization
Software modernization of a live product: backend and frontend migrated to current technology (.NET 10, Blazor WASM) without interrupting a live environmental monitoring product
02
Simplified architecture for easier scaling
Unnecessary microservices complexity removed, making the system easier to maintain and extend going forward
03
Faster, safer releases
Modernized delivery pipeline: CI/CD moved to GitHub Actions, supported by regression testing and QA automation
04
Three years of continuous partnership
Continuous trust: the engagement has run since May 2023 and remains in active development today
The engineers that I’m working with are some of the best engineers I’ve worked with in my career
Principal Engineer
Stormwater control solutions provider
What the team has to say
Marta
Project Manager
“ The project was a valuable experience, with strong team collaboration and a clear focus on delivering quality results. We successfully addressed technical challenges while improving the platform’s stability and maintainability. “
Modernize without disrupting what already works
Before we change a line of code, we map how your system works, where the risks are, and what to fix first. Full audit and roadmap within one week.
Yevhen Kulinichenko
Head of technology at Ralabs
FAQ
Ralabs modernized the client’s live stormwater monitoring platform, migrating the backend from .NET Framework 4.7 to .NET 10 and the frontend from AngularJS to Blazor WebAssembly. The team also simplified the architecture, moved CI/CD to GitHub Actions, and introduced QA regression testing and automation, all while the platform stayed in active use.
Yes. In this project, Ralabs migrated both the backend and frontend of a business-critical environmental monitoring platform while municipalities and partners continued to rely on it. The key was mapping the existing logic and data sources before changing anything, then protecting stability with regression testing and QA automation throughout the migration.
Legacy .NET Framework applications become increasingly difficult to maintain, extend, and secure over time. .NET 10 is a long-term support release that gives the platform a modern, actively developed foundation, so the client can keep building new functionality without fighting an aging runtime.
AngularJS reached end of support in 2021, which makes it harder to secure and maintain. Blazor WebAssembly lets a team build the frontend in C# on the same .NET platform as the backend, so one engineering team can work across the full stack with a single language and toolset.
CMAC (Continuous Monitoring and Adaptive Control) is a cloud-based stormwater technology that combines weather forecasts with real-time sensor data to automate storage and flow control across a watershed. It turns passive stormwater infrastructure into an active, optimized system. The client has managed 50,000+ storm events through its platform.
Sometimes. In this case, the solution had accumulated microservices separation that added complexity without adding value. Ralabs refactored and consolidated those parts during the migration, leaving a simpler architecture that is easier to maintain and extend.
It depends on system size and how much undocumented logic needs to be mapped. This engagement started in May 2023 and remains in active development, run on a Kanban workflow suited to continuous, evolving work rather than fixed-scope sprints. A Ralabs legacy audit delivers a system map and modernization roadmap within one week.
A dedicated Ralabs team of two Senior Full Stack Engineers, a Middle Software Engineer, and a Project Manager, working closely with the client’s Principal Engineer.
Other cases
Team size: 5 developers
Team size: 5 developers
Team size: 6 developers
Team size: 6 developers
Team size: 4 developers
Team size: 3 developers
Team size: 4 developers
Team size: 6 developers
Team size: 3 developers


