Early Binding — c'est une méthode où le type d'objet est connu au moment de la compilation. Nous spécifions le type exact lors de la déclaration de la variable :
Dim app As New Excel.Application ' Early Binding
Avantages :
Late Binding — le type d'objet est déterminé uniquement au moment de l'exécution. Il est généralement utilisé via Object :
Dim app As Object Set app = CreateObject("Excel.Application") app.Visible = True
Avantages :
Inconvénients du late binding :
Est-il toujours judicieux d'utiliser le late binding pour travailler avec des objets COM ?
Réponse : Non, seulement si vous n'êtes pas sûr de la présence de la version de bibliothèque requise sur tous les ordinateurs cibles. Si le contrôle des versions est sécurisé et que toutes les dépendances sont connues — le early binding est plus rapide, plus fiable et préférable. L'utilisation injustifiée du late binding dégrade les performances et le fonctionnement du typage statique.
Histoire
Automatisation des rapports via Excel : en raison du late binding, une erreur dans le nom de la méthode a été détectée uniquement chez le client, lorsque le macro s'est "cassé" (faute de frappe dans
app.WorkbooksOpenau lieu deapp.Workbooks.Open). Si nous avions utilisé le early binding, l'erreur se serait manifestée immédiatement.
Histoire
Lors de la migration d'une ancienne à une nouvelle version de la bibliothèque Word, l'application a commencé à lancer des exceptions — de nouveaux champs n'étaient pas pris en charge. Le early binding bloquait la mise à jour ; il a fallu passer au late binding, mais certaines fonctions ont cessé de fonctionner en raison des incohérences dans les signatures.
Histoire
Une bibliothèque prête a été livrée en production, mais la dépendance COM nécessaire a été oubliée. Avec le early binding, le projet ne s'est pas du tout lancé (erreur d'enregistrement), tandis qu'avec le late binding — il fonctionnait, mais tombait à chaque appel d'objet, nécessitant des journaux supplémentaires.