Early Binding es un método en el que el tipo de objeto se conoce en el momento de la compilación. Especificamos un tipo concreto al declarar la variable:
Dim app As New Excel.Application ' Early Binding
Ventajas:
Late Binding es cuando el tipo de objeto se determina solo en tiempo de ejecución. Normalmente se usa a través de Object:
Dim app As Object Set app = CreateObject("Excel.Application") app.Visible = True
Ventajas:
Desventajas del late binding:
¿Siempre tiene sentido usar late binding para trabajar con objetos COM?
Respuesta: No, solo si no estás seguro de la presencia de la versión de biblioteca requerida en todas las computadoras de destino. Si el control de versiones es seguro y todas las dependencias son conocidas, el early binding es más rápido, confiable y preferible. El uso injustificado de late binding degrada el rendimiento y el trabajo con la tipificación estática.
Historia
Automatización de informes a través de Excel: debido al late binding se detectó un error en el nombre del método solo en el cliente, cuando el macro "falló" (error tipográfico en
app.WorkbooksOpenen lugar deapp.Workbooks.Open). Si se hubiera utilizado early binding, el error se habría manifestado de inmediato.
Historia
Al migrar de la antigua a la nueva versión de la biblioteca Word, la aplicación comenzó a lanzar excepciones: no se admitían nuevos campos. El early binding bloqueó la actualización; tuvimos que pasar al late binding, pero algunas funciones dejaron de trabajar debido a la coherencia de las firmas.
Historia
La biblioteca lista se entregó a producción, pero se olvidó la dependencia COM necesaria. Con early binding el proyecto no se ejecutaba en absoluto (error de registro), mientras que con late binding funcionaba, pero "fallaba" en cada llamada al objeto, requiriendo registros adicionales.