Modernize Studio
Taal: Nederlands
Mail ons

Visual Basic 6-applicaties, gemigreerd naar het web

In veel bedrijven verwerken Visual Basic 6-programma's nog steeds orders, productie, afspraken en boekhouding, meer dan vijfentwintig jaar na de laatste versie. Wij migreren ze naar webapplicaties in C#, met behoud van de gegevens en de bedrijfsregels, met of zonder de oorspronkelijke broncode.

Waarom nu

Microsoft stopte op 08/04/2008 met de ondersteuning van de ontwikkelomgeving van Visual Basic 6. De runtime wordt nog met Windows meegeleverd en blijft ondersteund zolang de Windows-versies waarin hij zit, waaronder Windows 11, worden ondersteund, maar alleen als 32-bits onderdeel en alleen bij ernstige regressies en kritieke beveiligingsproblemen. Besturingselementen die geen deel uitmaken van Windows, zoals MSCOMCTL.OCX, MSFLXGRD.OCX en bijna elke OCX van derden, moeten met de applicatie worden geïnstalleerd en vallen niet onder Microsoft.

In de praktijk zit de moeilijkheid bij mensen en hulpmiddelen. Microsoft ondersteunt de IDE niet op 64-bits Windows, er zijn elk jaar minder ontwikkelaars die VB6 kennen, en elke vervangende pc betekent weer een installatie met componenten die met de hand worden geregistreerd.

  1. Ontwikkelomgeving Visual Basic 6Einde van de ondersteuning door Microsoft
  2. Windows 10Einde van de ondersteuning door Microsoft

Wat we overzetten

Het hele programma, ook alles waarvan het buiten de eigen code afhangt.

  • Formulieren en besturingselementen

    Vensters met tekstvakken, keuzelijsten, grids, tabbladen en besturingselementmatrices, waaronder MSFlexGrid, ListView en TreeView. Ze worden webpagina's met de indeling die mensen gewend zijn.

  • Logica in modules en klassen

    Berekeningen, controles en procedures, verspreid over .bas- en .cls-bestanden en formulierevents. We brengen ze onder in services op de server, gedekt door tests.

  • Gegevenstoegang

    DAO-, RDO- en ADO-code die werkt met Access, SQL Server, Oracle of andere databases, inclusief SQL die door tekst aan elkaar te plakken is opgebouwd. De gegevens gaan naar SQL Server of MySQL, of blijven waar ze zijn als andere systemen ervan afhangen.

  • Rapporten en afdrukken

    Crystal Reports, DataReport en afdrukken die regel voor regel met het Printer-object worden getekend. Elk ervan wordt een pdf-document met dezelfde inhoud.

  • COM-componenten en DLL's

    Zelfgeschreven ActiveX-DLL's, componenten van derden en Windows API-aanroepen via Declare. We brengen ze allemaal in kaart en bepalen of ze worden vervangen, herschreven of niet meer nodig zijn.

  • Bestanden, instellingen en apparaten

    Configuratie in INI-bestanden of het register, imports uit tekstbestanden, en verbindingen met weegschalen, etikettenprinters of seriële apparaten via MSComm. We controleren welke daarvan nog iets lokaal geïnstalleerd nodig hebben.

Hoe de webversie eruitziet

Illustratief voorbeeld, fictieve gegevens

Een afsprakenboek zoals het er in een VB6-programma op de pc van de receptie uit had kunnen zien, en dezelfde week in de browser.

Sleep de schuifregelaar of gebruik de pijltjestoetsen.

Waar elk onderdeel terechtkomt

In VB6: Formulieren (.frm) en hun events
In de webapplicatie: Webpagina's, met de logica op de server
In VB6: Modules (.bas) en klassen (.cls)
In de webapplicatie: C#-services, gedekt door geautomatiseerde tests
In VB6: OCX-besturingselementen, op elke pc geregistreerd
In de webapplicatie: Standaard webcomponenten, niets te installeren
In VB6: ADO- of DAO-recordsets
In de webapplicatie: Geparametriseerde query's op SQL Server of MySQL
In VB6: Crystal Reports of DataReport
In de webapplicatie: Pdf-documenten, gemaakt door de server
In VB6: Een installatiepakket voor elke werkplek
In de webapplicatie: Eén adres, geopend in de browser

Hoe de migratie verloopt

  1. Analyse binnen 48 uur

    U stuurt ons het geïnstalleerde programma en de database, plus de broncode (.vbp, .frm, .bas, .cls) 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 leggen vast wat het VB6-programma oplevert voor een reeks echte gevallen, zoals prijzen, totalen en gegenereerde documenten, en controleren de nieuwe applicatie tegen die uitkomsten. 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 VB6-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. Afhankelijkheden van OCX en ActiveX

    Veel VB6-programma's leunen op besturingselementen die niet met Windows worden meegeleverd, soms van leveranciers die niet meer bestaan, en Microsoft noemt bestanden als GRID32.OCX en THREED32.OCX uitdrukkelijk niet ondersteund. De analyse somt elke afhankelijkheid op, wat die in het programma doet en wat ervoor in de plaats komt.

  2. Variant, standaardeigenschappen en stille conversies

    VB6 zet ongemerkt om tussen tekst, getallen en datums, en een regel als Text1 = rs!Total leunt op standaardeigenschappen. Een letterlijke vertaling naar C# of VB.NET gedraagt zich anders in randgevallen, bijvoorbeeld bij lege velden of datums in een andere landnotatie. Wij herschrijven die plekken weloverwogen en dekken ze af met tests.

  3. On Error Resume Next

    Dit komt veel voor in VB6-code: het verbergt fouten en laat het programma doorgaan met half opgeslagen gegevens. Waar we het tegenkomen, zoeken we uit wat de oorspronkelijke auteur wilde voorkomen en handelen we dat geval expliciet af. Anders zou de nieuwe applicatie ofwel met een foutmelding stoppen, ofwel dezelfde stille fouten herhalen.

  4. 16-bits Integer en afronding

    Een Integer in VB6 houdt op bij 32.767, de oorzaak van veel overflowfouten zodra een tabel groeit. Currency bewaart vier decimalen en Round rondt af volgens de bankiersregel. Wij bouwen de afronding na die het bedrijf verwacht en geven aan waar het oude programma het fout deed.

  5. SQL opgebouwd door tekst aan elkaar te plakken

    Query's die met & worden samengesteld uit wat de gebruiker intypt, zijn kwetsbaar voor SQL-injectie en lopen vast op namen met een apostrof. In de nieuwe applicatie gebruikt elke query parameters.

  6. Ontbrekende of verouderde broncode

    Soms is de broncode kwijt, of komt de bewaarde kopie niet overeen met het programma dat in gebruik is. Een gecompileerd VB6-programma is niet terug te zetten in betrouwbare broncode, dus gaan we uit van het draaiende programma, de database en de schermen, en vermeldt de analyse welke delen meer onzekerheid hebben.

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 Visual Basic 6 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

We hebben de broncode niet. Kunt u het programma toch migreren?

Vaak wel. We gaan uit van het programma zoals het in gebruik is, de database en schermafbeeldingen of opnamen van hoe mensen ermee werken. In de analyse staat welke delen we met zekerheid kunnen nabouwen en waarvoor we uw input nodig hebben.

Waarom de code niet automatisch omzetten naar VB.NET of C#?

Conversietools leveren code op die compileert, maar die de desktopstructuur behoudt, vaak afhangt van compatibiliteitsbibliotheken en de oude problemen meeneemt. Voor een webapplicatie bouwen we de schermen opnieuw en zetten we de logica over, met de VB6-code als specificatie van wat het programma doet.

Werkt ons VB6-programma straks niet meer op Windows 11?

Niet uit zichzelf: Microsoft ondersteunt de VB6-runtime op Windows 11. Wat vaak misgaat, is alles eromheen, zoals niet-geregistreerde OCX-bestanden, verloren installatiepakketten, oude databasedrivers en de IDE, die Microsoft niet ondersteunt op 64-bits Windows.

Ons programma communiceert met een weegschaal of etikettenprinter. Kan een webapplicatie dat ook?

Meestal wel, maar dat is het ene onderdeel waarvoor misschien een klein programma nodig is op de pc die met het apparaat is verbonden. We controleren dat tijdens de analyse en nemen het mee in de prijs.

Kunnen we één onderdeel tegelijk migreren?

Ja. De pilotmodule is het eerste onderdeel, en de rest kan in fasen volgen. Waar mogelijk delen het VB6-programma en de webapplicatie tijdens de overgang dezelfde database.

In welke taal wordt de nieuwe applicatie geschreven?

Meestal in C# met ASP.NET Core, dat elke .NET-ontwikkelaar kan onderhouden. PHP met MySQL is een optie als uw IT-leverancier daarmee werkt.

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 database, 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