Early Binding is een manier waarbij het type object tijdens de compilatie bekend is. We geven een specifiek type op bij het declareren van een variabele:
Dim app As New Excel.Application ' Early Binding
Voordelen:
Late Binding is wanneer het type object alleen tijdens runtime wordt bepaald. Wordt meestal gebruikt via Object:
Dim app As Object Set app = CreateObject("Excel.Application") app.Visible = True
Voordelen:
Nadelen van late binding:
Heeft het altijd zin om late binding te gebruiken voor het werken met COM-objecten?
Antwoord: Nee, alleen als je niet zeker bent van de aanwezigheid van de juiste versie van de bibliotheek op alle doelcomputers. Als versiebeheer veilig is en alle afhankelijkheden bekend zijn, is early binding sneller, betrouwbaarder en te verkiezen. Ongerechtvaardigd gebruik van late binding verslechtert de prestaties en het werken met statische typechecking.
Verhaal
Automatisering van rapportage via Excel: door late binding werd een fout in de methodenaam alleen bij de klant ontdekt, toen de macro "kapot ging" (typefout in
app.WorkbooksOpenin plaats vanapp.Workbooks.Open). Als we early binding hadden gebruikt, was de fout onmiddellijk zichtbaar geweest.
Verhaal
Bij de migratie van een oude naar een nieuwe versie van de Word-bibliotheek begon de applicatie fouten te genereren — nieuwe velden werden niet ondersteund. Early binding blokkeerde de update; we moesten overschakelen naar late binding, maar sommige functies werkten niet meer door onjuiste handtekeningen.
Verhaal
Een voltooide bibliotheek werd in productie geleverd, maar de noodzakelijke COM-afhankelijkheid werd vergeten. Bij early binding werd het project helemaal niet uitgevoerd (registratiefout), terwijl het bij late binding werkte, maar "viel" bij elke objectaanroep, wat om extra logging vroeg.