Architecture des personnalisations au niveau du document
Mise à jour : novembre 2007
S'applique à |
---|
Les informations de cette rubrique s'appliquent uniquement aux projets Visual Studio Tools pour Office et versions de Microsoft Office spécifiés. Type de projet
Version de Microsoft Office
Pour plus d'informations, consultez Fonctionnalités disponibles par type d'application et de projet. |
Visual Studio Tools pour Office inclut des projets qui vous permettent de 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 Visual Studio Tools pour Office :
Fonctionnement des personnalisations
Composants de personnalisations
Fonctionnement des personnalisations avec la version 2007 de Microsoft Office System
Fonctionnement des personnalisations avec Microsoft Office 2003
Pour obtenir des informations générales sur l'utilisation de personnalisations Visual Studio Tools pour Office, consultez Vue d'ensemble du développement des solutions Office, 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.
Fonctionnement des personnalisations
Lorsque vous générez une personnalisation à l'aide de Visual Studio Tools pour Office, vous créez un assembly de code managé associé à un document spécifique. Un document ou un classeur lié à un assembly lié est réputé avoir des extensions de code managé. Pour plus d'informations, consultez Vue d'ensemble des assemblys dans les solutions Office.
Lorsqu'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 tandis que le document est ouvert. La personnalisation peut également appeler le modèle objet afin d'automatiser et d'étendre l'application tandis que le document est ouvert, de même qu'utiliser une classe quelconque 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.
Visual Studio Tools pour Office charge chaque assembly dans un domaine d'application différent. Cela signifie qu'une solution qui se comporte de manière incorrecte ne peut pas provoquer l'échec d'autres solutions. Cette particularité garantit également qu'à la fermeture du document, tout le code est arrêté et que les assemblys sont déchargés de la mémoire. Les personnalisations au niveau du document sont conçues pour utiliser un document unique dans un domaine d'application unique. Elles ne sont pas conçues pour communiquer entre plusieurs documents. Pour plus d'informations sur les domaines d'application, consultez Vue d'ensemble des domaines d'application.
![]() |
---|
Les personnalisations au niveau du document que vous créez en utilisant Visual Studio Tools pour Office sont conçues pour être utilisées uniquement en cas de démarrage de l'application par un utilisateur final. Si l'application est démarrée par un programme (par exemple, à l'aide de l'automatisation), la personnalisation risque de ne pas fonctionner correctement. |
Expériences au moment du design et de l'exécution
Pour comprendre l'architecture des solutions Visual Studio Tools pour Office, il est utile de comprendre les expériences liées au design et à l'exécution d'une solution.
Lors du design
L'expérience au moment du design inclut les étapes suivantes :
Le développeur crée un projet au niveau du document dans Visual Studio. Ce projet comprend le document et l'assembly qui s'exécute derrière le document. Le document peut être existant (éventuellement créé par un concepteur) ou être un nouveau document créé en même temps que le projet.
Le concepteur (soit le développeur qui crée le projet, soit quelqu'un d'autre) crée l'apparence finale du document pour l'utilisateur final.
Lors de l'exécution
L'expérience au moment de l'exécution inclut les étapes suivantes :
L'utilisateur final ouvre un document ou un classeur comportant des extensions de code managé.
Le document ou le classeur charge l'assembly compilé.
L'assembly répond aux événements tandis que l'utilisateur travaille dans le document ou le classeur.
Comparaison du point de vue du développeur et de l'utilisateur final
Comme le développeur travaille principalement dans Visual Studio et l'utilisateur final dans Word ou Excel, les personnalisations au niveau du document peuvent être comprises de deux manières.
Point de vue du développeur |
Point de vue de l'utilisateur final |
---|---|
À l'aide de Visual Studio, le développeur écrit du code accessible par Word et Excel. Bien qu'il semble que le développeur crée un fichier exécutable qui exécute Word ou Excel, le processus contourne en fait cette opération. Le document est associé à un assembly et contient un pointeur vers cet assembly. Lorsque 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. |
Les personnes qui utilisent la solution ouvrent simplement le document ou le classeur (ou créent un document à partir d'un modèle) exactement comme elles ouvriraient un autre fichier Microsoft Office. L'assembly fournit des personnalisations dans le document ou le classeur, telles que le remplissage automatique de données ou l'affichage d'une boîte de dialogue pour demander des informations. |
Formats de document pris en charge pour les personnalisations au niveau du document
Lorsque 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 Visual Studio Tools pour Office.
Le tableau suivant répertorie les formats de document que vous pouvez utiliser dans des personnalisations au niveau du document pour Excel.
Excel 2007 |
Excel 2003 |
---|---|
Classeur Excel (.xlsx) Classeur Excel prenant en charge les macros (.xlsm) Classeur Excel binaire (.xlsb) Classeur Excel 97-2003 (.xls) Modèle Excel (.xltx) Modèle Excel prenant en charge les macros (.xltm) Modèle Excel 97-2003 (.xlt) |
Classeur Excel (.xls) Modèle Excel (.xlt) |
Le tableau suivant répertorie les formats de document que vous pouvez utiliser dans des personnalisations au niveau du document pour Word.
Word 2007 |
Word 2003 |
---|---|
Document Word (.docx) 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) |
Document Word (.doc) Modèle Word (.dot) |
Si vous basez une personnalisation Microsoft Office 2007 sur un document créé dans Microsoft Office 2003, Visual Studio Tools pour Office ne change pas le format de fichier du document.
Vous ne devez concevoir des extensions de code managé que pour les documents dont le format est pris en charge. Sinon, certains événements peuvent ne pas être déclenchés lors de l'ouverture du document dans l'application. Par exemple, l'événement Open 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 page Web (.htm ; .html).
Prise en charge des documents Word avec une extension de nom de fichier .xml
Les modèles de projet au niveau du document pour Word 2003 et Word 2007 ne vous permettent pas de créer des projets basés sur les formats de fichier suivants :
Document XML Word (* xml)
Document XML Word 2003 (* xml)
Si vous voulez que les utilisateurs finaux utilisent des personnalisations dans ces formats de fichier, générez et déployez une personnalisation utilisant un des formats de fichier pris en charge spécifiés dans le tableau ci-dessus. Après avoir installé la personnalisation, les utilisateurs finaux peuvent enregistrer le document dans le format Document XML Word (*xml) (pour Word 2007) ou Document XML Word 2003 (*xml) (pour Word 2003). La personnalisation continuera de fonctionner normalement.
Composants de personnalisations
Les composants principaux d'une personnalisation sont le document et l'assembly. On y trouve également plusieurs autres parties qui jouent un rôle important dans la façon dont les applications Microsoft Office localisent et chargent des personnalisations.
Manifeste de déploiement et manifeste d'application
Les personnalisations utilisent des manifestes de déploiement et 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 de l'application pointe quant à lui vers l'assembly de personnalisation et spécifie la classe (ou les classes) du 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.
Visual Studio Tools pour Office Runtime
Pour exécuter des personnalisations créées à l'aide de Visual Studio Tools pour Office, les ordinateurs des utilisateurs finaux doivent être dotés du runtime de Visual Studio Tools pour Office, lequel inclut des composants non managés qui chargent l'assembly de personnalisation, de même 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.
Fonctionnement des personnalisations avec la version 2007 de Microsoft Office System
Lorsqu'un utilisateur ouvre un document qui fait partie d'une personnalisation de Microsoft Office 2007, l'application utilise le manifeste de déploiement lié au document pour localiser 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 appelé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 alors 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 pour un document de la version 2007 de Microsoft Office System.
Architecture d'une personnalisation pour la version 2007 de Microsoft Office System
Processus de chargement de personnalisations dans la version 2007 de Microsoft Office System
Les étapes suivantes se produisent lorsqu'un utilisateur ouvre un document appartenant à une solution Microsoft Office 2007 :
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.
S'il existe des extensions de code managé, l'application charge VSTOEE.dll, qui charge à son tour VSTOLoader.dll. Ces DLL non managées sont les composants de chargement de Microsoft Visual Studio Tools pour Microsoft Office System (version 3.0 Runtime). Pour plus d'informations, consultez Vue d'ensemble de Visual Studio Tools pour Office Runtime.
VSTOLoader.dll charge le .NET Framework et démarre la partie managée du runtime de Visual Studio Tools pour Office.
Si le document est ouvert depuis un emplacement autre que l'ordinateur local, le runtime de Visual Studio Tools pour Office vérifie que l'emplacement du document figure dans la liste Emplacements approuvés des Paramètres du Centre de gestion de la confidentialité de l'application Office en question. Si le document ne se trouve pas dans un emplacement approuvé, la personnalisation n'est pas approuvée et le processus de chargement s'interrompt.
Le runtime de Visual Studio Tools pour Office installe la solution si elle ne l'est pas encore, télécharge les manifestes d'application et de déploiement les plus récents et effectue une série de vérifications de sécurité. Pour plus d'informations, consultez Sécurité dans les solutions Office (Office System 2007).
Si l'exécution de la personnalisation est approuvée, le runtime de Visual Studio Tools pour Office utilise les manifestes de déploiement et d'application pour rechercher les mises à jour de l'assembly. Si une nouvelle version de l'assembly est disponible, le runtime la télécharge dans le cache ClickOnce de l'ordinateur client. Pour plus d'informations, consultez Déploiement de solutions Office (Office System 2007).
Le runtime de Visual Studio Tools pour Office crée un nouveau domaine d'application dans lequel charger l'assembly de personnalisation.
Le runtime de Visual Studio Tools pour Office charge l'assembly de personnalisation dans le nouveau domaine d'application.
Le runtime de Visual Studio Tools pour Office appelle le gestionnaire d'événements Startup dans votre assembly de personnalisation. Pour plus d'informations, consultez Événements de projet Visual Studio Tools pour Office.
Fonctionnement des personnalisations avec Microsoft Office 2003
Lorsqu'un utilisateur ouvre un document qui fait partie d'une personnalisation de Microsoft Office 2003, l'application utilise le manifeste d'application incorporé au document pour localiser et charger la version la plus récente de l'assembly de personnalisation. Le manifeste de l'application incorporé peut pointer directement vers l'assembly ou vers un manifeste de déploiement utilisé pour localiser des mises à jour de l'assembly. Pour plus d'informations, consultez Manifestes d'application et de déploiement dans les solutions Office.
Le manifeste d'application incorporé est contenu dans un contrôle incorporé invisible appelé contrôle Runtime Storage. Pour plus d'informations, consultez Vue d'ensemble du contrôle Runtime Storage.
L'illustration suivante montre l'architecture de base d'une personnalisation pour un document Microsoft Office 2003.
Architecture d'une personnalisation pour Microsoft Office 2003
Processus de chargement de personnalisations dans Microsoft Office 2003
Les étapes suivantes se produisent lorsqu'un utilisateur ouvre un document appartenant à une solution Microsoft Office 2003 :
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.
S'il existe des extensions de code managé, l'application charge AddinLoader.dll. Il s'agit d'une DLL non managée utilisée comme composant de chargement de Visual Studio 2005 Tools pour Office Second Edition Runtime. Pour plus d'informations, consultez Vue d'ensemble de Visual Studio Tools pour Office Runtime.
AddinLoader.dll charge le .NET Framework et démarre la partie managée du runtime de Visual Studio Tools pour Office.
Le runtime de Visual Studio Tools pour Office crée un domaine d'application, définit la stratégie de celui-ci de manière à ne pas approuver la zone Poste de travail et recherche une stratégie pour l'assembly de personnalisation dans le magasin de stratégies de sécurité d'accès du code.
Le .NET Framework valide la preuve présentée par l'assembly par rapport à la stratégie. Si la validation échoue, une erreur est déclenchée. Si la validation réussit, le processus continue.
Si la personnalisation utilise un manifeste de déploiement, le runtime de Visual Studio Tools pour Office l'utilise pour rechercher les mises à jour de l'assembly. Si des mises à jour sont nécessaires, elles sont effectuées à ce stade.
Le runtime de Visual Studio Tools pour Office charge l'assembly dans le domaine d'application.
Le runtime de Visual Studio Tools pour Office appelle le gestionnaire d'événements Startup dans votre assembly de personnalisation. Pour plus d'informations, consultez Événements de projet Visual Studio Tools pour Office.
Voir aussi
Concepts
Architecture des compléments d'application
Vue d'ensemble de Visual Studio Tools pour Office Runtime
Création de solutions Office dans Visual Studio
Vue d'ensemble des propriétés de document personnalisées
Modèle de données dans les personnalisations au niveau du document
Vue d'ensemble du contrôle Runtime Storage