Moderniseer legacy software stap voor stap: leg eerst het huidige gedrag vast in tests, en vervang daarna module voor module terwijl het oude systeem blijft draaien. Herbouwen loont alleen als de bedrijfsregels in de code niet meer kloppen.
Elke organisatie van enige omvang draait op een paar systemen die niemand graag aanraakt: een Access-database die de planning draagt, een .NET Framework-applicatie voor de orderverwerking, een PHP-portaal uit 2016. Deze pagina is voor de IT-manager, CIO of informatiemanager die beslist wat ermee gebeurt en het resultaat daarna beheerd moet krijgen.
Laatst bijgewerkt: 29 oktober 2026
Er zijn vier routes: de code bijwerken naar een ondersteunde versie (refactoren), het systeem module voor module vervangen achter een tussenlaag (het strangler fig-patroon), opnieuw bouwen, of overstappen op een standaardpakket. Drie vragen bepalen welke route past: kloppen de bedrijfsregels in de code nog, kan het huidige gedrag in tests worden vastgelegd, en kunnen verzoeken aan het oude systeem worden onderschept? Welke route u ook kiest: geen big bang, eerst tests, en een vooraf afgesproken taakverdeling met wie uw servers beheert.
| Platform | Einde ondersteuning | Wat het betekent |
|---|---|---|
| PHP 8.1 en ouder | Al verlopen | Geen beveiligingsfixes meer van het PHP-project. php.net noemt alleen 8.2 tot en met 8.5 als ondersteund. |
| PHP 8.2 | 31 december 2026 | De beveiligingsfixes stoppen eind dit jaar; PHP 8.3 wordt gedekt tot 31 december 2027. |
| .NET Framework 4.6.2 | 12 januari 2027 | Versies 4.5.2, 4.6 en 4.6.1 stopten al op 26 april 2022 (Microsoft Lifecycle). |
| .NET 8 en .NET 9 | 10 november 2026 | De huidige langetermijnversie, .NET 10, wordt ondersteund tot 14 november 2028 (.NET-ondersteuningsbeleid). |
| Access 2016 en Access 2019 | 14 oktober 2025 | Geen nieuwe beveiligingsupdates meer (Microsoft, einde ondersteuning 2025). |
| Route | Kies deze als | Waar het risico zit |
|---|---|---|
| Refactoren en upgraden | De bedrijfsregels nog kloppen en het probleem vooral de runtime of het framework is, zoals PHP 7.4 of .NET Framework. | Gedrag dat niemand heeft beschreven en dat bij de upgrade ongemerkt verandert. |
| Stapsgewijs vervangen (strangler fig) | Het systeem groot is, nog lang moet draaien en verzoeken via een tussenlaag kunnen lopen. | Twee systemen die tijdelijk dezelfde data delen. |
| Herbouwen | De regels in de code niet meer kloppen, het systeem klein is of de code niet te testen is. | Oude regels waarvan pas na livegang blijkt dat ze ontbreken. |
| Standaardpakket | Het proces u niet onderscheidt en een pakket het al goed doet. | Maatwerk dat terugkomt als configuratie die niemand overziet. |
| Uitfaseren | Bijna niemand het nog gebruikt. | Een vergeten koppeling of rapport dat er toch op leunt. |
Microsoft beschrijft het strangler fig-patroon zo: een tussenlaag (façade) ontvangt alle verzoeken en stuurt ze naar het oude of het nieuwe systeem. Functionaliteit verhuist stuk voor stuk, gebruikers houden dezelfde ingang, en het oude systeem gaat uit zodra niets er nog van afhangt.
In de praktijk kiest u eerst een module met een duidelijke grens en een zichtbare winst, bijvoorbeeld de orderinvoer of de rapportage. Die gaat live naast de rest, bewijst zich in gebruik, en pas dan volgt de volgende. Elke stap is terug te draaien door de tussenlaag weer naar het oude systeem te laten wijzen.
Microsoft noemt ook wanneer het patroon niet past: als verzoeken aan het oude systeem niet te onderscheppen zijn, als u de broncode of de database niet kunt aanpassen, of als het systeem zo klein is dat in één keer vervangen eenvoudiger is.
AI-tools doen inmiddels het grootste deel van het mechanische werk: verouderde taalconstructies herschrijven, bibliotheken vervangen, projectbestanden omzetten. Microsofts GitHub Copilot-upgradeagent zet .NET Framework-projecten van elke versie om naar .NET 8 of later, heeft een scenario voor ASP.NET Web Forms naar Blazor en maakt per deelstap een Git-commit, zodat elke wijziging terug te draaien is. Voor PHP past Rector upgraderegels toe van PHP 5.3 tot en met 8.5.
Snelheid is dus niet meer het probleem. Het risico zit in gedrag dat nergens beschreven staat. Daarom beginnen wij met karakteriseringstests: tests die vastleggen wat het systeem vandaag doet, inclusief de eigenaardigheden waar gebruikers op rekenen. AI schrijft een eerste versie, een engineer toetst die aan echte gevallen, en daarna gaat geen wijziging door zonder groene tests en zonder dat een engineer haar heeft gelezen. Wat er in de praktijk breekt, staat in onze analyse van PHP2Shell en oude PHP-code.
Code omzetten gaat met de huidige tooling snel; data verhuizen niet. In een Access-database of een oude SQL Server-omgeving zitten dubbele klanten, velden die in de loop der jaren een andere betekenis kregen, en regels die alleen in een query van een vertrokken collega staan.
Wij werken in vier stappen. Eerst een inventaris: welke tabellen, wie leest en schrijft erin, welke rapporten en koppelingen hangen eraan. Dan de mapping van oud naar nieuw, met per veld een besluit over opschonen. Dan proefmigraties op een kopie, net zo vaak tot de reconciliatie klopt: aantallen, totalen en steekproeven per tabel, afgetekend door iemand uit de business. Pas dan de definitieve overzetting, in een afgesproken bevriezingsvenster.
Bij stapsgewijze vervanging gebruiken oud en nieuw tijdelijk dezelfde data. Microsoft wijst er bij het strangler fig-patroon op dat beide systemen dan tegelijk bij die gegevens moeten kunnen; dat ontwerp leggen we vast voordat de eerste module live gaat.
| Fase | Crux Digits | Uw ICT-partner | Uw organisatie |
|---|---|---|---|
| Analyse | Code-audit, testdekking, migratieplan per applicatie | Toegang tot code en servers, overzicht van omgevingen, versies van runtime en servers | Een eigenaar per applicatie, prioriteiten en budget |
| Bouw | Refactoring, nieuwe modules, karakteriseringstests, datamigratiescripts | Test- en acceptatieomgeving die op productie lijken | Acceptatietests, besluiten over betwiste bedrijfsregels |
| Change en release | Een wijzigingsverzoek met impact en terugvalplan | Een plek in de changekalender | Akkoord van de change advisory board |
| Livegang | Releasepakket, runbook, ondersteuning bij de overzetting | Uitrol, servers, back-ups, monitoring | Akkoord op livegang |
| Na livegang | Overdracht van code, tests en kennis | Hosting, patches, beheer | Applicatie-eigenaarschap |
| Hosting, patches, helpdesk | Niet bij ons: dat bieden wij niet | Ja | Contractbeheer |
Veel legacy-problemen zijn eigendomsproblemen: de broncode staat bij een leverancier, de enige ontwikkelaar is vertrokken, of niemand weet nog welke versie in productie draait.
Bij ons staat de code vanaf de eerste dag in uw eigen repository. U krijgt de testset die het gedrag bewijst, de datamigratiescripts, een runbook waarmee uw ICT-partner de applicatie kan uitrollen en herstellen, en een verslag van de architectuurkeuzes. Er zit geen eigen framework of platformlicentie van ons onder, dus een andere leverancier of uw eigen team kan zonder ons verder.
Vraag elke leverancier, ons inbegrepen: in welke repository staat de code, wie heeft de rechten, en kan een derde de applicatie bouwen en uitrollen met alleen de overdracht?
Audit en strategie, €2.500, één tot twee weken: code, afhankelijkheden, testdekking en data doorgelicht, met een advies per applicatie (refactoren, stapsgewijs vervangen, herbouwen of uitfaseren) en een vaste prijs voor de volgende stap. Is een standaardpakket de betere keuze, dan staat dat in het advies. Productieklare MVP, €20.000, vier tot zes weken: de eerste module, of de upgrade van één afgebakende applicatie, met karakteriseringstests, werkend op uw eigen data. Productie, vanaf €50.000, acht tot twaalf weken: de volledige migratie, gekoppeld, getest en overgedragen met alle broncode. Prijzen exclusief btw; de audit wordt verrekend met de MVP als u binnen 60 dagen doorgaat. Eén vaste engineer is uw aanspreekpunt van begin tot eind.
Alle prijzen staan op onze prijzenpagina, onze werkwijze bij maatwerk software laten maken.
Stuur ons de naam van de applicatie, de versie van de runtime en wie hem beheert. Wij vertellen u welke route past en wat de audit zou opleveren.
Plan een gratis kennismaking →Kies een onderwerp, of typ gewoon direct.