The constraint
A working system from another era
WebForms, VB.NET, Telerik controls, five jQuery versions, desktop-only screens and manual server processes. Valuable rules were trapped inside unsupported technology.
17 years of business-critical food-production knowledge, moved from an ageing WebForms system to a modern .NET 10, Blazor & Azure platform - without losing the rules the kitchen depends on.
Verified label for label against real production weeks. Then made faster, safer, easier to operate and ready for the next decade.
~70×
Faster label and report runs
425+
Automated unit and browser tests
0
Big-bang cutovers or business disruption
17 yrs
Business knowledge preserved
The modernisation brief
Care Catering prepares allergy-checked meals for nurseries every day. Orders, labels and invoices must be right. The old system contained the knowledge; its technology was holding the operation back.
The constraint
WebForms, VB.NET, Telerik controls, five jQuery versions, desktop-only screens and manual server processes. Valuable rules were trapped inside unsupported technology.
The outcome
One supported codebase, responsive portals, secured APIs, automated processing and observable operations - introduced feature by feature while the business continued.
Before and after
The technology changed because the business needed more speed, control and confidence - not for the sake of a newer stack.
Word-only generation tied to a licensed 2010-era component
PDF and Word generated in the cloud, archived and available by week or nursery
Long-running page process with missing background-job source
Queue-backed Azure Functions, full audit history and roughly 70× faster runs
Hidden report menu and SQL scripts run by hand
Live dashboards for orders, baskets, discrepancies, email and system health
Office-PC ordering with limited self-service
Responsive portal for orders, children, dietary needs, invoices, menus and feedback
No automated tests
303 unit tests and approximately 122 browser tests run on every build
Rules embedded in code with no repository documentation
2,690-line functional manual, contextual help and an in-app changelog
The proof that mattered
The food-safety-critical label engine was ported deliberately. ABM restored real production weeks, regenerated every label through the new platform and compared the output label by label before sign-off.
The A4 sheet geometry, eight-label grid, invoice rules and operational quirks the kitchen relies on are protected by automated tests. New capability was added only after continuity was demonstrated.
production labels in a typical weekly run
for labels and reports, down from as much as 45 minutes
unit and browser tests protecting business behaviour
of operational knowledge retained, not discarded
How ABM delivered it
Treat the original system and production data as evidence. Catalogue screens, procedures, documents and the business rules hidden between them.
Build one feature vertically - from secured API and validation to responsive interface, tests and contextual help - then repeat that pattern.
Port label and invoice rules first. Compare real outputs before allowing new functionality to change the workflow.
Run old and new safely through a phased transition, giving teams working improvements without waiting for one dangerous cutover.
Automate releases, background jobs, data refresh, monitoring, documentation and tests so the system is easier to own after delivery.
Use the arrows or thumbnails to move through the deck. Click a slide to view it full-screen.
Orders, completion, deadlines, Label Factory activity, feedback and exceptions are visible at a glance instead of hidden behind a page of links.
Alternatives are resolved per container against each child's allergies and parental choices, with unsafe combinations flagged before labels reach production.
Queue-backed Azure Functions generate labels and document packs without tying up a browser. Every run is recorded and traceable.
Nurseries manage children and dietary restrictions, clone weekly orders, download invoices and menus, and submit tracked change requests from any device.
Email delivery, bounces, application warnings, label discrepancies and data-quality issues are surfaced in the platform rather than discovered downstream.
Versioned database changes, documented functionality, contextual help, a changelog and automated tests leave the platform understandable as well as modern.
We modernise ageing applications onto Azure and .NET 10 - incrementally, with zero downtime, and quickly.
Ready when you are
Ready when you are