Early Binding è un metodo in cui il tipo di oggetto è noto durante la compilazione. Indichiamo un tipo specifico durante la dichiarazione della variabile:
Dim app As New Excel.Application ' Early Binding
Vantaggi:
Late Binding è un metodo in cui il tipo di oggetto è determinato solo durante l'esecuzione. Di solito viene utilizzato tramite Object:
Dim app As Object Set app = CreateObject("Excel.Application") app.Visible = True
Vantaggi:
Svantaggi del late binding:
Ha sempre senso utilizzare il late binding per lavorare con oggetti COM?
Risposta: No, solo se non si è certi della presenza della versione necessaria della libreria su tutti i computer di destinazione. Se il controllo delle versioni è sicuro e tutte le dipendenze sono note, l'early binding è più veloce, affidabile e preferibile. L'uso ingiustificato del late binding riduce le prestazioni e il lavoro con la tipizzazione statica.
Storia
Automazione della reportistica tramite Excel: a causa del late binding abbiamo scoperto un errore nel nome del metodo solo dal cliente, quando il macro "si è rotto" (errore di battitura in
app.WorkbooksOpeninvece diapp.Workbooks.Open). Se avessimo usato l'early binding, l'errore si sarebbe manifestato subito.
Storia
Durante la migrazione da una vecchia a una nuova versione della libreria Word, l'app ha iniziato a lanciare eccezioni — nuovi campi non erano supportati. L'early binding bloccava l'aggiornamento; è stato necessario passare al late binding, ma parte delle funzioni ha smesso di funzionare a causa della corrispondenza delle firme.
Storia
Una libreria pronta è stata consegnata in produzione, ma è stata dimenticata la dipendenza COM necessaria. Con l'early binding il progetto non partiva affatto (errore di registrazione), mentre con il late binding funzionava, ma "crollava" a ogni chiamata dell'oggetto, richiedendo log aggiuntivi.