Architecture des personnalisations au niveau du documentArchitecture of document-level customizations

Visual Studio 2013Visual Studio 2013 comprend des projets pour créer des personnalisations au niveau du document pour Microsoft Office Word et Microsoft Office Excel. includes projects for creating document-level customizations for Microsoft Office Word and Microsoft Office Excel. Cette rubrique décrit les aspects suivants des personnalisations au niveau du document :This topic describes the following aspects of document-level customizations:

Comprendre les personnalisationsUnderstand customizations

Quand vous utilisez les Outils de développement Office dans Visual Studio pour générer une personnalisation au niveau du document, vous créez un assembly de code managé associé à un document spécifique.When you use the Office developer tools in Visual Studio to build a document-level customization, you create a managed code assembly that is associated with a specific document. On dit d’un document ou classeur lié à un assembly qu’il a des extensions de code managé.A document or workbook with a linked assembly is said to have managed code extensions. Pour plus d’informations, consultez conception et créer des solutions Office.For more information, see Design and create Office solutions.

Quand un utilisateur ouvre le document, l’assembly est chargé par l’application Microsoft Office.When a user opens the document, the assembly is loaded by the Microsoft Office application. Une fois l’assembly chargé, la personnalisation peut répondre à des événements pendant que le document est ouvert.After the assembly is loaded, the customization can respond to events while the document is open. La personnalisation peut également exécuter un appel dans le modèle objet pour automatiser et étendre l’application pendant que le document est ouvert, et elle peut utiliser toutes les classes du .NET Framework.NET Framework.The customization can also call into the object model to automate and extend the application while the document is open, and it can use any of the classes in the .NET Framework.NET Framework.

L'assembly communique avec les composants COM de l'application à travers l'assembly PIA (Primary Interop Assembly) de celle-ci.The assembly communicates with the application's COM components through the primary interop assembly of the application. Pour plus d’informations, consultez assemblys PIA Office et présentation du développement de solutions Office (VSTO).For more information, see Office primary interop assemblies and Office solutions development overview (VSTO).

Si un utilisateur ouvre plusieurs personnalisations au niveau du document en même temps, chaque assembly est chargé dans un domaine d’application différent.If a user opens multiple document-level customizations at the same time, each assembly is loaded in a different application domain. Cela signifie qu’une solution dont le comportement est incorrect ne peut pas entraîner l’échec d’autres solutions.This means that one solution that behaves incorrectly cannot cause other solutions to fail. Les personnalisations au niveau du document sont conçues pour fonctionner avec un seul document dans un seul domaine d’application.Document-level customizations are designed to work with a single document in a single application domain. Elles ne sont pas conçues pour la communication entre documents.They are not designed for cross-document communication. Pour plus d’informations sur les domaines d’application, consultez domaines d’Application.For more information about application domains, see Application domains.

Note

Les personnalisations au niveau du document que vous créez à l’aide des Outils de développement Office dans Visual Studio sont conçues pour être utilisées seulement quand l’application est démarrée par un utilisateur final.Document-level customizations that you create by using the Office developer tools in Visual Studio are designed to be used only when the application is started by an end user. Si elle est démarrée par programmation (par exemple à l’aide d’Automation), la personnalisation risque de ne pas fonctionner correctement.If the application is started programmatically, for example, by using Automation, the customization might not work as expected.

Expériences au moment du design et de l’exécutionDesign-time and run-time experiences

Pour comprendre l’architecture des personnalisations au niveau du document, il est utile de comprendre les expériences de conception et d’exécution d’une solution.To understand the architecture of document-level customizations, it helps to understand the experiences of designing a solution and of running a solution.

Moment du designDesign time

L’expérience au moment du design comprend les étapes suivantes :The design-time experience includes the following steps:

  1. Le développeur crée un projet au niveau du document dans Visual StudioVisual Studio.The developer creates a document-level project in Visual StudioVisual Studio. Le projet comprend le document et l’assembly qui s’exécute derrière le document.The project includes the document and the assembly that runs behind the document. Vous pouvez utiliser un document existant (par exemple créé par un concepteur) ou créer un document en même temps que le projet.The document might already exist (perhaps created by a designer), or a new document can be created along with the project.

  2. Le concepteur (le développeur qui crée le projet ou une autre personne) crée l’apparence finale du document pour l’utilisateur final.The designer—either the developer who creates the project or someone else—creates the final look and feel of the document for the end user.

RuntimeRuntime

L’expérience au moment de l’exécution comprend les étapes suivantes :The run-time experience includes the following steps:

  1. L’utilisateur final ouvre un document ou un classeur qui a des extensions de code managé.The end user opens a document or workbook that has managed code extensions.

  2. Le document ou le classeur charge l’assembly compilé.The document or workbook loads the compiled assembly.

  3. L’assembly répond aux événements à mesure que l’utilisateur travaille dans le document ou le classeur.The assembly responds to events as the user works in the document or workbook.

Comparé des perspectives de développeur et l’utilisateur finalDeveloper and end user perspective compared

Étant donné que le développeur travaille principalement dans Visual StudioVisual Studioet l’utilisateur final dans Word ou Excel, il existe deux façons de comprendre les personnalisations au niveau du document.Because the developer works primarily in Visual StudioVisual Studio, and the end user works in Word or Excel, there are two ways of understanding document-level customizations.

Perspective du développeurDeveloper's Perspective Perspective de l’utilisateur finalEnd User's Perspective
À l’aide de Visual StudioVisual Studio, le développeur écrit du code accessible à Word et Excel.Using Visual StudioVisual Studio, the developer writes code that is accessible to Word and Excel.

Bien qu’il puisse sembler que le développeur crée un fichier exécutable qui exécute Word ou Excel, c’est en fait le processus inverse qui se produit.Although it might seem that the developer is creating an executable file that runs Word or Excel, the process actually works the other way around. Le document est associé à un assembly et contient un pointeur vers cet assembly.The document is associated with an assembly and contains a pointer to that assembly. Quand le document s’ouvre, Word ou Excel recherche l’assembly et exécute le code en réponse à tous les événements gérés.When the document opens, Word or Excel locates the assembly and runs the code in response to all handled events.
Ceux qui utilisent la solution ouvrent simplement le document ou le classeur (ou créent un document à partir d’un modèle), comme ils le feraient pour n’importe quel autre fichier Microsoft Office.Those who use the solution simply open the document or workbook (or create a new document from a template) just as they would open any other Microsoft Office file.

L’assembly fournit des personnalisations dans le document ou le classeur, telles que le remplissage automatique avec des données à jour ou l’affichage d’une boîte de dialogue pour demander des informations.The assembly provides customizations in the document or workbook such as automatically populating it with current data, or showing a dialog box to request information.

Prise en charge des formats de documents pour les personnalisations au niveau du documentSupported document formats for document-level customizations

Quand vous créez un projet de personnalisation, vous pouvez choisir le format du document que vous souhaitez utiliser dans le projet.When you create a customization project, you can choose the format of the document that you want to use in the project. Pour plus d’informations, consultez Comment : les projets Office de créer dans Visual Studio.For more information, see How to: Create Office projects in Visual Studio.

Le tableau suivant répertorie les formats de documents que vous pouvez utiliser dans les personnalisations au niveau du document pour Excel et Word.The following table lists the document formats you can use in document-level customizations for Excel and Word.

ExcelExcel WordWord
Classeur Excel (.xlsx)Excel workbook (.xlsx)

Classeur Excel macro (.xlsm)Excel macro-enabled workbook (.xlsm)

Classeur binaire Excel (.xlsb)Excel binary workbook (.xlsb)

Classeur Excel 97-2003 (.xls)Excel 97-2003 workbook (.xls)

Modèle Excel (.xltx)Excel template (.xltx)

Modèle Excel macros (.xltm)Excel macro-enabled template (.xltm)

Modèle Excel 97-2003 (.xlt)Excel 97-2003 template (.xlt)
Document Word (.docx)Word document (.docx)

Document Word macros (.docm)Word macro-enabled document (.docm)

Document Word 97-2003 (.doc)Word 97-2003 document (.doc)

Modèle Word (.dotx)Word template (.dotx)

Modèle Word macros (.dotm)Word macro-enabled template (.dotm)

Modèle Word 97-2003 (.dot)Word 97-2003 template (.dot)

Vous devez concevoir des extensions de code managé uniquement pour les documents dont le format est pris en charge.You should design managed code extensions only for documents in the supported formats. Sinon, certains événements risquent de ne pas être déclenchés lorsque le document s’ouvre dans l’application.Otherwise, certain events might not be raised when the document opens in the application. Par exemple, le Open événement n’est pas déclenché lorsque vous utilisez des extensions de code managé avec des classeurs enregistrés au format feuille de calcul XML Excel ou dans la page web (.htm; .html) format.For example, the Open event is not raised when you use managed code extensions with workbooks saved in the Excel XML spreadsheet format or in the web page (.htm; .html) format.

Prise en charge des documents Word ayant des extensions de nom de fichier .xmlSupport for Word documents that have .xml file name extensions

Les modèles de projets au niveau du document ne vous permettent pas de créer des projets basés sur les formats de fichiers suivants :The document-level project templates do not allow you to create projects based on the following file formats:

  • Document XML Word (*xml).Word XML Document (*xml).

  • Document XML Word 2003 (*xml).Word 2003 XML Document (*xml).

    Si vous souhaitez que vos utilisateurs finaux utilisent des personnalisations dans ces formats de fichiers, générez et déployez une personnalisation qui utilise l’un des formats de fichiers pris en charge spécifiés dans le tableau ci-dessus.If you want your end users to use customizations in these file formats, build and deploy a customization that uses one of the supported file formats specified in the table above. Après l’installation de la personnalisation, les utilisateurs finaux peuvent enregistrer le document dans le Document XML Word (*xml) format ou le Document XML Word 2003 (*xml) format et le personnalisation continue de fonctionner comme prévu.After installing the customization, end users can save the document in the Word XML Document (*xml) format or the Word 2003 XML Document (*xml) format, and the customization will continue to work as expected.

Composants des personnalisationsComponents of customizations

Les principaux composants d’une personnalisation sont le document et l’assembly.The main components of a customization are the document and the assembly. Outre ces composants, il en existe plusieurs autres qui jouent un rôle important dans la manière dont les applications Microsoft Office découvrent et chargent les personnalisations.In addition to these components, there are several other parts that play an important role in how Microsoft Office applications discover and load customizations.

Manifeste de déploiement et manifeste d’applicationDeployment manifest and application manifest

Les personnalisations utilisent des manifestes de déploiement et des manifestes d’application pour identifier et charger la version la plus récente de l’assembly de personnalisation.Customizations use deployment manifests and application manifests to identify and load the most current version of the customization assembly. Le manifeste de déploiement pointe vers le manifeste d'application actuel.The deployment manifest points to the current application manifest. Le manifeste d’application pointe vers l’assembly de personnalisation et spécifie la ou les classes de point d’entrée à exécuter dans l’assembly.The application manifest points to the customization assembly, and specifies the entry point class (or classes) to execute in the assembly. Pour plus d’informations, consultez manifestes d’Application et déploiement dans les solutions Office.For more information, see Application and deployment manifests in Office solutions.

Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office Runtime

Pour que l’exécution de personnalisations au niveau du document créées à l’aide des Outils de développement Office dans Visual Studio soit possible, il faut que le Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime soit installé sur les ordinateurs des utilisateurs finaux.To run document-level customizations that are created by using the Office developer tools in Visual Studio, end user computers must have the Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime installed. Le Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime comprend des composants non managés qui chargent l’assembly de personnalisation, ainsi qu’un jeu d’assemblys managés.The Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime includes unmanaged components that load the customization assembly, and also a set of managed assemblies. Ces assemblys managés fournissent le modèle objet utilisé par votre code de personnalisation pour automatiser et étendre l’application hôte.These managed assemblies provide the object model that your customization code uses to automate and extend the host application.

Pour plus d’informations, consultez Visual Studio tools pour Office runtime overview.For more information, see Visual Studio tools for Office runtime overview.

Fonctionnement des personnalisations avec les applications Microsoft OfficeHow customizations work with Microsoft Office applications

Quand un utilisateur ouvre un document qui fait partie d’une personnalisation Microsoft Office, l’application utilise le manifeste de déploiement lié au document pour rechercher et charger la version la plus récente de l’assembly de personnalisation.When a user opens a document that is part of a Microsoft Office customization, the application uses the deployment manifest that is linked to the document to locate and load the most current version of the customization assembly. L’emplacement du manifeste de déploiement est stocké dans une propriété de document personnalisée nommée AssemblyLocation.The location of the deployment manifest is stored in a custom document property named AssemblyLocation. La chaîne qui identifie cet emplacement est insérée dans la propriété lorsque vous générez la solution.The string that identifies this location is inserted into the property when you build the solution.

Le manifeste de déploiement pointe vers le manifeste d’application, qui pointe vers l’assembly le plus récent.The deployment manifest points to the application manifest, which then points to the most current assembly. Pour plus d’informations, consultez manifestes d’Application et déploiement dans les solutions Office.For more information, see Application and deployment manifests in Office solutions.

L’illustration suivante montre l’architecture de base d’une personnalisation au niveau du document.The following illustration shows the basic architecture of a document-level customization.

Architecture de personnalisation d’office 20072007 Office customization architecture

Note

Dans les solutions Office qui ciblent .NET Framework 4.NET Framework 4, les solutions exécutent un appel dans le modèle objet de l’application hôte à l’aide des informations de type d’assembly PIA incorporées dans l’assembly de solution, au lieu d’exécuter un appel directement dans l’assembly PIA.In Office solutions that target the .NET Framework 4.NET Framework 4, solutions call into the object model of the host application by using primary interop assembly (PIA) type information that is embedded in the solution assembly, instead of calling into the PIA directly. Pour plus d’informations, consultez conception et créer des solutions Office.For more information, see Design and create Office solutions.

Processus de chargementLoading process

Les étapes suivantes se produisent lorsqu’un utilisateur ouvre un document qui fait partie d’une solution Microsoft Office.The following steps occur when a user opens a document that is part of a Microsoft Office solution.

  1. L’application Microsoft Office vérifie les propriétés de document personnalisées pour voir si des extensions de code managé sont associées au document.The Microsoft Office application checks the custom document properties to see whether there are managed code extensions associated with the document. Pour plus d’informations, consultez vue d’ensemble des propriétés de document personnalisées.For more information, see Custom document properties overview.

  2. S’il existe des extensions de code managé, l’application charge VSTOEE.dll, les charges VSTOLoader.dll.If there are managed code extensions, the application loads VSTOEE.dll, which loads VSTOLoader.dll. Ils ne sont pas gérés DLL qui sont les composants du chargeur pour Visual Studio 2010 Tools pour Office runtime.These are unmanaged DLLs that are the loader components for the Visual Studio 2010 Tools for Office runtime. Pour plus d’informations, consultez Visual Studio Tools pour Office runtime overview.For more information, see Visual Studio Tools for Office runtime overview.

  3. VSTOLoader.dll charge le .NET Framework.NET Framework et démarre la partie managée de le Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime.VSTOLoader.dll loads the .NET Framework.NET Framework and starts the managed portion of the Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime.

  4. Si le document est ouvert à partir d’un emplacement autre que l’ordinateur local, le Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime vérifie que l’emplacement du document figure dans la liste Emplacements approuvés dans les Paramètres du Centre de gestion de la confidentialité pour cette application Office.If the document is opened from a location other than the local computer, the Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime verifies that the location of the document is in the Trusted Locations list in the Trust Center Settings for that particular Office application. Si l’emplacement du document n’est pas un emplacement approuvé, la personnalisation n’est pas approuvée et le processus de chargement est arrêté.If the document location is not in a trusted location, the customization is not trusted, and the load process stops here.

  5. Le Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime installe la solution si ce n’est déjà fait, télécharge les manifestes de déploiement et d’application les plus récents, et exécute une série de vérifications de sécurité.The Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime installs the solution if it has not been installed yet, downloads the most recent application and deployment manifests, and performs a series of security checks. Pour plus d’informations, consultez les solutions Office de sécuriser.For more information, see Secure Office solutions.

  6. Si l’exécution de la personnalisation est approuvée, le Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime utilise le manifeste de déploiement et le manifeste d’application pour rechercher des mises à jour de l’assembly.If the customization is trusted to run, the Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime uses the deployment manifest and application manifest to check for assembly updates. Si une nouvelle version de l'assembly est disponible, le runtime la télécharge dans le cache de ClickOnceClickOnce sur l'ordinateur client.If a new version of the assembly is available, the runtime downloads the new version of the assembly to the ClickOnceClickOnce cache on the client computer. Pour plus d’informations, consultez déployer une solution Office.For more information, see Deploy an Office solution.

  7. Le Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime crée un domaine d’application dans lequel charger l’assembly de la personnalisation.The Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime creates a new application domain in which to load the customization assembly.

  8. Le Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime charge l’assembly de la personnalisation dans le domaine d’application.The Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime loads the customization assembly into the application domain.

  9. Le Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime appelle le gestionnaire d’événements Startup dans votre assembly de personnalisation.The Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime calls the Startup event handler in your customization assembly. Pour plus d’informations, consultez événements dans les projets OfficeFor more information, see Events in Office projects

Voir aussiSee also

Architecture des solutions Office dans Visual Studio Architecture of Office solutions in Visual Studio
Architecture des Compléments VSTO Architecture of VSTO Add-ins
Visual Studio Tools pour Office runtime overview Visual Studio Tools for Office runtime overview
Sécurisez les solutions Office Secure Office solutions
Concevoir et créer des solutions Office Design and create Office solutions
Vue d’ensemble des propriétés de document personnalisées Custom document properties overview
Données mises en cache dans les personnalisations au niveau du documentCached data in document-level customizations