Compartir a través de


Arquitectura de las personalizaciones de nivel de documento

Visual Studio 2010 incluye proyectos para crear personalizaciones de nivel de documento en Microsoft Office Word y Microsoft Office Excel. En este tema, se describen los aspectos siguientes de las personalizaciones de nivel de documento:

  • Introducción a las personalizaciones

  • Componentes de las personalizaciones

  • Cómo funcionan las personalizaciones con las aplicaciones de Microsoft Office

Se aplica a: la información de este tema se aplica a los proyectos de nivel de documento para las siguientes aplicaciones: Excel 2007 y Excel 2010; Word 2007 y Word 2010. 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 personalizaciones de nivel de documento, vea Información general sobre el desarrollo de soluciones de Office, Introducción a la programación de personalizaciones de nivel de documento para Word e Introducción a la programación de personalizaciones de nivel de documento para Excel.

Introducción a las personalizaciones

Cuando se usan las herramientas de desarrollo de Office en Visual Studio para compilar una personalización de nivel de documento, se crea un ensamblado de código administrado que está asociado a un documento concreto. De los documentos o libros que tienen un ensamblado vinculado se dice que tienen extensiones de código administrado. Para obtener más información, vea Información general sobre los ensamblados en las soluciones de Office.

Cuando un usuario abre el documento, la aplicación de Microsoft Office carga el ensamblado. Una vez cargado el ensamblado, la personalización puede responder a los eventos mientras el documento está abierto. La personalización también puede llamar al modelo de objetos para automatizar y extender la aplicación mientras el documento está abierto 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 un usuario abre varias personalizaciones de nivel de documento a la vez, cada ensamblado se cargará en un dominio de aplicación diferente. Esto significa que una solución que manifiesta un comportamiento incorrecto no provoca errores en otras soluciones. Las personalizaciones de nivel de documento están diseñadas para trabajar con un único documento en un único dominio de aplicación. No están diseñados para la comunicación entre documentos. Para obtener más información sobre dominios de aplicación, vea Dominios de aplicación.

Nota

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

Experiencias en tiempo de diseño y en tiempo de ejecución

Comprender la arquitectura de las personalizaciones de nivel de documento ayuda a entender la experiencia que supone diseñar y ejecutar una solución.

Tiempo de diseño

La experiencia en tiempo de diseño incluye los pasos siguientes:

  1. El desarrollador crea un proyecto de nivel de documento en Visual Studio. El proyecto incluye el documento y el ensamblado que se ejecuta en el documento. Puede utilizarse un documento existente (posiblemente creado por un diseñador) o puede crearse un documento junto con el proyecto.

  2. El diseñador (ya sea el desarrollador que crea el proyecto o cualquier otro profesional) define la apariencia y el estilo finales del documento para el usuario final.

Tiempo de ejecución

La experiencia en tiempo de ejecución incluye los pasos siguientes:

  1. El usuario final abre un documento o libro que tiene extensiones de código administrado.

  2. El documento o el libro carga el ensamblado compilado.

  3. El ensamblado responde a los eventos cuando el usuario trabaja en el documento o libro.

Comparación de las perspectivas del desarrollador y el usuario final

Dado que el programador trabaja principalmente en Visual Studio y el usuario final trabaja en Word o Excel, hay dos maneras de entender las personalizaciones de nivel de documento.

Perspectiva del desarrollador

Perspectiva del usuario final

Mediante el uso de Visual Studio, el desarrollador escribe código que es accesible tanto para Word como para Excel.

Aunque pudiera parecer que el desarrollador está creando un archivo ejecutable que ejecuta Word o Excel, el proceso funciona realmente al contrario. El documento se asocia a un ensamblado y contiene un puntero a dicho ensamblado. Cuando el documento se abre, Word o Excel buscan el ensamblado y ejecutan el código en respuesta a todos los eventos controlados.

Las personas que utilizan la solución se limitan a abrir el documento o el libro (o a crear un nuevo documento a partir de una plantilla) del mismo modo que abrirían cualquier otro archivo de Microsoft Office.

El ensamblado aporta personalizaciones al documento o al libro como, por ejemplo, rellenar uno u otro con los datos actuales o mostrar un cuadro de diálogo para solicitar información.

Formatos de documento admitidos para las personalizaciones de nivel de documento

Cuando crea un proyecto de personalización, puede elegir el formato del documento que desea utilizar en el proyecto. Para obtener más información, vea Cómo: Crear proyectos de Office en Visual Studio.

En la tabla siguiente figuran los formatos de documento que se pueden utilizar en las personalizaciones de nivel de documento para Excel y Word.

Excel

Word

Libro de Excel (.xlsx)

Libro de Excel habilitado para macros (.xlsm)

Libro binario de Excel (.xlsb)

Libro de Excel 97-2003 (.xls)

Plantilla de Excel (.xltx)

Plantilla de Excel habilitada para macros (.xltm)

Plantilla de Excel 97-2003 (.xlt)

Documento de Word (.docx)

Documento de Word habilitado para macros (.docm)

Documento de Word 97-2003 (.doc)

Plantilla de Word (.dotx)

Plantilla de Word habilitada para macros (.dotm)

Plantilla de Word 97-2003 (.dot)

Debe diseñar extensiones de código administrado sólo para documentos que tengan el formato admitido. De lo contrario, no se podrían provocar ciertos eventos al abrirse el documento en la aplicación. Por ejemplo, el evento Open no se provoca cuando se utilizan extensiones de código administrado con libros guardados en formato de hoja de cálculo XML de Excel o en formato de página web (.htm; .html).

Compatibilidad con documentos de Word que tienen extensiones de nombre de archivo .xml

Las plantillas de proyecto de nivel de documento no permiten crear proyectos basados en los formatos de archivo siguientes:

  • Documento XML de Word (*xml).

  • Documento XML de Word 2003 (*xml).

Si desea que los usuarios finales utilicen las personalizaciones en estos formatos de archivo, genere e implemente una personalización que utilice uno de los formatos de archivo compatibles especificados en la tabla anterior. Después de instalar la personalización, los usuarios finales pueden guardar el documento con el formato Documento XML de Word (*xml) o el formato Documento XML de Word 2003 (*xml), y la personalización continuará funcionando del modo esperado.

Componentes de las personalizaciones

Los componentes principales de una personalización son el documento y el ensamblado. Además de estos componentes, hay otros elementos que representan un papel importante en el modo en que las aplicaciones de Microsoft Office detectan y cargan las personalizaciones.

Manifiesto de implementación y manifiesto de aplicación

Las personalizaciones utilizan manifiestos de implementación y manifiestos de aplicación para identificar y cargar la versión más reciente del ensamblado de personalización. El manifiesto de implementación apunta al manifiesto de la aplicación actual. El manifiesto de aplicación señala al ensamblado de personalización y especifica la clase (o clases) de punto de entrada que se van a ejecutar en el ensamblado. Para obtener más información, vea 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 las personalizaciones de nivel de documento creadas con las herramientas de desarrollo de Office en Visual Studio, los equipos de los usuarios finales deben tener instalado el Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office. El Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office incluye componentes no administrados que cargan el ensamblado de personalización además de un conjunto de ensamblados administrados. Estos ensamblados administrados proporcionan el modelo de objetos que utiliza el código de la personalización 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 las personalizaciones con las aplicaciones de Microsoft Office

Cuando un usuario abre un documento que forma parte de una personalización de Microsoft Office, la aplicación utiliza el manifiesto de implementación vinculado al documento para buscar y cargar la versión más reciente del ensamblado de personalización. La ubicación del manifiesto de implementación está almacenada en una propiedad de documento personalizada denominada _AssemblyLocation. La cadena que identifica esta ubicación se inserta en la propiedad cuando se genera la solución.

El manifiesto de implementación señala al manifiesto de aplicación, que apunta al ensamblado más reciente. Para obtener más información, consulte Manifiestos de implementación y aplicación en soluciones de Office.

En la ilustración siguiente, se muestra la arquitectura básica de una personalización de nivel de documento.

Arquitectura de la personalización

Arquitectura de personalización 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

Se producen los pasos siguientes cuando un usuario abre un documento que forma parte de una solución de Microsoft Office:

  1. La aplicación de Microsoft Office comprueba las propiedades de documento personalizadas para ver si son extensiones de código administrado asociadas al documento. Para obtener más información, consulte Información general sobre propiedades personalizadas del documento.

  2. Si hay extensiones de código administrado, 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. Si el documento se abre desde una ubicación distinta del equipo local, el Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office comprueba que la ubicación del documento está en la lista Ubicaciones de confianza de Configuración del Centro de confianza de esa aplicación de Office en particular. Si la ubicación del documento no es una ubicación de confianza, no se confía en la personalización y el proceso de carga se detiene en ese punto.

  5. El Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office instala la solución si aún no se ha instalado, descarga los manifiestos de aplicación e implementación más recientes y 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 la personalización 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 personalización.

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

  9. El Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office llama al controlador de eventos Startup en el ensamblado de personalización. Para obtener más información, vea Eventos de los proyectos de Office.

Vea también

Conceptos

Arquitectura de los complementos de nivel de aplicación

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

Información general sobre propiedades personalizadas del documento

Datos almacenados en caché en las personalizaciones de nivel de documento

Otros recursos

Arquitectura de las soluciones de Office en Visual Studio

Asegurar las soluciones de Office

Diseñar y crear soluciones de Office