Enlace en tiempo de compilación (vtable) y en tiempo de ejecución (IDispatch)

Los servidores COM de Visual FoxPro admiten el enlace en tiempo de compilación (vtable) además de la interfaz en tiempo de ejecución (IDispatch) existente (juntos se denominan interfaz dual). El enlace describe la manera en que los clientes tienen acceso a las propiedades y métodos de un servidor. El enlace en tiempo de compilación mejora el rendimiento de los controladores de automatización que admiten esta técnica, como Visual Basic y Microsoft Transaction Server. Aunque los servidores de Visual FoxPro admiten ambas interfaces, el cliente es el que determina la que se utiliza.

Enlace en tiempo de compilación

Si el cliente puede detectar en tiempo de compilación a qué objeto pertenece una propiedad o método, puede resolver la referencia al objeto en tiempo de compilación. El ejecutable compilado sólo contiene el código que invoca a las propiedades, métodos y eventos del objeto. Esto se denomina enlace en tiempo de compilación.

Ejemplo: cliente de Visual Basic

Dim xlApp1 As Excel.Application
Set xlApp1 = New Excel.Application

El enlace en tiempo de compilación reduce drásticamente el tiempo necesario para establecer o recuperar el valor de una propiedad, debido a que el tiempo de la llamada puede ser una parte importante del tiempo total. Para las llamadas a métodos, la mejora depende de la cantidad de trabajo que el método realiza. Los más beneficiados son los métodos cortos, en los que el tiempo de la llamada es comparable al tiempo necesario para completar la tarea.

Enlace en tiempo de ejecución

Aunque el enlace en tiempo de ejecución es una manera más lenta de invocar las propiedades y métodos de un objeto, algunas veces es necesario. Por ejemplo, en Visual Basic puede escribir una función que utilice una variable de objeto para actuar en cualquiera de varias clases diferentes de objetos. Como no sabe de antemano qué clase de objeto se asignará a la variable, debe declararla como variable de enlace en tiempo de ejecución mediante el comando DIM As Object de Visual Basic.

Ejemplo: cliente de Visual Basic

Dim xlApp2 As Object
Set xlApp2 = CreateObject("Excel.Application")

Las llamadas de métodos a objetos creados de esta manera pueden ser más lentas que las llamadas de métodos a objetos de enlace en tiempo de compilación, debido a que el cliente debe incluir en el ejecutable compilado el código que determinará en tiempo de ejecución si el servidor tiene o no un método determinado.

Vea también

Compilar código fuente | Escalabilidad y subprocesamiento múltiple | Interoperabilidad e Internet | Bibliotecas de tiempo de ejecución de Visual FoxPro