Application Modernization · Procurement

Re-engineer procurement.
Retire the Web Forms era.

Wonder Cement's procurement backbone — RFQ and reverse-auction events, comparative statements, and purchase orders — ran on aging ASP.NET Web Forms. Kansoft re-engineered it into a .NET 6 ASP.NET Core Web API with an Angular 14 SPA, on a domain-driven architecture and Microsoft Azure — without losing a single procurement workflow.

ASP.NET → .NET 6 Angular 14 SPA Azure-native
The Client & Context

A procurement engine on aging Web Forms — modernize it without pausing a live auction or a purchase order.

Wonder Cement runs a large, high-volume procurement operation: RFQs and reverse auctions, comparative-statement evaluations, vendor negotiations, and purchase orders across a wide supplier base.

That operation ran on RFQCS — a procurement application built on the older EPS platform, using ASP.NET Web Forms with C# on MS SQL Server. Over time it had accumulated the constraints legacy Web Forms is known for: a dated, postback-driven UI, a tightly-coupled codebase where every enhancement was its own project, and limited headroom for real-time features and cloud-native operations.

The mandate: upgrade RFQCS to a modern .NET Core Web API with an Angular frontend — matching the existing workflows and conceptual design exactly — while preserving the intricate procurement logic the business runs on, and keeping the platform live throughout.

RFQ-2231 · Reverse Auction LIVE · R3 VENDOR BIDS · LIVE L1 Vendor A ₹ 4.12 Cr L2 Vendor C ₹ 4.19 Cr L3 Vendor B ₹ 4.24 Cr PRICE ↓ / ROUND CS APPROVAL Buyer CS Sheet Unit Head PO Issued PROCURE-TO-ORDER FLOW PR RFQ / RA CS PO Chat · Notifications · Serilog audit · Azure Service Bus
Key Challenges

Five constraints the legacy platform imposed.

A dated stack, deeply coupled code, and business-critical workflows that could not be simplified away.

01

Aging ASP.NET Web Forms

A postback-driven UI and an older framework made the platform hard to evolve and increasingly out of step with how buyers and vendors expect to work.

02

Tightly-coupled codebase

Business logic, data access, and UI were interwoven. Every enhancement carried regression risk and shipped as its own project rather than a routine release.

03

Intricate procurement logic

Multi-round reverse auctions, comparative-statement workflows, N-level approvals, vendor ranking, and PR/PO quantity reconciliation — all had to be preserved to the rule.

04

Real-time & integration gaps

Live bidding, notifications, chat, currency conversion, and document handling needed modern messaging and storage the legacy stack didn't provide cleanly.

05 · Continuity

And a platform running live procurement the entire time.

RFQCS processes active auctions, approvals, and purchase orders every day. The re-engineering had to match existing workflows exactly, reuse the production database, and roll out incrementally — no big-bang cutover, no paused procurement.

Our Approach

A domain-driven rewrite — same workflows, modern foundation, shipped in modules.

Kansoft rebuilt RFQCS on .NET Core using domain-driven design, keeping the existing conceptual design and data model, and delivering module by module so the platform stayed usable throughout.

PHASE 01

Workflow & Domain Assessment

Mapped every RFQ, auction, CS, and PR/PO workflow — including the logic embedded in SQL functions, triggers, and jobs — and the permission and status models behind them.

PHASE 02

Domain-Driven Re-Architecture

Split the system into loosely-coupled layers — Core (entities, models, interfaces), Data Engine, Application (business logic), WebAPI, Queue, and Logging — so each evolves independently.

PHASE 03

API + Angular Rebuild

Built the .NET 6 Core Web API and Angular 14 SPA module by module — buyers, PR, price bids, RFQ/CS, technical evaluation, PPO, reverse auction, and more — matching the legacy workflow.

PHASE 04

Azure Foundation & Cutover

Wired in Azure AD auth, Service Bus messaging (via MassTransit), and Blob Storage; reused the existing MS SQL database; and rolled out incrementally with Serilog auditing throughout.

Solution Delivered

What we built — the platform, in six capability areas.

A faithful, modernized replacement for the legacy RFQCS: the full procure-to-order journey, live reverse auctions, multi-level comparative-statement approvals, and the messaging and audit backbone that ties it together — all on .NET 6, Angular, and Azure.

RFQ & Auction Event Management

Create and manage RFQ and auction events with templates, terms & conditions, technical parameters, and suggested-vendor lists — the front door to the whole procurement cycle.

Reverse Auction & Price Bidding

Live, multi-round reverse auctions with buyer and vendor price-bid handling, configurable auction settings, real-time vendor ranking, and recall logging.

Comparative Statement & Multi-Level Approval

CS generation and comparison with a dynamic, rules-driven approval workflow — extended cleanly to add Unit-Head CS approval as a later enhancement.

PR → PPO → PO Workflows

The full requisition-to-order chain with provisional and final purchase orders, and quantity reconciliation across PR, PPO, and PO handled in the domain layer.

Technical Evaluation & Vendor Management

Technical parameters and attachments, vendor deviations against terms, vendor ranking and rating — keeping technical and commercial evaluation in one flow.

Messaging, Chat & Audit

Azure Service Bus (via MassTransit) for asynchronous processing, event threads and collaboration/chat between stakeholders, and Serilog activity and error logging across the platform — plus a coal-transfer module added on the same foundation.

Platform Architecture
MICROSOFT AZURE FRONTEND · BUYERS & VENDORS Angular 14 SPA Auction & CS dashboards APPLICATION · .NET 6 WEB API Core Data Engine Application Domain-Driven Design Queue · MassTransit MESSAGING · STORAGE · LOGS Service Bus Blob Serilog DATA MS SQL Server (existing) · Dapper ORM SECURITY Azure AD authentication · role-based access
Technology Stack

A modern .NET stack, chosen to match the team and the workload.

The upgrade keeps the organization on familiar Microsoft ground — C#, SQL Server, Azure — while replacing the aging Web Forms runtime with a clean, API-first, cloud-native foundation.

.NET 6 · ASP.NET Core Web API
API-first C# backend on a layered, domain-driven architecture
Angular 14
Single-page frontend replacing the legacy Web Forms UI
MS SQL Server · Dapper
Existing database retained; fast, explicit data access via Dapper
Azure Service Bus · MassTransit
Asynchronous, reliable messaging for events and processing
Azure Blob Storage · Azure AD
Scalable document storage and enterprise single sign-on
Serilog audit logging
Structured activity and error logs across every module
Engineering Outcomes

From a Web Forms monolith to a platform built to extend.

The re-engineering changed the foundation RFQCS runs on — the workflows stayed, the architecture became something the team can evolve.

.NET 6
Re-platformed
From ASP.NET Web Forms to ASP.NET Core Web API
Angular 14
Modern SPA
API-driven UI replacing postback-era screens
DDD
Layered architecture
Core · Data Engine · Application · WebAPI · Queue · Logging
Azure
Cloud-native
Service Bus, Blob, and AD on the existing SQL database
Aspect Before After
FrameworkASP.NET Web Forms (C#).NET 6 ASP.NET Core Web API
FrontendPostback-driven Web Forms UIAngular 14 single-page app
ArchitectureTightly-coupled monolithDomain-driven, layered
Data accessLegacy data layerDapper ORM · existing SQL Server
MessagingLimited / synchronousAzure Service Bus via MassTransit
Auth & auditLegacy login, ad-hoc logsAzure AD · Serilog audit trail
What Changed for the Business

Beyond the rewrite — four ways the work compounds.

A modern foundation doesn't just look better. It changes how quickly procurement can adapt when the business needs it to.

Faster to extend

Loosely-coupled layers mean new capabilities ship as clean increments — Unit-Head CS approval and a coal-transfer module were added on the same architecture without re-platforming.

A modern buyer & vendor experience

The Angular SPA replaces dated postback screens with a responsive, real-time interface for auctions, bids, and approvals.

Cloud-native reliability

Azure Service Bus decouples processing, Blob Storage handles documents at scale, and Azure AD centralizes secure access — with Serilog giving a full audit trail.

Business logic preserved

The complex reverse-auction, comparative-statement, and PR/PO rules the business depends on were carried forward faithfully — modernization without disruption.

Engagement Snapshot

How the work was shaped.

Why Kansoft

The capability mix this engagement required.

Re-engineering a live procurement platform — matching every workflow while modernizing the stack — needs legacy-.NET depth, procurement-domain fluency, and Azure engineering, together.

Legacy .NET modernization ASP.NET Web Forms to .NET Core Web API, carrying forward business logic instead of rewriting it from scratch.

Procurement domain fluency RFQ, reverse auction, comparative statements, and PR/PO workflows modeled cleanly with domain-driven design.

Azure engineering Service Bus and MassTransit, Blob Storage, and Azure AD — integrated securely, with secrets kept out of the codebase.

Continuity discipline Reused the production SQL database and delivered module by module, so procurement never paused during the transition.

Ready to build something like this?

If a business-critical system is stuck on Web Forms, the re-platform is more achievable than it looks.

We modernize legacy .NET applications into cloud-native .NET Core + Angular platforms — preserving the workflows your operations depend on, reusing your existing data, and shipping in increments. If that's where you're headed, let's talk.

Confidential · No procurement obligation · Response within one business day