Modèles objet et environnement de développement d'InfoPath
Microsoft InfoPath 2010prend en charge deux 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é.
InfoPath Forms Services, disponible dans Microsoft SharePoint Server 2010, offre une interface Web permettant de remplir des formulaires InfoPath. Lorsqu’ils sont déployés sur un serveur exécutant InfoPath Forms Services, les formulaires basés sur des modèles compatibles avec le navigateur (.xsn) peuvent être ouverts dans un navigateur Web à partir des ordinateurs sur lesquels InfoPath 2010 n’est pas installé. Dans le cas contraire, ils s’ouvrent dans InfoPath 2010. InfoPath Forms Services fournit également un modèle objet permettant d’automatiser les tâches de serveur liées à la publication et à l’administration des modèles de formulaires InfoPath.
InfoPath 2010 prend en charge l’environnement de programmation de Microsoft Visual Studio Tools for Applications et les langages de programmation associés, décrits plus loin dans cette rubrique.
Modèles de programmation InfoPath
InfoPath 2010 prend en charge deux modèles objet pour le développement d’une logique métier dans les modèles de formulaire, à savoir :
le modèle objet avec code managé InfoPath ;
le modèle objet avec code managé compatible avec InfoPath 2003.
En outre, InfoPath 2010 permet d’écrire du code managé dans le but d’automatiser InfoPath à partir d’une application externe.
InfoPath Forms Services fournit 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.
Notes
InfoPath Filler 2010 peut ouvrir et exécuter des solutions de modèle de formulaire InfoPath créées dans des versions antérieures d’InfoPath et qui utilisent une logique métier écrite à l’aide de langages de script (JScript et VBScript). Cependant, InfoPath Designer 2010 ne prend pas en charge la création ou la modification de modèles de formulaire utilisant une logique métier écrite à l’aide d’un script.
Modèle objet InfoPath avec code managé
Le modèle objet InfoPath 2010 avec code managé est implémenté dans deux assemblys nommés tous deux Microsoft.Office.Infopath.dll.
Une version de l’assembly implémente un sous-ensemble du modèle objet InfoPath, qui contient uniquement les types et membres pris en charge dans la logique métier des modèles de formulaires déployés sous forme de modèles de formulaires compatibles avec le navigateur et exécutés sur Microsoft SharePoint Server 2010 avec InfoPath Forms Services. Les modèles de formulaires associés à une logique métier écrite en prenant en compte cet assembly peuvent être ouverts et exécutés dans InfoPath Filler et dans un navigateur Web.
L’autre version de l’assembly implémente des types et membres supplémentaires qui offrent des fonctions non prises en charge dans la logique métier des modèles de formulaires compatibles avec le navigateur. Les modèles de formulaires associés à une logique métier écrite en prenant en compte les classes et membres supplémentaires de cet assembly s’ouvrent et s’exécutent uniquement dans l’éditeur InfoPath Filler.
Notes
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 Filler 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 l’éditeur InfoPath Filler. Pour plus d’informations, voir Procédure d'écriture d'une logique conditionnelle qui détermine l'environnement à l'exécution
L’assembly utilisé par InfoPath lorsque vous ajoutez et compilez une logique métier pour le modèle de formulaire varie selon que vous sélectionnez le modèle de formulaire Formulaire vierge ou le modèle de formulaire Formulaire vierge (InfoPath Filler) dans l’onglet Nouveau de Microsoft Office Backstage lorsque vous commencez à créer un nouveau formulaire dans InfoPath Designer. Les formulaires créés en utilisant le modèle de formulaire Formulaire vierge utilisent l’assembly qui contient uniquement les types et membres pris en charge dans la logique métier des modèles de formulaires déployés en tant que modèles de formulaires compatibles avec le navigateur. Les formulaires créés à l’aide du modèle de formulaire Formulaire vierge peuvent être ouverts dans le navigateur Web et dans InfoPath Filler. Les formulaires créés à l’aide du modèle de formulaire Formulaire vierge (InfoPath Filler) utilisent l’assembly implémentant les types et membres supplémentaires qui offrent des fonctions non prises en charge dans la logique métier des modèles de formulaires compatibles avec le navigateur. Ils doivent uniquement être ouverts dans InfoPath Filler.
Conseil
Une fois que vous avez commencé à créer un modèle de formulaire, vous pouvez modifier l’assembly utilisé en modifiant les paramètres de compatibilité du formulaire. Pour ce faire, cliquez sur Langage dans l’onglet Développeur, puis cliquez sur Compatibilité dans la liste Catégorie. Dans la liste Type de formulaire, sélectionnez Formulaire de navigateur Web pour créer un formulaire pouvant être déployé en tant que formulaire compatible avec le navigateur sur Microsoft SharePoint Server 2010. Sélectionnez Formulaire InfoPath Filler pour créer un formulaire qui pourra uniquement être exécuté dans l’éditeur InfoPath Filler. Les autres options disponibles dans la liste Type de formulaire permettent d’assurer la compatibilité avec InfoPath 2007 et InfoPath 2003.
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 se trouvent dans les répertoires indiqués ci-dessous d’une installation InfoPath 2010 :
Assembly |
Description |
---|---|
Microsoft.Office.InfoPath.dll |
Sous-ensemble du modèle objet, contenant uniquement les types et 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. |
Microsoft.Office.InfoPath.dll |
Modèle objet « complet » contenant 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 InfoPath Forms Services. |
Notes
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’exé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 Filler). Par exemple, lorsque vous éditez votre code, les fonctions IntelliSense de saisie semi-automatique et de documentation en ligne s’afficheront et fonctionneront uniquement pour les membres du modèle objet adaptés à vos éditeurs de formulaires cibles.
Dans les deux versions du 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 (pour une logique métier créée à l’aide de JScript ou VBScript) ou un appel via les wrappers des classes MSXML fournies par l’espace de noms Microsoft.Office.Interop.InfoPath.SemiTrust (pour une logique métier créée à l’aide de 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 compatibles avec le navigateur ouverts dans un navigateur Web à partir de Microsoft SharePoint Server 2010 avec InfoPath Forms Services.
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.
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 InfoPath 2010 pour assurer une compatibilité avec InfoPath 2003.
Les classes et les membres de ce modèle objet 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\Office14 :
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 de formulaire écrite à l’aide de C# ou de Visual Basic .NET. |
Notes
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 InfoPath 2010, toute logique métier écrite à partir de ce modèle objet n’est pas prise en charge pour les modèles de formulaires compatibles avec le navigateur qui sont déployés sur Microsoft SharePoint Server 2010 avec InfoPath Forms Services. Les modèles de formulaires compatibles avec le navigateur doivent utiliser le modèle objet InfoPath avec code managé dans le cas d’une logique métier personnalisée.
Automatisation d'InfoPath à partir de code managé
En plus de pouvoir écrire une logique métier avec du code managé, les développeurs peuvent également 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é introduits 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’écriture de code d’automatisation externe pour InfoPath 2010.
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\Office14 :
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. |
Microsoft.Office.Interop.InfoPath.Xml.dll |
Fournit une interopérabilité COM par rapport à l’analyseur MSXML pour les opérations DOM XML contenues dans le code d’automatisation externe écrit à l’aide de C# ou de Visual Basic. |
Pour plus d’informations sur les modèles objets fournis par les espaces de noms Microsoft.Office.Interop.InfoPath et Microsoft.Office.Interop.InfoPath.Xml, qui sont utilisés exclusivement pour automatiser l’application InfoPath à l’aide de code managé provenant d’applications externes, voir le Centre pour développeurs InfoPath (éventuellement en anglais).
Modèle objet InfoPath Forms Services
Le modèle objet avec code managé permettant l’automatisation des tâches d’administration 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\14.0\Bin d’une installation Microsoft SharePoint Server 2010 :
Assembly |
Description |
---|---|
Microsoft.Office.InfoPath.Server.dll |
Le modèle objet permettant l’automatisation des tâches InfoPath Forms Services telles que le téléchargement, l’activation ou la désactivation de modèles de formulaires compatibles avec le navigateur. |
Pour plus d’informations sur le modèle objet InfoPath Forms Services, voir le Kit de développement logiciel (SDK) de Microsoft SharePoint Server 2010, disponible sur MSDN.
Environnement de développement InfoPath
Le développement d’une logique métier dans les modèles de formulaires InfoPath 2010 peut être réalisé dans l’environnement de développement Microsoft Visual Studio Tools for Applications.
Notes
InfoPath 2010 ne prend pas en charge la création ou l’édition de modèles de formulaires utilisant une logique métier écrite à l’aide de JScript ou VBScript, bien qu’InfoPath Filler prenne en charge l’ouverture de modèles de formulaires basés sur des scripts et créés dans des versions antérieures d’InfoPath. Par ailleurs, InfoPath 2010 ne prend pas en charge le développement de modèles de formulaires dans Visual Studio.
Visual Studio Tools for Applications
Si vous avez installé Microsoft .NET Framework 2.0 ou une version ultérieure sur votre ordinateur, l’environnement de développement Microsoft Visual Studio Tools for Applications peut être installé en même temps qu’InfoPath 2010. Si les composants Microsoft .NET Framework 2.0 ou version ultérieure n’étaient pas déjà installés lors de la première installation d’InfoPath, vous devez les télécharger et les installer pour pouvoir utiliser l’environnement de développement Microsoft Visual Studio Tools for Applications.
L’environnement de développement Microsoft Visual Studio Tools for Applications n’est pas installé par défaut lorsque vous installez InfoPath. Pour installer Microsoft Visual Studio Tools for Applications, vous devez choisir Personnaliser lors de la première installation ou utiliser la commande Ajouter ou supprimer des composants pour mettre à jour votre installation Office ou InfoPath de sorte qu’elle inclue Microsoft Visual Studio Tools for Applications. L’option permettant d’installer Microsoft Visual Studio Tools for Applications est accessible en développant Microsoft Office InfoPath et Prise en charge de la programmabilité .NET dans le programme d’installation.
L’environnement Microsoft Visual Studio Tools for Applications 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).
Maintenance, création et conversion de modèles de formulaires utilisant le modèle objet InfoPath 2003
Microsoft Visual Studio Tools for Applications vous permet 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.
Notes
Les utilisateurs de modèles de formulaires compilés avec Microsoft Visual Studio Tools for Applications doivent avoir installé Microsoft .NET Framework 2.0 ou une version ultérieure 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.
Pour utiliser Microsoft Visual Studio Tools for Applications et assurer une compatibilité descendante avec InfoPath 2003, créez un modèle de formulaire, cliquez sur Langage dans l’onglet Développeur, cliquez sur Compatibilité, puis définissez ensuite Type de formulaire sur Formulaire InfoPath 2003 Filler. Cliquez ensuite sur Programmation et sélectionnez dans Langage de code du modèle de formulaire le langage à utiliser.
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 InfoPath Toolkit
Voir aussi
Tâches
Procédure pas à pas : Création d'un modèle de formulaire simple avec code managé