Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez aussi afficher la version anglaise dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte.
Traduction
Anglais

Architecture des personnalisations au niveau du document

 

Visual Studio 2013 comprend des projets pour créer des personnalisations au niveau du document pour Microsoft Office Word et Microsoft Office Excel. Cette rubrique décrit les aspects suivants des personnalisations au niveau du document :

S'applique à : les informations contenues dans cette rubrique s'appliquent aux projets de niveau document pour Excel et Word. Pour plus d'informations, voir Fonctionnalités disponibles par type d'application et de projet Office.

Pour obtenir des informations générales sur la création de personnalisations au niveau du document, consultez Vue d'ensemble du développement des solutions Office (VSTO), Mise en route de la programmation des personnalisations au niveau du document pour Word et Mise en route de la programmation des personnalisations au niveau du document pour Excel.

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. On dit d’un document ou classeur lié à un assembly qu’il a des extensions de code managé. Pour plus d'informations, consultez Conception et création de solutions Office.

Quand un utilisateur ouvre le document, l’assembly est chargé par l’application Microsoft Office. Une fois l’assembly chargé, la personnalisation peut répondre à des événements pendant que le document est ouvert. 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.

L'assembly communique avec les composants COM de l'application à travers l'assembly PIA (Primary Interop Assembly) de celle-ci. Pour plus d’informations, consultez Assemblys PIA (Primary Interop Assembly) Office et Vue d'ensemble du développement des solutions Office (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. Cela signifie qu’une solution dont le comportement est incorrect ne peut pas entraîner l’échec d’autres solutions. Les personnalisations au niveau du document sont conçues pour fonctionner avec un seul document dans un seul domaine d’application. Elles ne sont pas conçues pour la communication entre documents. Pour plus d’informations sur les domaines d’application, consultez Domaines d'application.

System_CAPS_noteRemarque

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. Si elle est démarrée par programmation (par exemple à l’aide d’Automation), la personnalisation risque de ne pas fonctionner correctement.

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.

L’expérience au moment du design comprend les étapes suivantes :

  1. Le développeur crée un projet au niveau du document dans Visual Studio. Le projet comprend le document et l’assembly qui s’exécute derrière le 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.

  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.

L’expérience au moment de l’exécution comprend les étapes suivantes :

  1. L’utilisateur final ouvre un document ou un classeur qui a des extensions de code managé.

  2. Le document ou le classeur charge l’assembly compilé.

  3. L’assembly répond aux événements à mesure que l’utilisateur travaille dans le document ou le classeur.

Étant donné que le développeur travaille principalement dans Visual Studio et l’utilisateur final dans Word ou Excel, il existe deux façons de comprendre les personnalisations au niveau du document.

Perspective du développeur

Perspective de l’utilisateur final

À l’aide de Visual Studio, le développeur écrit du code accessible à Word et 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. Le document est associé à un assembly et contient un pointeur vers cet 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.

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.

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.

Quand vous créez un projet de personnalisation, vous pouvez choisir le format du document que vous souhaitez utiliser dans le projet. Pour plus d'informations, consultez Comment : créer des projets Office dans 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.

Excel

Word

Classeur Excel (.xls)

Classeur Excel prenant en charge les macros (.xlsm)

Classeur binaire Excel (.xlsb)

Classeur Excel 97-2003 (.xls)

Modèle Excel (.xlt)

Modèle Excel prenant en charge les macros (.xltm)

Modèle Excel 97-2003 (.xlt)

Document Word (.doc)

Document Word prenant en charge les macros (.docm)

Document Word 97-2003 (.doc)

Modèle Word (.dotx)

Modèle Word prenant en charge les macros (.dotm)

Modèle Word 97-2003 (.dot)

Vous devez concevoir des extensions de code managé uniquement pour les documents dont le format est pris en charge. Sinon, certains événements risquent de ne pas être déclenchés lorsque le document s’ouvre dans l’application. Par exemple, l’événement Open n’est pas déclenché quand vous utilisez des extensions de code managé avec des classeurs enregistrés au format feuille de calcul XML Excel ou au format page web (.htm, .html).

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 :

  • Document XML Word (*xml)

  • Document XML Word 2003 (*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. Après avoir installé la personnalisation, les utilisateurs finaux peuvent enregistrer le document au format Document XML Word (*xml) ou Document XML Word 2003 (*xml), et la personnalisation continue de fonctionner comme prévu.

Les principaux composants d’une personnalisation sont le document et l’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.

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. Le manifeste de déploiement pointe vers le manifeste d'application actuel. 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. Pour plus d'informations, consultez Manifestes d'application et de déploiement dans les solutions Office.

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 Runtime soit installé sur les ordinateurs des utilisateurs finaux. Le Visual Studio Tools pour Office Runtime comprend des composants non managés qui chargent l’assembly de personnalisation, ainsi qu’un jeu d’assemblys managés. Ces assemblys managés fournissent le modèle objet utilisé par votre code de personnalisation pour automatiser et étendre l’application hôte.

Pour plus d'informations, consultez Vue d'ensemble de Visual Studio Tools pour Office Runtime.

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. L’emplacement du manifeste de déploiement est stocké dans une propriété de document personnalisée nommée _AssemblyLocation. La chaîne qui identifie cet emplacement est insérée dans la propriété lorsque vous générez la solution.

Le manifeste de déploiement pointe vers le manifeste d’application, qui pointe vers l’assembly le plus récent. Pour plus d'informations, consultez Manifestes d'application et de déploiement dans les solutions Office.

L’illustration suivante montre l’architecture de base d’une personnalisation au niveau du document.

Architecture de personnalisation d'Office 2007

Architecture de personnalisation

System_CAPS_noteRemarque

Dans les solutions Office qui ciblent .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. Pour plus d'informations, consultez Conception et création de solutions Office.

Les étapes suivantes se produisent lorsqu’un utilisateur ouvre un document qui fait partie d’une solution Microsoft Office.

  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. Pour plus d'informations, consultez Vue d'ensemble des propriétés de document personnalisées.

  2. S’il existe des extensions de code managé, l’application charge VSTOEE.dll, qui charge VSTOLoader.dll. Il s'agit de DLL non managées qui sont les composants du chargeur pour Visual Studio 2010 Tools pour Office Runtime. Pour plus d'informations, consultez Vue d'ensemble de Visual Studio Tools pour Office Runtime.

  3. VSTOLoader.dll charge le .NET Framework et démarre la partie managée de Visual Studio Tools pour Office Runtime.

  4. Si le document est ouvert à partir d’un emplacement autre que l’ordinateur local, le Visual Studio Tools pour 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. 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é.

  5. Le Visual Studio Tools pour 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é. Pour plus d'informations, consultez Sécurisation des solutions Office.

  6. Si l’exécution de la personnalisation est approuvée, le Visual Studio Tools pour Office Runtime utilise le manifeste de déploiement et le manifeste d’application pour rechercher des mises à jour de l’assembly. Si une nouvelle version de l'assembly est disponible, le runtime la télécharge dans le cache de ClickOnce sur l'ordinateur client. Pour plus d'informations, consultez Déploiement d'une solution Office.

  7. Le Visual Studio Tools pour Office Runtime crée un domaine d’application dans lequel charger l’assembly de la personnalisation.

  8. Le Visual Studio Tools pour Office Runtime charge l’assembly de la personnalisation dans le domaine d’application.

  9. Le Visual Studio Tools pour Office Runtime appelle le gestionnaire d’événements Startup dans votre assembly de personnalisation. Pour plus d'informations, consultez Événements dans les projets Office

Afficher: