Van legacy-applicatie naar moderne webapplicatie

intro

Een maatwerkapplicatie herschrijven begint zelden bij technologie.

Natuurlijk zijn er technische keuzes nodig. Een nieuwe backend. Een moderne frontend. Een andere database. Betere deployments. Een ontwikkelomgeving die minder fragiel is.

Maar voor je daaraan begint, moet je eerst goed begrijpen wat de bestaande applicatie vandaag betekent.

Welke processen hangen eraan vast? Welke uitzonderingen zijn door de jaren heen belangrijk geworden? Welke logica zit in de code, in de database of gewoon in het hoofd van een paar mensen?

En vooral: wat mag bij een herbouw zeker niet verloren gaan?

In deze case gaat het om een maatwerkapplicatie die al jaren haar werk doet. De toepassing is dus niet plots waardeloos geworden. Ze botst vooral op beperkingen die vandaag zwaarder beginnen wegen: onderhoud, security, webtoegang, hosting, licenties en de manier waarop nieuwe ontwikkeling georganiseerd wordt.

AI kan daarbij helpen. Vooral bij analyse, documentatie, testvoorbereiding en herhalend ontwikkelwerk. De grote keuzes blijven bij het team: architectuur, datamodellering, security, validatie en onderhoudbaarheid.

Eerst kiezen: verbeteren of opnieuw bouwen?

Niet elke legacy-applicatie moet volledig opnieuw gebouwd worden.

Soms is de basis nog goed genoeg. De businesslogica klopt. Het datamodel is begrijpelijk. Het team kan nog met vertrouwen wijzigingen doen. Dan kan gerichte refactoring veel oplossen.

Je behoudt wat werkt en pakt stap voor stap de onderdelen aan die lastig worden. Onderhoud. Performantie. Security. Testbaarheid. Voor gebruikers is dat vaak de rustigste aanpak.

Er komt ook een punt waarop kleine ingrepen te weinig oplossen.

Wijzigingen duren langer dan verwacht. Releases voelen risicovol. Security netjes inbouwen wordt moeilijk. Testen blijft grotendeels manueel. De applicatie hangt vast aan lokale installaties, oude technologie of mensen met veel historische kennis. Nieuwe integraties vragen telkens meer inspanning.

Dan wordt verder bouwen op dezelfde basis duur en onvoorspelbaar.

Een rewrite kan dan verstandiger zijn dan blijven herstellen. Je kan opnieuw ontwerpen met de kennis van vandaag, zonder alles wat vroeger goed werkte zomaar weg te gooien.

Een goede herbouw begint daarom niet bij code. Ze begint bij processen, gebruikers, data, risico’s en keuzes waar de organisatie de komende jaren op verder moet kunnen.

In de praktijk loopt het vaak gemengd. Soms los je eerst een paar dringende pijnpunten op. Soms bouw je module per module opnieuw. Soms is een volledige herbouw zinvol, op voorwaarde dat migratie en validatie goed voorbereid zijn.

Waarom dit gevoelig ligt

Veel maatwerkapplicaties zijn jarenlang meegegroeid met de organisatie.

Ze ondersteunen administratie, planning, rapportering, interne controles of andere dagelijkse processen. Mensen kennen de schermen. Ze kennen ook de uitzonderingen, en weten waar ze moeten opletten. Sommige bugs zijn intussen een onderdeel van de manier van werken geworden.

Daarom voelt een rewrite zelden als een puur technisch project.

Je raakt aan gewoontes, processen en vertrouwen. De bestaande applicatie werkt misschien niet perfect, maar ze is bekend. Dat telt. Zeker wanneer ze elke dag gebruikt wordt door mensen die hun werk gedaan moeten krijgen.

Modernisering wordt pas echt relevant wanneer die vertrouwde basis te veel begint te beperken.

Onderhoud kost steeds meer moeite. Remote gebruik moet beter. Securityverwachtingen liggen hoger. Hosting of licenties worden te beperkend. Updates vragen te veel voorzichtigheid. Nieuwe functionaliteit duurt te lang.

Op dat punt gaat een rewrite vooral over controle. Over software die opnieuw beter te onderhouden, veiliger en makkelijker te beheren is.

De gekozen technische basis

Voor deze herbouw kiezen we bij dotNET lab, samen met de klant, voor een moderne stack die sterk is en goed beheersbaar blijft.

De keuze bestaat uit:

  • ASP.NET voor de backend
  • Angular voor de frontend
  • PostgreSQL als database
  • Aspire om de onderdelen overzichtelijk te organiseren
  • OpenTelemetry voor observability
  • Docker-containers voor de applicatieonderdelen

Dat is geen vast recept. De juiste stack hangt altijd af van de context: de processen, het team, de hostingkeuzes, de securityverwachtingen en het onderhoud nadien.

ASP.NET geeft een sterke basis voor API’s, businesslogica, authenticatie, autorisatie en integraties. Voor bedrijfskritische software is dat belangrijk. De backend moet betrouwbaar zijn, goed testbaar en duidelijk opgebouwd.

Angular past goed bij een webapplicatie met meerdere schermen, duidelijke flows en herbruikbare componenten. Zeker wanneer mensen dagelijks met de toepassing werken, telt voorspelbaarheid. Gebruikers moeten snel begrijpen waar ze zijn en wat er gebeurt.

PostgreSQL is een volwassen relationele database. Voor veel KMO-contexten is dat interessant omdat je een sterke database krijgt zonder klassieke licentiekosten. Dat helpt om de totale kost op lange termijn beter onder controle te houden.

Docker maakt de applicatie eenvoudiger te verplaatsen tussen omgevingen. Ontwikkeling, test en productie kunnen consistenter worden opgezet. Daardoor krijg je minder situaties waarbij iets lokaal werkt en op de server anders reageert.

Aspire helpt om lokaal met een realistische applicatiecontext te werken. Denk aan de webapplicatie, API, database, achtergrondprocessen en externe services. Dat maakt ontwikkeling overzichtelijker.

OpenTelemetry geeft meer zicht op wat er in de applicatie gebeurt. Logs, traces en metrics maken het eenvoudiger om fouten te onderzoeken en incidenten sneller te begrijpen. Bij bedrijfskritische software wil je niet moeten gokken. Je wil kunnen zien waar iets fout loopt, welke impact dat heeft en wat er nodig is om het op te lossen.

Waarom Docker en PostgreSQL ook zakelijk tellen

Technologiekeuzes lijken soms puur technisch. Bij een rewrite bepalen ze ook hoeveel vrijheid een organisatie later nog heeft.

Een applicatie in containers hangt minder vast aan één specifieke hostingomgeving. Dat geeft meer keuze. De applicatie kan later draaien in een Europese cloud, een hybride omgeving of een andere hostingvorm die beter past bij de organisatie.

Volledige platformonafhankelijkheid hoeft geen doel op zich te zijn. Bewuste controle over toekomstige keuzes is wel belangrijk.

Bij bedrijfskritische software wil je vermijden dat keuzes van vandaag later onnodig knellen.

PostgreSQL past ook in die redenering. Het is open source, volwassen en breed ondersteund. Je vermijdt klassieke database-licentiekosten die op termijn kunnen doorwegen. Voor KMO’s is dat geen detail. Software kost geld in de bouw, maar ook in beheer, hosting, licenties, onderhoud en toekomstige aanpassingen.

Een rewrite is dus een goed moment om die kosten en afhankelijkheden opnieuw te bekijken.

Van lokale toepassing naar webapplicatie

Veel oudere maatwerkapplicaties zijn gebouwd voor een andere manier van werken.

Een lokale installatie. Specifieke werkposten. Een vaste server. Beperkte toegang buiten het kantoor. Updates die manueel of heel voorzichtig gebeuren.

Vandaag verwachten organisaties meer flexibiliteit.

Een moderne webapplicatie maakt beheer eenvoudiger. Gebruikers hebben alleen een browser nodig. Updates gebeuren centraal. Toegang kan beter gecontroleerd worden. Werken op verschillende locaties of toestellen wordt makkelijker, zolang security goed is ingericht.

Ook voor IT maakt dat verschil.

Een applicatie met een duidelijke backend, frontend, database en containerstructuur is beter te beheren dan software die sterk afhankelijk is van lokale installaties of historische serverinstellingen.

Zo wordt de applicatie niet alleen aangenamer voor gebruikers. Ze wordt ook beter beheerbaar voor de organisatie.

Security vanaf het begin

Bij een rewrite hoort security vanaf het begin mee in het ontwerp.

Dat gaat over authenticatie, rechtenbeheer, logging, audit trails, omgang met gevoelige data, configuratie per omgeving en voorspelbare deployments.

Een moderne stack helpt om dat beter te structureren. ASP.NET biedt sterke bouwstenen voor identity, autorisatie en API-beveiliging. Docker helpt om omgevingen consistenter te maken. PostgreSQL biedt een robuuste basis voor dataverwerking. Aspire maakt de lokale ontwikkelomgeving realistischer.

Tooling lost dat natuurlijk niet vanzelf op.

De belangrijkste vragen blijven inhoudelijk. Wie mag welke data zien? Wie mag iets aanpassen? Welke acties moeten traceerbaar zijn? Welke fouten moeten snel zichtbaar worden? Welke data vraagt extra bescherming?

Een rewrite is een goed moment om die vragen meteen mee te nemen.

AI als praktische ondersteuning

AI kan zo’n traject versnellen.

Het kan helpen om bestaande code te begrijpen, patronen te herkennen, documentatie voor te bereiden, user stories uit te werken en testscenario’s op te zetten. Tijdens ontwikkeling kan het ondersteunen bij herhalende onderdelen zoals eenvoudige CRUD-logica, componentstructuren, API-contracten of eerste testvoorstellen.

Dat levert tijdswinst op.

De verantwoordelijkheid blijft bij het team. Architectuur, security, datamodellering, validatie met gebruikers en kwaliteitscontrole vragen nog altijd menselijke beoordeling.

De beste rol voor AI is praktisch. Snelheid brengen waar dat veilig kan, zodat developers en analisten meer aandacht kunnen geven aan de keuzes die echt tellen.

Wat maakt een rewrite geslaagd?

Een rewrite slaagt niet door de techstack alleen.

ASP.NET, Angular, PostgreSQL, Aspire, OpenTelemetry en Docker geven een sterke basis. AI kan helpen om sneller te werken. Het resultaat hangt vooral af van de aanpak.

Belangrijk zijn vooral:

  • een duidelijke scope
  • goed begrip van de bestaande werking
  • betrokkenheid van gebruikers
  • sterke architectuurkeuzes
  • security vanaf het begin
  • goede datamodellering
  • realistische prioriteiten
  • een doordachte migratie
  • grondige validatie van kritieke processen

Daar zit ook de waarde van technische begeleiding.

Een KMO heeft niet altijd alle expertise intern om zo’n traject volledig zelf te dragen. Dan helpt een partner die techniek en bedrijfscontext samen bekijkt. Iemand die helpt nadenken over risico’s, keuzes, documentatie, onderhoudbaarheid en adoptie.

Tot slot

Een maatwerkapplicatie herschrijven is een grote keuze.

Soms volstaat onderhoud. Soms is gerichte modernisering beter. Wanneer de technische basis de organisatie begint af te remmen, kan een goed voorbereide rewrite de meest verstandige stap zijn.

Met ASP.NET, Angular, PostgreSQL, Aspire, OpenTelemetry en Docker ontstaat een moderne basis die beter past bij hoe organisaties vandaag werken.

AI kan het traject haalbaarder maken, vooral door analyse, documentatie, tests en herhalend ontwikkelwerk te ondersteunen.

De kern blijft eenvoudig.

Eerst begrijpen wat de applicatie vandaag betekent voor de organisatie. Daarna bouwen op een manier die veilig, onderhoudbaar en toekomstbestendig is.