Dienst · Software-ontwikkeling

FoxPro-applicatie vervangen.

Voorraadbeheer, klantenbeheer of administratie die nog draait op een FoxPro-applicatie uit de jaren negentig of tweeduizend. De data staat in DBF-bestanden op een netwerkschijf, het programma start via een snelkoppeling op een pc met een Windows-versie waar Microsoft zelf ook al jaren geen updates meer voor uitbrengt. Wij vervangen FoxPro-applicaties door een moderne webapplicatie, met een zorgvuldige export van de bestaande data en een overgang die uw dagelijkse werk niet stillegt.

Een DBF-bestand is geen database, het is een risico.

FoxPro, en later Visual FoxPro, was in de jaren negentig en tweeduizend een populair platform voor kleine en middelgrote bedrijfsapplicaties: administratie, voorraadbeheer, klantenbeheer, facturatie. Microsoft nam ontwikkelaar Fox Software begin jaren negentig over en bracht de laatste versie, Visual FoxPro 9.0, uit in 2007. Sindsdien is er geen nieuwe versie meer verschenen, en de reguliere en verlengde ondersteuning liep in januari 2015 definitief af. Er komen geen beveiligingsupdates meer, geen patches, geen officiële ondersteuning: het platform staat al meer dan tien jaar stil.

De onderliggende data zit doorgaans in DBF-bestanden, een eenvoudig tabelformaat zonder echte database-engine ertussen. Elke tabel is een los bestand, memo-velden staan in een los .fpt-bestand, indexen in een los .cdx-bestand. Dat werkt prima voor één gebruiker of een kleine groep op hetzelfde netwerk, maar er zit geen serieuze concurrency-laag onder: bij gelijktijdige schrijfacties, een haperende netwerkverbinding of een applicatie die niet netjes afsluit, raakt een DBF-bestand relatief snel beschadigd. Een ingebouwde reparatiefunctie ontbreekt; herstel vraagt gespecialiseerde tools en lukt niet altijd volledig.

Daar komt een tweede laag risico bovenop. Om de applicatie draaiend te houden, draait de onderliggende Windows-versie vaak zelf ook al jaren in compatibiliteitsmodus, soms een versie die Microsoft eveneens niet meer ondersteunt. Applicatie en besturingssysteem zijn dan allebei end-of-life: een dubbel beveiligingsrisico zonder één leverancier die nog een patch uitbrengt. Zelfs een FoxPro-ontwikkelaar inhuren om dat tijdelijk te beperken wordt steeds moeilijker. Dat maakt FoxPro een net iets ander soort risico dan een Delphi-applicatie of een AS/400-systeem: niet alleen de taal is verouderd, ook het bestandsformaat eronder mist elke vorm van moderne databasebescherming. Onze bredere aanpak staat op legacy software vervangen.

Hoe wij FoxPro-trajecten aanpakken.

Data-export eerst
Volledige inventarisatie en export van de DBF-tabellen voordat er iets gebouwd wordt
Logica herbouwen
Business-regels reconstrueren uit schermen, code en daadwerkelijk gebruik
Gefaseerde overgang
Module voor module, met validatie per stap en het oude systeem als vangnet
Data-eigenaarschap
Volledige migratie met controle en een read-only archief van het oude systeem

Van FoxPro naar een moderne webapplicatie.

Elk FoxPro-traject doorloopt in de kern dezelfde drie bewegingen: de data eruit halen zonder verlies, de bedrijfslogica herbouwen in een moderne applicatie, en de overgang gefaseerd laten verlopen zodat de operatie nooit stilvalt.

Aanpak 01

Data-export uit de DBF-bestanden

De eerste stap in ieder traject

We inventariseren alle tabellen, velden en onderlinge relaties, inclusief memo-velden en indexbestanden die vaak nergens gedocumenteerd zijn. Relaties tussen tabellen zijn in FoxPro zelden geformaliseerd als foreign keys; die reconstrueren we via naamgeving, codevelden en het feitelijke gebruik. De data gaat naar een tussenformaat en wordt per tabel gevalideerd tegen het origineel: aantallen, sleutelvelden en referentiële samenhang.

Waar DBF-bestanden al beschadigd blijken, leggen we dat vast voordat er verder wordt gebouwd. Liever een eerlijke lijst met ontbrekende records aan het begin, dan een verrassing na de overgang.

DBF-inventarisatieMemo- en indexbestandenValidatie tegen origineelCorruptie-checkTussenformaat CSV/SQLReferentiële consistentie
Aanpak 02

Herbouw van de bedrijfslogica

Het echte werk zit niet in de schermen, maar erachter

Een FoxPro-applicatie bestaat uit formulieren met procedurele code direct erachter: validaties, berekeningen en uitzonderingsregels zitten vaak verweven in de schermen zelf, nergens los gedocumenteerd. We reconstrueren die logica via code-analyse, interviews met de mensen die er dagelijks mee werken en observatie van het feitelijke gebruik, en zetten haar over in een moderne architectuur met een echte database eronder.

Niet elk FoxPro-systeem vraagt om een volledige herbouw. Voor een kleiner, afgebakend stuk kan een lichtere aanpak volstaan, waarbij het bestaande systeem wordt aangevuld of omhuld in plaats van vervangen; dat traject staat op legacy software moderniseren. Bij FoxPro is dat door de kwetsbaarheid van DBF-bestanden vaker een tussenstap dan een eindstation.

Formulieren en schermen analyserenProcedurele code lezenInterviews met gebruikersBusiness-regels expliciet makenModerne architectuurTesten tegen oud gedrag
Aanpak 03

Gefaseerde overgang met dataconversie en validatie

Nooit in één keer, altijd per module

De nieuwe applicatie groeit module voor module naast de FoxPro-applicatie. Elke module gaat pas in gebruik nadat de bijbehorende dataconversie is gevalideerd: aantallen, sommen en sleutelvelden vergeleken met de oude DBF-tabellen. Gebruikers werken zolang nodig met beide systemen, en de FoxPro-applicatie blijft als vangnet tot een deelproces aantoonbaar stabiel draait.

Pas wanneer alle modules zijn overgenomen, wordt de oude omgeving definitief uitgezet. Er blijft een read-only archief van de laatste DBF-stand bewaard, voor het geval een oud rapport of een historische correctie nog nodig is.

Module-voor-moduleValidatie-suiteParallel-draaienRollback-padCut-over per procesArchief read-only

Wat u aan het einde heeft.

Een werkende webapplicatie op een moderne database, een leeggehaalde FoxPro-omgeving en een organisatie die niet meer afhankelijk is van bestandslocks op een netwerkschijf.

Moderne webapplicatie

Toegankelijk via de browser, niet langer gebonden aan één specifieke pc of netwerkschijf.

Echte database

Een relationele database in plaats van DBF-bestanden, met transacties en concurrency die meegroeit met het aantal gebruikers.

Migratie-rapport

Welke tabellen en records zijn overgezet, welke afwijkingen zijn gevonden en hoe die zijn opgelost.

Decommissioning-plan

Wanneer en hoe de FoxPro-omgeving wordt uitgezet, en welk read-only archief overblijft.

Beheer (optie)

Monitoring, back-ups, updates en doorontwikkeling onder een onderhoudscontract.

Risico's die we expliciet adresseren.

Een FoxPro-vervanging raakt niet alleen techniek, maar ook beveiliging, kennis en toegankelijkheid. Vier risico's die in elk traject bovenaan staan.

Beveiliging

Dubbel end-of-life risico

De applicatie is sinds januari 2015 zonder ondersteuning, en draait vaak op een Windows-versie die zelf ook geen patches meer krijgt. We zetten de nieuwe applicatie op een actueel, ondersteund platform, zodat beveiligingsrisico op zowel applicatie- als besturingssysteemniveau verdwijnt.

Data

Corruptie en dataverlies

DBF-bestanden zijn kwetsbaar voor beschadiging bij netwerkonderbrekingen, gelijktijdige schrijfacties of een applicatie die niet netjes afsluit. We doen een data-audit vooraf en draaien een validatie-suite die elke migratie-run vergelijkt met het origineel.

Kennis

Geen FoxPro-ontwikkelaars meer te vinden

De groep mensen die FoxPro nog actief beheerst, wordt kleiner. Zelfs een tijdelijke ontwikkelaar inhuren lost het onderliggende platformrisico niet op, het stelt het alleen uit. We reconstrueren de bedrijfslogica zodat de kennis niet meer bij één schaarse specialist ligt.

Toegang

Geen webtoegang of thuiswerken

FoxPro is een Windows-desktopapplicatie, vaak beperkt tot één pc of een klein netwerk zonder mobiele of externe toegang. De nieuwe webapplicatie is standaard vanaf elke locatie en elk toestel te gebruiken, met normale gebruikersrechten in plaats van bestandslocks.

Hoe een FoxPro-traject loopt.

01Kennismaking 02Discovery & data-export 03Bouw & dataconversie 04Cut-over & beheer
Stap 01

Kennismaking

Welke FoxPro-applicatie staat er, hoeveel gebruikers werken ermee, waar zit de acute pijn. Vrijblijvend gesprek met IT en operations.

Stap 02

Discovery & data-export

We inventariseren de DBF-tabellen, doen een data-audit, interviewen sleutelgebruikers en reconstrueren de bedrijfslogica achter de schermen.

Stap 03

Bouw & dataconversie

Werkende modules in sprints, met een validatie-suite per conversie-run en parallel-draaien naast de bestaande FoxPro-applicatie.

Stap 04

Cut-over & decommissioning

Gefaseerde overgang per module, oude omgeving uiteindelijk uitzetten, read-only archief van de laatste DBF-stand blijft beschikbaar.

Van FoxPro en DBF naar een moderne stack.

FoxPro-systemen verschillen onderling sterk in omvang en complexiteit, maar de onderliggende risico's, DBF-bestanden zonder concurrency-bescherming en een taal zonder actieve ontwikkelaarspool, zijn vrijwel altijd hetzelfde. Onderstaand een indicatie van waar we vandaan komen en naartoe bouwen.

Waar we vandaan komen
FoxProVisual FoxProDBF-tabellenFPT-memo-bestandenCDX/IDX-indexenWindows in compatibiliteitsmodus
Doelstack, frontend & backend
Next.jsAstroReactNode.jsPython.NET 8PostgreSQL
Migratie, infra & integratie
ETL-conversiescriptsData-validatiesuiteAuth0Azure ADDockerGCP/AWSTerraform

Veelgestelde vragen.

Hoe lang kan een FoxPro-applicatie nog veilig blijven draaien?
Dat hangt af van hoeveel risico uw organisatie kan verdragen, niet van hoe stabiel het systeem oogt. Visual FoxPro is sinds januari 2015 zonder ondersteuning: geen updates, geen patches, geen leverancier die nog reageert. Vaak draait de applicatie ook nog op een Windows-versie die zelf al jaren end-of-life is. Zolang niets van buitenaf raakt en de DBF-bestanden niet corrupt raken, blijft het lang goed gaan, tot het moment dat het niet meer goed gaat.
Wat als de DBF-bestanden al gedeeltelijk beschadigd zijn?
Dat is vaker de aanleiding om contact op te nemen dan een uitzondering. We starten met een data-audit: welke tabellen nog normaal openen, welke memo- of indexbestanden fouten geven, welke records ontbreken of dubbel zijn. Met gespecialiseerde hersteltools is het overgrote deel van beschadigde DBF-data doorgaans alsnog te redden. Waar dat niet lukt, leggen we vast welke records ontbreken, zodat u bewust kunt kiezen over eventuele aanvulling vanuit oude rapporten.
Kunnen we niet gewoon een FoxPro-ontwikkelaar inhuren om het bij te houden?
Dat verzacht het probleem tijdelijk, maar lost het onderliggende risico niet op. FoxPro-ontwikkelaars zijn schaars en worden schaarser, dus kosten en doorlooptijd om iemand te vinden lopen op. Ook met een ervaren developer aan boord blijft de applicatie draaien op een platform dat Microsoft niet meer patcht en op DBF-bestanden zonder concurrency-bescherming. Een tijdelijke ontwikkelaar koopt tijd, geen zekerheid.
Waarom is het risico bij FoxPro groter dan bij andere legacy-systemen?
Bij veel legacy-systemen is vooral de taal verouderd, terwijl de data in een volwaardige database staat. Bij FoxPro is dat anders: de DBF-bestanden zijn geen databaseserver maar losse tabelbestanden zonder transacties, zonder serieuze concurrency-controle en zonder ingebouwde reparatiefunctie. Dat maakt corruptie waarschijnlijker naarmate het aantal gebruikers groeit. Vergelijkbare taal- en kennisrisico's zien we ook bij een Delphi-applicatie of een AS/400-systeem, maar daar is het databaseniveau doorgaans robuuster.
Hoe zorgen jullie dat we tijdens de overgang niet zonder werkend systeem zitten?
Door nooit in één keer over te schakelen. Na de discovery-fase en de eerste data-export bouwen we module voor module, terwijl de FoxPro-applicatie in gebruik blijft. Elke module wordt gevalideerd tegen de oude data voordat gebruikers ermee werken, en het oude systeem blijft als vangnet tot een deelproces aantoonbaar stabiel draait. Pas als alles is overgenomen, zetten we de oude omgeving uit en houden we er een read-only archief van over.
Wat gebeurt er met rapporten en exports die nu vanuit FoxPro worden gegenereerd?
Die inventariseren we tijdens de discovery-fase als onderdeel van de bedrijfslogica, niet als bijzaak achteraf. Een nachtelijke export naar de boekhouding, een maandrapport voor de directie of een handmatige correctie-actie zijn vaak jarenlang stilzwijgend onderdeel van het proces geworden. We brengen die in kaart via interviews en observatie van het gebruik, en bouwen het gelijkwaardige rapport in de nieuwe applicatie voordat de oude wordt uitgezet.
Behouden we eigenaarschap van de nieuwe applicatie en de data?
Ja, volledig. Code, infrastructuur, documentatie en credentials komen op uw naam te staan, in een repository die u zelf beheert of die aan het einde van het traject wordt overgedragen. Ook de gemigreerde data blijft van u, met een gedocumenteerd exportformaat. Kiest u voor onze beheer-laag na oplevering, dan verandert die eigendomssituatie niet: beheer is een dienst die u kunt stopzetten, geen constructie die u vastzet.

Praat met ons over uw FoxPro-systeem.

Een kennismaking van een half uur, vrijblijvend. We luisteren naar wat er nu draait, hoe de DBF-bestanden erbij staan en wat de aanleiding is om er nu wél naar te kijken.

Edit Content