Partager via


Modèles objet et environnements de développement d'InfoPath 2007

Microsoft Office InfoPath 2007 prend en charge trois types de modèle de programmation dans le cadre du développement d'une logique métier dans les modèles de formulaires, et gère par ailleurs l'automatisation externe du code managé.

Microsoft Office Forms Server 2007 et la fonctionnalité de formulaire équivalente appelée InfoPath Forms Services disponible dans Microsoft Office SharePoint Server 2007 offrent un modèle objet qui permet l'automatisation des tâches de serveur.

Office InfoPath 2007 prend en charge trois environnements de développement et plusieurs langages de programmation, qui sont décrits plus loin dans cette rubrique. L'environnement de développement à privilégier dépend en partie du modèle de programmation que vous devez utiliser.

Modèles de programmation InfoPath

Office InfoPath 2007 prend en charge trois modèles objet pour le développement d'une logique métier dans les modèles de formulaire, à savoir :

  • le modèle objet COM et Script ;

  • le modèle objet avec code managé compatible avec InfoPath 2003 ;

  • le nouveau modèle objet InfoPath avec code managé.

En outre, Office InfoPath 2007 permet d'écrire du code managé dans le but d'automatiser InfoPath à partir d'une application externe.

Microsoft Office Forms Server 2007 et InfoPath Forms Services fournissent un modèle objet qui permet l'automatisation des tâches de serveur, telles que la vérification et le téléchargement de modèles de formulaires à partir de code s'exécutant sur le serveur, ce qui nécessite un accès et des autorisations d'administrateur de serveur.

Modèle objet COM et Script

Le modèle objet COM et Script est implémenté dans les bibliothèques de liens dynamiques (fichiers *.dll) suivantes, qui se trouvent dans le dossier C:\Program Files\Microsoft Office\Office12 :

Bibliothèque de liens dynamiques Description

IPEDITOR.DLL

Fournit le modèle objet COM pour l'exécutable de modification de formulaire InfoPath. Expose les objets et les membres susceptibles d'être appelés à partir d'une logique métier écrite en JScript ou VBScript. Expose également les méthodes de l'objet Application et de la collection XDocuments qui peuvent être appelées à partir de composants et d'applications COM dans l'optique d'automatiser l'application InfoPath.

IPDESIGN.DLL

Fournit des interfaces COM pour la création de convertisseurs de formulaires personnalisés, ainsi que les objets ExcelImporter et WordImporter pour la création de nouveaux modèles de formulaires InfoPath par l'importation de la structure de formulaires créés dans Excel et Word.

Remarque

Même si la création d'une logique métier à partir de langages de script (JScript et VBScript) selon le modèle objet COM et Script est toujours prise en charge par le client InfoPath, toute logique métier écrite en script n'est pas prise en charge pour les modèles de formulaires activés pour le navigateur qui sont déployés dans Office Forms Server 2007 ou Microsoft Office SharePoint Server 2007 avec InfoPath Forms Services. Les modèles de formulaires activés pour le navigateur doivent utiliser le nouveau modèle objet InfoPath avec code managé dans le cas d'une logique métier personnalisée.

Pour plus d'informations sur l'utilisation de script et de l'automatisation COM, consultez la documentation de référence du développeur InfoPath à laquelle vous pouvez accéder en cliquant sur Aide sur Microsoft Office InfoPath dans le menu ? (Aide) de Office InfoPath 2007.

Modèle objet avec code managé compatible avec InfoPath 2003

Le modèle objet avec code managé compatible avec InfoPath 2003 a été inauguré dans InfoPath 2003 Service Pack 1 en même temps que Microsoft Office InfoPath 2003 Toolkit pour Visual Studio .NET pour permettre la création d'une logique métier dans les modèles de formulaires avec code managé. Ce modèle objet est toujours pris en charge par Office InfoPath 2007 pour assurer une compatibilité avec InfoPath 2003.

Les classes et les membres de ce modèle objet sont exposés sont exposés via l'espace de noms Microsoft.Office.Interop.InfoPath.SemiTrust. Ce modèle objet est implémenté dans le fichier d'assembly suivant, qui se trouve dans le dossier :\Program Files\Microsoft Office\Office12 :

Assembly Description

Microsoft.Office.Interop.InfoPath.SemiTrust.dll

Fournit une interopérabilité COM par rapport au modèle objet COM d'InfoPath pour une logique métier de modèle formulaire écrite à l'aide de C# ou de Visual Basic .NET.

Remarque

Même si la création d'une logique métier à l'aide du modèle objet COM Interop avec code managé fourni par l'assembly Microsoft.Office.Interop.InfoPath.SemiTrust est toujours prise en charge par Office InfoPath 2007, toute logique métier écrite à partir de ce modèle objet n'est pas prise en charge pour les modèles de formulaires activés pour le navigateur qui sont déployés dans Office Forms Server 2007 ou Microsoft Office SharePoint Server 2007 avec InfoPath Forms Services. Les modèles de formulaires activés pour le navigateur doivent utiliser le nouveau modèle objet InfoPath avec code managé dans le cas d'une logique métier personnalisée.

Remarque

Lorsque vous créez un projet de modèle de formulaire compatible avec InfoPath 2003 (en définissant le paramètre Langage de code du formulaire sur C# (InfoPath 2003 Compatible) ou Visual Basic (InfoPath 2003 Compatible) sous la catégorie Programmation de la boîte de dialogue Options de formulaire), par défaut, tous les appels sont adressés aux membres de l'espace de noms Microsoft.Office.Interop.InfoPath.SemiTrust qui offrent une compatibilité descendante. Toutefois, si cette compatibilité descendante n'est plus nécessaire, vous pouvez utiliser les membres du nouveau modèle objet appartenant à l'espace de noms Microsoft.Office.Interop.InfoPath.SemiTrust. Pour plus d'informations, voir Utilisation des membres Microsoft.Office.Interop.InfoPath.SemiTrust qui ne sont pas compatibles avec InfoPath 2003.

Nouveau modèle objet InfoPath avec code managé

Un nouveau modèle objet InfoPath avec code managé est implémenté dans deux assemblys nommés tous deux Microsoft.Office.Infopath.dll.

L'une des versions de l'assembly implémente un sous-ensemble du modèle objet InfoPath qui contient uniquement les types et les membres pris en charge dans la logique métier des modèles de formulaires déployés en tant que modèles de formulaires activés pour le navigateur s'exécutant dans Office Forms Server 2007 ou Microsoft Office SharePoint Server 2007 avec InfoPath Forms Services. Les modèles de formulaires associés à une logique métier écrite en fonction de cet assembly s'ouvrent et s'exécutent dans InfoPath et dans un navigateur Web.

L'autre version de l'assembly implémente l'intégralité du modèle objet InfoPath. Celui-ci contient des types et des membres supplémentaires qui offrent des fonctionnalités non prises en charge dans la logique métier des modèles de formulaires activés pour le navigateur. Les modèles de formulaires associés à une logique métier écrite selon les classes et les membres de cet assembly spécifiques à InfoPath s'ouvrent et s'exécutent uniquement dans InfoPath.

Remarque

Il est possible d'écrire une logique conditionnelle qui utilise les propriétés de la classe Environment pour déterminer dans quel environnement (InfoPath ou un navigateur Web) le modèle de formulaire s'exécute. Grâce à cette logique conditionnelle, votre logique métier peut alterner entre du code fonctionnant dans un navigateur Web et du code écrit en fonction des classes et des membres fonctionnant uniquement dans InfoPath. Pour plus d'informations, voir Procédure d'écriture d'une logique conditionnelle qui détermine l'environnement à l'exécution

L'assembly qu'utilise InfoPath lors de l'ajout et de la compilation d'une logique métier pour le modèle de formulaire varie selon que vous activez ou non la case à cocher Activer les fonctions compatibles avec le navigateur uniquement dans la boîte de dialogue Créer un formulaire aux premières étapes de création d'un formulaire. Vous pouvez également modifier ce paramètre dans la boîte de dialogue Options de formulaire en sélectionnant la catégorie Compatibilité, puis en activant ou désactivant la case à cocher Créer un modèle de formulaire qui peut être ouvert dans un navigateur ou dans InfoPath.

Les classes et les membres des deux versions de ce modèle objet sont exposés via l'espace de noms Microsoft.Office.InfoPath. Ces assemblys sont situés dans les répertoires indiqués ci-dessous d'une installation Office InfoPath 2007 :

Assembly Description

Microsoft.Office.InfoPath.dll (situé dans C:\Program Files\Microsoft Office\Office12\InfoPathOM)

Sous-ensemble du modèle objet contenant uniquement les types et les membres qui s'exécuteront dans la logique métier d'un modèle de formulaire déployé sur un serveur exécutant InfoPath Forms Services. (La case à cocher Activer les fonctions compatibles avec le navigateur uniquement ou Créer un modèle de formulaire qui peut être ouvert dans un navigateur ou dans InfoPath est sélectionnée.)

Microsoft.Office.InfoPath.dll (situé dans C:\Program Files\Microsoft Office\Office12\)

Modèle objet « complet » comprenant les types et les membres qui ne s'exécuteront pas dans la logique métier d'un modèle de formulaire déployé dans Office Forms Server 2007. (La case à cocher Activer les fonctions compatibles avec le navigateur uniquement ou Créer un modèle de formulaire qui peut être ouvert dans un navigateur ou dans InfoPath n'est pas sélectionnée.)

Remarque

Les assemblys mentionnés plus haut sont utilisés en phase de création lors de l'écriture et de la compilation de code. Pendant l'éxécution, l'assembly utilisé lors de l'ouverture d'un modèle de formulaire dans InfoPath réside dans le GAC (Global Assembly Cache) de l'ordinateur sur lequel InfoPath est installé. Lorsqu'un modèle de formulaire est ouvert dans un navigateur Web à partir d'un serveur exécutant InfoPath Forms Services, l'assembly utilisé réside sur le serveur.

En disposant de deux assemblys, vous avez l'assurance que votre logique métier contiendra uniquement des appels aux membres du modèle objet adaptés aux éditeurs de code de formulaire pris en charge (navigateur Web ou InfoPath). Par exemple, lorsque vous éditez votre code, les fonctions IntelliSense de saisie semi-automatique et de documentation inline ne s'afficheront et ne fonctionneront que pour les membres du modèle objet adaptés à vos éditeurs cible.

Dans les deux versions du nouveau modèle objet avec code managé exposé par l'assembly Microsoft.Office.InfoPath, la consultation et la mise à jour des magasins de données XML d'une logique métier nécessitent des appels aux membres de la classe System.Xml.XPath.XPathNavigator. Dans InfoPath 2003, la consultation et la mise à jour des magasins de données XML nécessitent l'appel aux membres de classes MSXML 5.0 (pour une logique métier créée avec JScript ou VBScript) ou un appel via les wrappers des classes MSXML 5.0 fournies par l'espace de noms Microsoft.Office.Interop.InfoPath.SemiTrust (pour une logique métier créée avec C# ou Visual Basic et Microsoft Office InfoPath 2003 Toolkit pour Visual Studio .NET).

L'utilisation de membres de la classe XPathNavigator permet au code d'une même logique métier de prendre en charge la manipulation DOM pour les modèles de formulaires ouverts dans le client InfoPath et dans les formulaires activés pour le navigateur ouverts depuis Office Forms Server 2007 ou Microsoft Office SharePoint Server 2007 avec InfoPath Forms Services dans un navigateur Web.

Pour plus d'informations sur l'utilisation des membres de la classe XPathNavigator dans la logique métier des modèles de formulaires InfoPath avec code managé, voir Utilisation des classes XPathNavigator et XPathNodeIterator.

Automatisation d'InfoPath à partir de code managé

Outre l'écriture d'une logique métier avec du code managé, il est possible d'automatiser InfoPath au moyen de code managé s'exécutant dans une application externe. Cette fonctionnalité et les assemblys requis pour l'écriture de code ont été inaugurés dans InfoPath 2003 Service Pack 1. Les objets et les membres permettant l'automatisation d'InfoPath ont été mis à jour pour offrir des fonctionnalités supplémentaires lors de l'ecriture de code d'automatisation externe pour Office InfoPath 2007.

Les classes et les membres utilisés pour l'automatisation externe sont exposés via les espaces de noms Microsoft.Office.Interop.InfoPath et Microsoft.Office.Interop.InfoPath.Xml. Les fichiers d'assembly requis pour l'écriture de code d'automatisation sont situés dans le dossier C:\Program Files\Microsoft Office\Office12 :

Assembly Description

Microsoft.Office.Interop.InfoPath.dll

Fournit une interopérabilité COM par rapport au modèle objet COM d'InfoPath pour le code d'automatisation externe écrit à l'aide de C# ou de Visual Basic .NET.

Microsoft.Office.Interop.InfoPath.Xml.dll

Fournit une interopérabilité COM par rapport à l'analyseur MSXML 5.0 pour les opérations DOM XML contenues dans le code d'automatisation externe écrit à l'aide de C# ou de Visual Basic .NET.

Pour plus d'informations sur les modèles d'objet fournis par les espaces de noms Microsoft.Office.Interop.InfoPath et Microsoft.Office.Interop.InfoPath.Xml, qui sont exclusivement utilisés pour automatiser l'application InfoPath à l'aide de code managé provenant d'applications extérieures, voir « Automatisation d'InfoPath depuis d'autres applications » dans la documentation installée avec Microsoft Visual Studio 2005 Tools pour Microsoft Office System2007.

Modèle objet Office Forms Services

Le modèle objet avec code managé permettant l'automatisation des tâches d'administration de Office Forms Server 2007 ou de InfoPath Forms Services est implémenté dans l'assembly Microsoft.Office.InfoPath.Server.dll, qui réside dans le dossier <lecteur>:\Program Files\Microsoft Office Server\12.0\Bin d'une installation de Office Forms Server 2007 ou Microsoft Office SharePoint Server 2007 :

Assembly Description

Microsoft.Office.InfoPath.Server.dll

Le modèle objet permettant l'automatisation des tâches Office Form Server telles que le téléchargement, l'activation ou la désactivation de modèles de formulaires activés pour le navigateur.

Pour plus d'informations sur le modèle objet Office Forms Services, voir le Kit de développement logiciel (SDK) de Microsoft Office Forms Server 2007, qui est disponible sur MSDN.

Environnements de développement InfoPath

Le développement d'une logique métier dans les modèles de formulaires Office InfoPath 2007 peut être assuré dans l'un des trois environnements de développement suivants :

  • Microsoft Script Editor

  • Microsoft Visual Studio Tools for Applications (VSTA)

  • Intégration du mode Création d'InfoPath à l'aide de Microsoft Visual Studio 2005 Tools pour Microsoft Office System2007 ou Visual Studio 2008 avec Visual Studio Tools pour Office

L'environnement de développement à privilégier dépend en partie du langage de programmation et du modèle objet à partir desquels votre logique métier est écrite. Vous trouverez dans les sections suivantes des informations qui vous aideront à déterminer quel l'environnement de développement utiliser.

Microsoft Script Editor (MSE)

À l'instar d'InfoPath 2003, pour développer une logique métier avec du code JScript ou VBScript écrit selon le modèle objet COM d'InfoPath, il convient d'utiliser Microsoft Script Editor (MSE), qui est installé et intégré par défaut avec l'application Office InfoPath 2007. Les fonctionnalités de cet environnement de développement sont pour l'essentiel identiques à celles d'InfoPath 2003. Pour développer une logique métier à l'aide de JScript ou de VBScript dans MSE, ouvrez le modèle de formulaire en mode Création. Ouvrez la boîte de dialogue Options de formulaire, sélectionnez la catégorie Programmation, puis définissez la valeur du paramètre Langage de programmation du modèle de formulaire à JScript ou VBScript.

Visual Studio Tools for Applications (VSTA)

Si vous avez installé Microsoft .NET Framework 2.0 et Microsoft Core XML Services (MSXML) 6.0 sur votre ordinateur, l'environnement de développement de Microsoft Visual Studio Tools for Applications (VSTA) peut être installé aux côtés de Office InfoPath 2007. Si les composants Microsoft .NET Framework 2.0 et MSXML6 n'étaient pas installés lors de l'installation initiale d'InfoPath, vous devez télécharger et installer ces composants pour pouvoir utiliser l'environnement de développement VSTA. (Microsoft .NET Framework 2.0 est disponible sous forme de mise à jour logicielle facultative, tandis que MSXML6 est disponible sur le site Web MSDN.)

L'environnement de développement VSTA n'est pas installé par défaut lorsque vous choisissez l'option d'installation Par défaut d'InfoPath. Pour installer VSTA, vous devez choisir l'option Personnaliser lors de l'installation initiale, ou utiliser Ajout/Suppression de programmes pour mettre à jour votre installation d'Office ou d'InfoPath et inclure VSTA. Pour accéder à l'option d'installation de VSTA, développez Microsoft Office InfoPath, Prise en charge de la programmabilité .NET, puis Prise en charge de la programmabilité .NET pour .NET Framework version 2.0.

L'environnement VSTA permet d'écrire une logique métier en C# ou Visual Basic selon le modèle objet compatible avec InfoPath 2003 (membres de l'espace de noms Microsoft.Office.Interop.InfoPath.SemiTrust) ou selon le nouveau modèle objet avec code managé (membres de l'espace de noms Microsoft.Office.InfoPath).

Remarque

Même si l'environnement de Visual Studio Tools for Applications requiert MSXML6 pour l'installation, les modèles de formulaires InfoPath et l'éditeur InfoPath dépendent uniquement de MSXML5.

Intégration du mode Création d'InfoPath dans Visual Studio

L'une des nouveautés de Visual Studio Tools pour Office est la possibilité d'intégrer entièrement l'environnement de création de modèles de formulaires Office InfoPath 2007 dans l'environnement de développement de Visual Studio. Si bien que vous pouvez exploiter les fonctionnalités de Office InfoPath 2007 pour créer la structure de votre modèle de formulaire tout en écrivant du code managé pour en étendre les fonctionnalités sans quitter Visual Studio.

Les fonctionnalités du concepteur de formulaires InfoPath peuvent être intégrées à Visual Studio 2005 en installant Microsoft Visual Studio 2005 Tools pour Microsoft Office System2007, qui est disponible en téléchargement sur le site InfoPath Developer Portal de MSDN. Vous devez installer Visual Studio 2005 et Office InfoPath 2007 avant Microsoft Visual Studio 2005 Tools pour Microsoft Office System2007. Vous pouvez également utiliser Visual Studio 2008 avec Visual Studio Tools pour Office.

Cet environnement de développement permet d'écrire une logique métier en C# ou Visual Basic selon le modèle objet COM Interop (membres de l'espace de noms Microsoft.Office.Interop.InfoPath.SemiTrust) ou selon le nouveau modèle objet avec code managé (membres de l'espace de noms Microsoft.Office.InfoPath).

Maitenance, création et conversion de modèles de formulaires utilisant le modèle objet InfoPath 2003

Les environnements de développement que sont VSTA et l'intégration du mode Création d'InfoPath à Visual Studio pour Office InfoPath 2007 vous permettent d'ouvrir et de continuer à utiliser les projets de modèles de formulaires InfoPath créés à l'aide de Microsoft Office InfoPath 2003 Toolkit pour Visual Studio .NET ou de Visual Studio 2005 Tools pour Microsoft Office System.

Remarque

Les utilisateurs de modèles de formulaires compilés avec VSTA, Microsoft Visual Studio 2005 Tools pour Microsoft Office System2007 ou Visual Studio 2008 avec Visual Studio Tools pour Office doivent avoir installé Microsoft .NET Framework 2.0 sur leur ordinateur. En revanche, les utilisateurs de modèles de formulaires compilés avec Visual Studio .NET 2003 n'ont besoin que de Microsoft .NET Framework 1.1 sur leur ordinateur.

Par ailleurs, vous pouvez utiliser l'un ou l'autre des environnements de développement pour créer de nouveaux projets de modèles de formulaires avec code managé fonctionnant avec le modèle objet InfoPath 2003 afin de conserver une compatibilité descendante avec InfoPath 2003. Pour utiliser ces environnements de développement et préserver la compatibilité descendante, créez un nouveau modèle de formulaire, cliquez sur Options de formulaire dans le menu Outils puis, dans la catégorie Programmation, choisissez C# (InfoPath 2003 Compatible) ou Visual Basic (InfoPath 2003 Compatible) comme langage de code du modèle de formulaire.

En outre, vous pouvez convertir un modèle de formulaire fonctionnant avec le modèle objet InfoPath 2003 dans l'optique d'utiliser le nouveau modèle objet InfoPath avec code managé. Pour plus d'informations sur la conversion des modèles de formulaires, voir Procédure d'ouverture ou de conversion d'un modèle de formulaire créé avec le script ou le toolkit InfoPath

Voir aussi

Tâches

Procédure pas à pas : Création d'un modèle de formulaire simple avec code managé
Procédure pas à pas : Création et débogage d'un modèle de formulaire basique à l'aide du modèle objet InfoPath 2003