Modernize Studio
Taal: Nederlands
Mail ons

Delphi-applicaties, gemigreerd naar het web

Delphi was in de jaren negentig en nul een veelgebruikte keuze voor bedrijfssoftware, en veel van die programma's zijn nog dagelijks in gebruik, vaak met Paradox- of dBase-tabellen via de BDE. Wij migreren ze naar webapplicaties op een SQL-database, met dezelfde gegevens en dezelfde regels, zodat u geen precies goed ingestelde pc's meer nodig hebt om ze te draaien.

Waarom nu

Embarcadero, dat Delphi vandaag onderhoudt, heeft de Borland Database Engine afgeschreven. Volgens de documentatie wordt de BDE niet meer verbeterd, krijgt hij nooit Unicode-ondersteuning en moet hij niet worden gebruikt voor nieuwe ontwikkeling; als alternatief wordt FireDAC aangeraden. De meeste oudere Delphi-programma's lezen en schrijven hun Paradox- of dBase-tabellen nog steeds via de BDE.

De BDE is ontworpen voor 32-bits Windows en voor het delen van bestanden op een lokaal netwerk. Paradox-tabellen op een gedeelde schijf zijn afhankelijk van lockbestanden en van BDE-instellingen die op elke pc identiek moeten zijn, en als één machine het verkeerd heeft, kunnen tabellen en indexen beschadigd raken. Elke nieuwe pc en elke overstap naar een nieuwe Windows-versie is weer een installatie die met de hand moet worden ingericht.

  1. Windows 10Einde van de ondersteuning door Microsoft

Wat we overzetten

Het programma en de gegevensbestanden waarvan het afhangt, in welke staat ze ook zijn.

  • Formulieren en datagebonden besturingselementen

    Formulieren uit .dfm-bestanden met TDBGrid, TDBEdit, TDBLookupComboBox en hoofd- en detailweergaven. Ze worden webpagina's met dezelfde velden en dezelfde werkvolgorde.

  • Gegevens in Paradox, dBase en InterBase

    Tabellen die via de BDE worden gelezen, of databases zoals InterBase, Firebird, SQL Server en Oracle. We zetten de gegevens over naar SQL Server of MySQL en behouden sleutels, indexen en relaties.

  • Datamodules en bedrijfslogica

    Code in TDataModule-units, in dataset-events zoals BeforePost en OnCalcFields, en in berekende velden en opzoekvelden. Wij brengen die regels samen in services op de server.

  • Rapporten

    Lay-outs in QuickReport, ReportBuilder, Rave Reports of FastReport, ook die met code in hun events. Ze worden pdf-documenten met dezelfde inhoud.

  • Componenten van derden

    Grids, editors en hulpmiddelen uit pakketten zoals DevExpress, TMS, InfoPower of RxLib, vaak gebonden aan één Delphi-release. We kijken welke functies daarvan het programma echt gebruikt.

  • Import, export en geplande taken

    Uitwisseling van tekst- en csv-bestanden met andere systemen, exports voor de accountant en programma's die Windows Taakplanner start. Ze worden geplande taken op de server.

Hoe de webversie eruitziet

Illustratief voorbeeld, fictieve gegevens

Een voorraadprogramma zoals het er in Delphi onder Windows XP uit had kunnen zien, en dezelfde gegevens in een webapplicatie.

Sleep de schuifregelaar of gebruik de pijltjestoetsen.

Waar elk onderdeel terechtkomt

In Delphi: Formulieren (.dfm) en units (.pas)
In de webapplicatie: Webpagina's, met de logica op de server
In Delphi: Paradox- of dBase-tabellen via de BDE
In de webapplicatie: SQL Server of MySQL, met sleutels en relaties
In Delphi: Berekende velden en opzoekvelden
In de webapplicatie: Berekeningen en joins in de database of de services
In Delphi: BDE-aliassen en -instellingen op elke pc
In de webapplicatie: Eén verbinding, ingesteld op de server
In Delphi: Lay-outs in QuickReport of FastReport
In de webapplicatie: Pdf-documenten, gemaakt door de server
In Delphi: Een netwerkschijf die alle gebruikers delen
In de webapplicatie: Gelijktijdige toegang, geregeld door de database

Hoe de migratie verloopt

  1. Analyse binnen 48 uur

    U stuurt ons het programma met de gegevensmap (Paradox- of dBase-bestanden, of een databaseback-up), plus de broncode (.dpr, .pas, .dfm) als u die hebt. Binnen 48 uur krijgt u een schriftelijk rapport: wat het programma vandaag doet, waar de risico's zitten, hoe de webversie zou worden opgezet, een vaste prijs voor een pilotmodule en een raming voor de rest. Het is gratis en verplicht u tot niets.

  2. Pilotmodule

    We bouwen één deel van de applicatie op een kopie van uw echte gegevens, meestal het deel dat het meest wordt gebruikt. Uw medewerkers werken er dagelijks mee voordat u over de rest beslist.

  3. Dezelfde gegevens, dezelfde uitkomsten

    We voeren dezelfde records door het Delphi-programma en de nieuwe applicatie en vergelijken voorraden, totalen en afgedrukte documenten. Elke bedrijfsregel die we vinden, wordt ook een geautomatiseerde test die vóór elke latere release opnieuw draait. U ontvangt een rapport met de uitkomst van elke controle.

  4. 30 dagen parallel

    Als de volledige applicatie klaar is, blijft het Delphi-programma er 30 dagen naast in gebruik. Elk verschil komt aan het licht terwijl het oude programma er nog is, en wij lossen het op binnen de afgesproken prijs.

Veelvoorkomende valkuilen, en hoe we ze aanpakken

  1. Hoe de BDE en Paradox zich gedragen

    Paradox-tabellen zijn afhankelijk van lockbestanden, van een gedeeld controlebestand op het netwerk (PDOXUSRS.NET) en van BDE-instellingen zoals LOCAL SHARE die op elke pc gelijk moeten zijn. Beschadigde indexen en meldingen als „Table is busy” komen vaak voor. Vóór de migratie herstellen we wat te herstellen is en melden we de records die niet leesbaar zijn.

  2. Tekencodering

    De BDE slaat tekst op in een codetabel die de taaldriver van de tabel bepaalt, terwijl Delphi 2009 en later Unicode-strings gebruiken. Letters met accenten en symbolen zijn precies waar een migratie meestal misgaat; daarom controleren we de codering van elke tabel en vergelijken we samen met u voorbeelden van de omgezette tekst.

  3. Logica in dataset-events

    Regels in BeforePost, OnValidate of OnCalcFields draaien ongemerkt telkens wanneer een record wordt opgeslagen of getoond, en wie alleen naar de formulieren kijkt, ziet ze makkelijk over het hoofd. Wij doorzoeken de code op elke event-handler en zetten de regels die ze afdwingen op een rij.

  4. Berekende velden en opzoekvelden

    Velden die alleen in het programma bestaan en niet in de tabellen, verschijnen op het scherm en in rapporten alsof het opgeslagen gegevens zijn. Wij bouwen ze na als berekende waarden en controleren ze tegen de originelen.

  5. Componenten zonder broncode

    Sommige pakketten van derden zijn ooit gekocht als gecompileerde units voor één Delphi-versie. Gebruikt het programma zo'n component voor een berekening in plaats van voor de weergave, dan reconstrueren we het gedrag uit de resultaten en bevestigen we het door beide programma's op dezelfde gegevens te laten draaien.

  6. Datums en getalnotatie

    Datumvelden in Paradox en dBase, jaartallen die lang geleden met twee cijfers zijn ingevoerd en decimaaltekens die afhangen van de landinstellingen van Windows moeten allemaal expliciet worden behandeld wanneer de gegevens naar een SQL-database gaan. We zetten de afwijkingen die we bij de import vinden op een lijst en lossen ze samen met u op.

Prijs en betaling

Analyse

Gratis

schriftelijk, binnen 48 uur

Pilotmodule

€ 1.000–1.500

meestal; 50% bij de start, 50% bij acceptatie

Betalingsvoorwaarden

We vragen 50% bij de start en 50% bij acceptatie. De tweede helft is verschuldigd vóór de livegang en vóór de overdracht van de broncode. Bij grotere projecten volgen de betalingen de afgesproken fases.

De analyse is gratis. Besluit u niet verder te gaan, dan houdt u het rapport en bent u niets verschuldigd.

Prijzen zijn vast en worden schriftelijk vastgelegd voordat we beginnen. Verandert het werk, dan sturen we een nieuwe schriftelijke offerte en gaan we pas verder na uw akkoord.

Bij een volledige migratie streven we naar een prijs die 40 tot 60% onder de gebruikelijke offerte van een bureau ligt. Dat kan omdat we een kleine studio zijn, zonder kantoorpanden en zonder verkoopafdeling.

Prijzen exclusief btw.

De prijs inschatten

Een echte migratie, gecontroleerd met tests

Northwind is de voorbeelddatabase die Microsoft met Access meeleverde, geen klant van ons. We hebben een openbare kopie gemigreerd naar SQLite en PostgreSQL, elke tabel en elke query met geautomatiseerde tests vergeleken met het origineel en op het resultaat een werkende webapplicatie gebouwd. De casestudy geeft de cijfers, het equivalentierapport somt elke controle op.

Northwind is een Access-database, maar voor Delphi volgen we dezelfde aanpak: migreren, de uitkomsten met dezelfde gegevens vergelijken met het origineel en beide programma's naast elkaar laten draaien.

Equivalentierapport (in het Engels) · Klikbare preview en voorbeeldanalyse (demo)

Veelgestelde vragen

Ons Delphi-programma gebruikt Paradox-tabellen op een netwerkschijf. Kunt u de gegevens migreren?

Ja. We lezen de Paradox- of dBase-bestanden rechtstreeks, zetten ze om naar SQL Server of MySQL en vergelijken aantallen records en totalen voor en na. Beschadigde records melden we u; ze verdwijnen niet stilletjes.

Kunnen we niet gewoon overstappen op een nieuwere Delphi-versie?

Dat kan, en voor sommige programma's is het de verstandige keuze: de applicatie blijft een Windows-programma, FireDAC vervangt de BDE en de code wordt bijgewerkt. Hebt u toegang vanuit elke browser nodig, zonder installatie op elke pc, dan past een webapplicatie beter. Als beide zinvol zijn, vergelijken we ze in de analyse.

We hebben de broncode niet. Is dat een probleem?

Niet per se. We kunnen uitgaan van het programma zoals het in gebruik is, de gegevensbestanden en opnamen van hoe mensen ermee werken. Met de broncode wordt de analyse nauwkeuriger, en waar informatie ontbreekt, zeggen we dat.

Met welke Delphi-versies werkt u?

Met programma's uit alle versies, van de vroege Borland-releases uit de jaren negentig tot de huidige versies van Embarcadero. De versie doet er vooral toe voor de verwerking van tekst en voor de beschikbare componenten; we vermelden haar in de analyse.

Kan de webapplicatie onze Firebird- of InterBase-database blijven gebruiken?

Ja, als andere programma's er nog van afhangen. De webapplicatie maakt dan verbinding met dezelfde database; een andere database kan later volgen, of helemaal niet.

Wat gebeurt er tijdens de 30 dagen parallel draaien?

Uw medewerkers houden het Delphi-programma bij de hand terwijl ze in de nieuwe applicatie werken, zodat ze de uitkomsten op echt werk kunnen controleren. Elk verschil dat we in die periode vinden, lossen we op binnen de afgesproken prijs.

Contact

Kies het kanaal dat u het beste uitkomt. We antwoorden binnen één werkdag per e‑mail, in het Nederlands.

Per e‑mail

riccardo@modernizestudio.com
Stuur een e‑mail

Stuur ons het programma en de gegevensmap, desgewenst met testgegevens, of een korte beschrijving van wat het doet. U krijgt binnen één werkdag antwoord.

Stuur ons uw bestand

Is het programma gemaakt in Access, Excel, VB6, Delphi of een oudere versie van .NET? Dan ontvangt u binnen 48 uur na het versturen van het bestand een gratis schriftelijke analyse.

  1. Maak een kopie van het bestand, desgewenst met testgegevens.
  2. Voeg die toe aan het formulier of aan een e‑mail, bij voorkeur als archief met een wachtwoord dat u apart stuurt. Op verzoek tekenen we eerst een geheimhoudingsovereenkomst.
  3. Binnen 48 uur: de analyse en een vaste prijs voor een pilotmodule.

Wij werken vanuit Italië.

Stuur een bericht

Optioneel. Een database, een Excel-werkmap, schermafbeeldingen of een programma van eisen, tot 10 MB. Zet voor grotere bestanden een downloadlink in het bericht.

Mail ons

De knop opent uw e‑mailprogramma met het bericht al ingevuld. Er wordt niets verstuurd totdat u daar op Verzenden klikt.

Mail ons