Gladstone’s Window & Door Store is a family-owned retailer and installer of windows and doors. Since 2006, Gladstone has used an internally developed proposal generation application.
The proposal generation application is integral to Gladstone’s processes. But by the time Gladstone turned to Emergent Software for help, the application was outdated, unreliable, and unsupported.
The challenge of a legacy application
The original application was a Windows Desktop app that could only be installed on a few computers at Gladstone’s Maplewood, MN office, so it wasn’t accessible from remote locations. The developers of the application were gone, and it hadn’t been maintained, so some features didn’t work, and it crashed frequently.
The proposal generation application stored files in a custom serialized format that wasn’t compressed and took up a lot of space. The Gladstone team was manually backing the app up weekly on an external hard drive. The backups, system reboots, and manual workarounds for buggy features took up way too much time.
Gladstone needed app modernization experts. They turned to Emergent Software.
App modernization with Emergent Software
Emergent Software is an award-winning technology solution provider offering a full set of services including custom software development, cloud transformation, and data engineering services to clients across all industries. App modernization is a core competency of ours—one that was even recognized by Microsoft when they awarded us an advanced specialization in Modernization of Web Apps to Microsoft Azure.
The certification acknowledges our deep knowledge and extensive experience modernizing applications while following the principles of the Microsoft Cloud Adoption Framework (CAF).
For the Gladstone project, we put together a dedicated team of a software architect, two developers, a project manager, and a customer success manager. Various other Emergent team members, such as QA analysts, worked on the project as needed. As with any app modernization project, we started with a discovery phase to learn as much as we could about the customer’s needs and the legacy application.
This involved a series of discussions between Emergent Software and Gladstone to determine the requirements of the new app. Gladstone gave Emergent a copy of the legacy app and its code and we used that to help build a backlog for the project.
The solution: an Azure-based app
After the completion of the discovery phase, Emergent Software developed a new version of Gladstone’s application in six months.
The new proposal generation application is an ASP.NET hosted Blazor WebAssembly (WASM) application using the MudBlazor component library. The application is cloud-based, so Gladstone employees can access it anywhere. Hosted on Azure, it’s made up of an App Service, Azure SQL database, Azure Blob Storage, and Key Vault. Authentication is handled by Active Directory, which is convenient for Gladstone employees, since they already have accounts for Microsoft 365.
Employees need to be able to upload pictures of doors and windows to their proposals, so the app includes storage for those images.
The original app was hard to navigate. To find a past project, users had to browse a series of directories with thousands of project files. The new app offers an organized and searchable list of projects so employees can easily find their previous work.
Proposals can be easily customized with all the possible settings for window and door configurations, labor, and costs. The logic involved in the proposal builder is based on a combination of the legacy app and new features that the Gladstone team wanted.
The new app can also generate a variety of reports using QuestPDF. After the proposal is complete and Gladstone sells the project, the app can pull information from the proposal to generate required documents like work orders and purchase orders.
Finally, those cumbersome manual backups are a thing of the past, as the new app is constantly backing itself up automatically to SQL and to Azure Blob storage.
Continuous integration and deployment
In the past, when proposal generation application needed updates, an independent developer would make changes to the code and then provide Gladstone with a new version of the app. To streamline the process and give Gladstone more input, we introduced a continuous integration and deployment pipeline. They now have development, staging, and production environments. When Emergent Software deploys changes, Gladstone can test them and Emergent can deploy to production with no downtime.
Creating an ideal user experience
After Emergent delivered the app, our work wasn’t done. As the Gladstone team discovered new requirements, we were able to make updates to improve their experience.