Arquitectura de los complementos de nivel de aplicación

Los complementos que se crean con las herramientas de desarrollo de Office en Visual Studio tienen unas características arquitectónicas que ponen de manifiesto la estabilidad y seguridad y que les permiten funcionar en gran medida con Microsoft Office. En este tema se describen los aspectos siguientes de los complementos:

  • Introducción a los complementos

  • Componentes de los complementos

  • Cómo funcionan los complementos con las aplicaciones de Microsoft Office

Se aplica a: la información de este tema se aplica a los proyectos de nivel de aplicación para Microsoft Office 2010 y 2007 Microsoft Office System. Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto de Office.

Para obtener información general sobre cómo crear complementos, vea Información general sobre el desarrollo de soluciones de Office e Introducción a la programación de complementos de nivel de aplicación.

Introducción a los complementos

Cuando se usan las herramientas de desarrollo de Office en Visual Studio para compilar un complemento, se crea un ensamblado de código administrado que una aplicación de Microsoft Office va a cargar. Una vez que se ha cargado el ensamblado, el complemento puede responder a los eventos que se inician en la aplicación (por ejemplo, cuando un usuario hace clic en un elemento de menú). El complemento también puede realizar una llamada en el modelo de objetos para automatizar y extender la aplicación, y puede utilizar cualquiera de las clases de .NET Framework.

El ensamblado se comunica con los componentes COM de la aplicación a través del ensamblado de interoperabilidad primario de la aplicación. Para obtener más información, vea Ensamblados de interoperabilidad primarios de Office e Información general sobre el desarrollo de soluciones de Office.

Si hay varios complementos instalados para una aplicación, cada complemento se carga en un dominio de aplicación diferente. Esto significa que un complemento que se comporta incorrectamente no puede provocar errores en otros complementos. También contribuye a garantizar que, cuando se cierra la aplicación, todos los ensamblados de complemento se descargan de la memoria. Para obtener más información sobre dominios de aplicación, vea Dominios de aplicación.

Nota

Los complementos que se crean con las herramientas de desarrollo de Office en Visual Studio están diseñados de modo que se usen solamente cuando la aplicación host de Microsoft Office la inicia un usuario final. Si se inicia la aplicación mediante programación (por ejemplo, utilizando Automatización), es posible que el complemento no funcione según lo previsto.

Componentes de los complementos

Aunque el ensamblado de complemento es el componente principal, hay algunos otros componentes que representan un papel importante en el modo en que Microsoft Office detecta las aplicaciones y carga los complementos.

Entradas del Registro

Para detectar los complementos, las aplicaciones de Microsoft Office buscan un conjunto de entradas del Registro. Para obtener una lista completa de las entradas del Registro que utilizan los complementos, vea Entradas del Registro de complementos de nivel de aplicación.

Cuando se compila una solución, Visual Studio crea todas las entradas del Registro necesarias en el equipo de desarrollo para que se pueda depurar y ejecutar el complemento. Para obtener más información, vea Información general acerca del proceso de compilación de soluciones de Office.

Si se utiliza ClickOnce para implementar la solución, el programa de instalación generado por el proceso de publicación crea automáticamente las claves del Registro en el equipo del usuario final. Para obtener más información, vea Publicar soluciones de Office.

Manifiesto de implementación y manifiesto de aplicación

Los complementos utilizan manifiestos de implementación y manifiestos de aplicación para identificar y cargar la versión más reciente del ensamblado de complemento. El manifiesto de implementación apunta al manifiesto de la aplicación actual. El manifiesto de aplicación señala al ensamblado de complemento y especifica la clase de punto de entrada que se va a ejecutar en el ensamblado. Para obtener más información, consulte Manifiestos de implementación y aplicación en soluciones de Office.

Motor en tiempo de ejecución de Visual Studio Tools para Office

Para poder ejecutar complementos creados con las herramientas para desarrolladores de Office en Visual Studio, los equipos de los usuarios finales deben tener instalado Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office. El runtime incluye componentes no administrados y un conjunto de ensamblados administrados. Los componentes no administrados cargan el ensamblado de complemento. Los ensamblados administrados proporcionan el modelo de objetos que utiliza el código del complemento para automatizar y extender la aplicación host.

Para obtener más información, vea Información general sobre el Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office.

Cómo funcionan los complementos con las aplicaciones de Microsoft Office

Cuando un usuario inicia una aplicación de Microsoft Office, la aplicación utiliza el manifiesto de implementación y el manifiesto de aplicación para buscar y cargar la versión más reciente del ensamblado de complemento. En la ilustración siguiente se muestra la arquitectura básica de estos complementos.

Arquitectura de complementos

Arquitectura de complementos de Office 2007

Nota

En las soluciones de Office destinadas a .NET Framework 4, las soluciones llaman al modelo de objetos de la aplicación host utilizando la información de tipo de PIA que está incrustada en el ensamblado de la solución en lugar de llamar directamente al PIA. Para obtener más información, vea Diseñar y crear soluciones de Office.

Proceso de carga

Los siguientes pasos tienen lugar cuando un usuario inicia una aplicación:

  1. La aplicación comprueba si el Registro contiene entradas que identifican complementos que se crearon con las herramientas de desarrollo de Office en Visual Studio.

  2. Si la aplicación encuentra estas entradas del Registro, la aplicación carga VSTOEE.dll, que, a su vez, carga VSTOLoader.dll. Se trata de archivos DLL no administrados que son los componentes del cargador del Visual Studio 2010 Tools para Office Runtime. Para obtener más información, consulte Información general sobre el Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office.

  3. VSTOLoader.dll carga .NET Framework e inicia la parte administrada del Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office.

  4. El Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office busca actualizaciones de los manifiestos y descarga las versiones más recientes de los manifiestos de aplicación e implementación.

  5. El Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office realiza una serie de comprobaciones de seguridad. Para obtener más información, vea Asegurar las soluciones de Office.

  6. Si se confía en el complemento para que se ejecute, el Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office utiliza los manifiestos de implementación y aplicación para buscar actualizaciones del ensamblado. Si una nueva versión del ensamblado está disponible, el motor en tiempo de ejecución descarga la nueva versión del ensamblado en la memoria caché de ClickOnce del equipo cliente. Para obtener más información, vea Implementar soluciones de Office.

  7. El Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office crea un nuevo dominio de aplicación en el que se va a cargar el ensamblado de complemento.

  8. El Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office carga dicho ensamblado en el dominio de aplicación.

  9. El Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office llama al método RequestComAddInAutomationService del complemento, si se ha reemplazado.

    Si lo desea, puede invalidar este método para exponer un objeto del complemento a otras soluciones de Microsoft Office. Para obtener más información, vea Llamar a código en complementos de nivel de aplicación desde otras soluciones de Office.

  10. El Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office llama al método RequestService del complemento, si se ha reemplazado.

    Si lo desea, puede reemplazar este método para extender una característica de Microsoft Office; para ello, debe devolver un objeto que implemente una interfaz de extensibilidad. Para obtener más información, vea Personalizar características de la interfaz de usuario mediante interfaces de extensibilidad.

    Nota

    El Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office realiza llamadas independientes al método RequestService para cada interfaz de extensibilidad admitida por la aplicación host. Aunque la primera llamada al método RequestService normalmente se produce antes de la llamada al método ThisAddIn_Startup, el complemento no debería tener ninguna idea preconcebida acerca de cuándo o cuántas veces se llamará al método RequestService.

  11. El Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office llama al método ThisAddIn_Startup del complemento. Este método es el controlador de eventos predeterminado del evento Startup. Para obtener más información, vea Eventos de los proyectos de Office.

Vea también

Conceptos

Arquitectura de las personalizaciones de nivel de documento

Información general sobre el Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office

Otros recursos

Arquitectura de las soluciones de Office en Visual Studio

Programar complementos de nivel de aplicación

Desarrollar soluciones de Office

Asegurar las soluciones de Office

Implementar soluciones de Office