Comprender los modelos de objetos y los entornos de desarrollo de InfoPath 2007
Microsoft Office InfoPath 2007 admite tres tipos de modelos de programación para desarrollar lógica empresarial en plantillas de formulario; además, admite la automatización externa desde código administrado.
Microsoft Office Forms Server 2007 y la funcionalidad de formularios equivalente denominada InfoPath Forms Services disponible en Microsoft Office SharePoint Server 2007 proporcionan un modelo de objetos para automatizar las tareas de servidor.
Office InfoPath 2007 admite tres entornos de desarrollo y varios lenguajes de programación, que se describen más adelante en este tema. El entorno de desarrollo que se utilice depende en cierta medida del lenguaje de programación con el que se tenga que trabajar.
Modelos de programación de InfoPath
Office InfoPath 2007 admite tres modelos de objetos para desarrollar lógica empresarial en plantillas de formulario:
Modelo de objetos COM y de secuencias de comandos
Modelo de objetos de código administrado compatible con InfoPath 2003
Nuevo modelo de objetos de código administrado de InfoPath
Además, Office InfoPath 2007 proporciona un método para escribir código administrado para automatizar InfoPath desde una aplicación externa.
Microsoft Office Forms Server 2007 y InfoPath Forms Services proporcionan un modelo de objetos para automatizar las tareas de servidor, como la comprobación y la carga de plantillas de formulario desde código que se ejecuta en el servidor, que exige permisos de acceso de administrador para el servidor.
Modelo de objetos COM y de secuencias de comandos
El modelo de objetos COM y de secuencias de comandos se implementa en los siguientes archivos de biblioteca de vínculos dinámicos (*.dll), que se encuentran en la carpeta C:\Archivos de programa\Microsoft Office\Office12:
Biblioteca de vínculos dinámicos | Descripción |
---|---|
IPEDITOR.DLL |
Proporciona el modelo de objetos COM para el tiempo de ejecución de edición de formularios de InfoPath. Expone objetos y miembros a los que se puede llamar desde lógica empresarial escrita en JScript o VBScript. También expone métodos del objeto Application y la colección XDocuments a los que se puede llamar desde componentes y aplicaciones COM para automatizar la aplicación InfoPath. |
IPDESIGN.DLL |
Proporciona interfaces basadas en COM para crear convertidores de formularios personalizados, así como los objetos ExcelImporter y WordImporter para crear plantillas de formulario de InfoPath mediante la importación del diseño de formularios creados en Excel y en Word. |
Nota: |
---|
Si bien el cliente de InfoPath sigue admitiendo la creación de lógica empresarial con lenguajes de secuencias de comandos (JScript y VBScript) en el modelo de objetos COM y de secuencias de comandos, la lógica empresarial escrita en secuencias de comandos no se admite en formularios habilitados para explorador implementados en Office Forms Server 2007 o en Microsoft Office SharePoint Server 2007 con InfoPath Forms Services. Las plantillas de formulario habilitadas para explorador deben usar el nuevo modelo de objetos de código administrado de InfoPath para la lógica empresarial personalizada. |
Para obtener más información sobre el trabajo con secuencias de comandos y la automatización COM, vea la documentación de referencia para programadores de InfoPath, que se puede consultar haciendo clic en Ayuda de Microsoft Office InfoPath en el menú Ayuda de Office InfoPath 2007.
Modelo de objetos de código administrado compatible con InfoPath 2003
El modelo de objetos de código administrado compatible con InfoPath 2003 se introdujo por primera vez en InfoPath 2003 Service Pack 1, junto con el Kit de herramientas de Microsoft Office InfoPath 2003 para Visual Studio .NET, para escribir lógica empresarial en plantillas de formulario con código administrado. Este modelo de objetos se puede utilizar con Office InfoPath 2007, por razones de compatibilidad con InfoPath 2003.
Las clases y los miembros de este modelo de objetos se exponen a través del espacio de nombres Microsoft.Office.Interop.InfoPath.SemiTrust. Este modelo se implementa en el siguiente archivo de ensamblado, que se encuentra en la carpeta C:\Archivos de programa\Microsoft Office\Office12:
Ensamblado | Descripción |
---|---|
Microsoft.Office.Interop.InfoPath.SemiTrust.dll |
Proporciona la interoperabilidad COM con el objeto de modelos COM de InfoPath para lógica empresarial de plantillas de formulario escrita con C# o Visual Basic .NET. |
Nota: |
---|
Si bien la creación de lógica empresarial con el modelo de objetos de código administrado de interoperabilidad COM proporcionado por el ensamblado Microsoft.Office.Interop.InfoPath.SemiTrust es compatible con Office InfoPath 2007, la lógica empresarial escrita utilizando este modelo no se admite en plantillas de formulario habilitadas para explorador implementadas en Office Forms Server 2007 o Microsoft Office SharePoint Server 2007 con InfoPath Forms Services. Estas plantillas deben usar el nuevo modelo de objetos de código administrado de InfoPath para lógica empresarial personalizada. |
Nota: |
---|
Al crear un proyecto de plantilla de formulario compatible con InfoPath 2003 (mediante el establecimiento de Lenguaje del código de la plantilla de formulario en C# (compatible con InfoPath 2003) o Visual Basic (compatible con InfoPath 2003) en la categoría Programación del cuadro de diálogo Opciones de formulario), todas las llamadas se realizarán de manera predeterminada a miembros del espacio de nombres Microsoft.Office.Interop.InfoPath.SemiTrust compatibles con las versiones anteriores. Sin embargo, si la compatibilidad con versiones anteriores ya no es necesaria, puede utilizar los miembros del nuevo modelo de objetos del espacio de nombres Microsoft.Office.Interop.InfoPath.SemiTrust. Para obtener más información, vea Cómo: Usar los miembros de Microsoft.Office.Interop.InfoPath.SemiTrust que no son compatibles con InfoPath 2003. |
Nuevo modelo de objetos de código administrado de InfoPath
Un nuevo modelo de objetos de código administrado de InfoPath se implementa en dos ensamblados, los dos con el nombre Microsoft.Office.Infopath.dll.
Una versión del ensamblado implementa un subconjunto del modelo de objetos de InfoPath que sólo contiene los tipos y los miembros compatibles con la lógica empresarial de las plantillas de formulario habilitadas para explorador y que se ejecutan en Office Forms Server 2007 o Microsoft Office SharePoint Server 2007 con InfoPath Forms Services. Las plantillas de formulario con lógica empresarial escrita para este ensamblado se pueden abrir y ejecutar en InfoPath y en un explorador Web.
La otra versión del ensamblado implementa el modelo de objetos de InfoPath completo, que contiene tipos y miembros adicionales que proporcionan funcionalidad que no es compatible con la lógica empresarial de las plantillas de formulario habilitadas para explorador. Las plantillas de formulario con lógica empresarial escrita en las clases y los miembros específicos de InfoPath de este ensamblado sólo se pueden abrir y ejecutar en InfoPath.
Nota: |
---|
Se puede escribir lógica condicional que use las propiedades de la clase Environment para determinar el entorno (InfoPath o un explorador web) en que se está ejecutando la plantilla de formulario. Si se usa esta lógica condicional, la lógica empresarial se puede dividir entre código que funcione en un explorador web y código escrito con clases y miembros que sólo funcionen en InfoPath. Para obtener más información, vea Cómo: Escribir lógica condicional que determine los entornos en tiempo de ejecución |
El ensamblado utilizado por InfoPath al agregar y compilar lógica empresarial para la plantilla de formulario depende de si se activa la casilla de verificación Habilitar solamente características compatibles con el explorador del cuadro de diálogo Diseñar un formulario al empezar a diseñar un formulario. Si se desea, se puede cambiar este valor del cuadro de diálogo Opciones de formulario en la categoría Compatibilidad activando o desactivando la casilla Diseñar una plantilla de formulario que se pueda abrir en un explorador o en InfoPath.
Las clases y miembros de las dos versiones de este modelo de objetos se exponen a través del espacio de nombres Microsoft.Office.InfoPath. Estos ensamblados se encuentran en los siguientes directorios de una instalación de Office InfoPath 2007:
Ensamblado | Descripción |
---|---|
Microsoft.Office.InfoPath.dll (ubicado en C:\Archivos de programa\Microsoft Office\Office12\InfoPathOM) |
Subconjunto del modelo de objetos que sólo contiene tipos y miembros que se pueden ejecutar en la lógica empresarial de una plantilla de formulario implementada en un servidor en que se ejecute InfoPath Forms Services (deben estar activadas las casillas Activar solamente funciones compatibles con el explorador o Diseñar una plantilla de formulario que se pueda abrir en un explorador o en InfoPath) |
Microsoft.Office.InfoPath.dll (ubicado en C:\Archivos de programa\Microsoft Office\Office12\InfoPathOM) |
Modelo de objetos completo con los tipos y los miembros que no se pueden ejecutar en la lógica empresarial de una plantilla de formulario implementada en Office Forms Server 2007 (no deben estar activadas las casillas Activar solamente funciones compatibles con el explorador o Diseñar una plantilla de formulario que se pueda abrir en un explorador o en InfoPath) |
Nota: |
---|
Los ensamblados a los que se hace referencia más arriba se usan en tiempo de diseño al escribir y compilar código. En tiempo de ejecución, el ensamblado utilizado al abrir una plantilla de formulario en InfoPath se encuentra en la caché de ensamblados global (GAC) del equipo en que está instalado InfoPath. Al abrir una plantilla de formulario en un explorador web desde un servidor con InfoPath Forms Services, el ensamblado utilizado se encuentra en el servidor. |
Al disponer de dos ensamblados, se contribuye a garantizar que la lógica empresarial sólo contendrá llamadas a los miembros del modelo de objetos adecuados para los editores de formularios compatibles (explorado web o InfoPath). Por ejemplo, al editar el código, las características de IntelliSense como la finalización de instrucciones y la documentación en línea sólo se mostrará y funcionará con los miembros del modelo de objetos adecuados para los editores que se utilicen.
En las dos versiones del nuevo modelo de objetos de código administrado que expone el ensamblado Microsoft.Office.InfoPath, la exploración y la actualización de los almacenes de datos XML de la lógica empresarial requieren llamadas a los miembros de la clase System.Xml.XPath.XPathNavigator. En InfoPath 2003, la exploración y la actualización de los almacenes de datos XML requieren llamadas a miembros de clases de MSXML 5.0 (para la lógica empresarial creada con JScript o VBScript) o llamadas a través de los contenedores de las clases de MSXML 5.0 proporcionadas por el espacio de nombres Microsoft.Office.Interop.InfoPath.SemiTrust (para la lógica empresarial creada con C# o Visual Basic y el Kit de herramientas de Microsoft Office InfoPath 2003 para Visual Studio .NET).
El uso de miembros de la clase XPathNavigator permite que el mismo código de lógica empresarial sea compatible con la manipulación de DOM para plantillas de formulario que se abran en el cliente de InfoPath y en formularios habilitados para Web abiertos desde Office Forms Server 2007 o desde Microsoft Office SharePoint Server 2007 con InfoPath Forms Services en un explorador web.
Para obtener información sobre el trabajo con miembros de la clase XPathNavigator en la lógica empresarial de plantillas de formulario con código administrado de InfoPath, vea Cómo: Trabajar con las clases XPathNavigator y XPathNodeIterator.
Automatizar InfoPath desde otras aplicaciones
Además de escribir lógica empresarial con código administrado, InfoPath se puede automatizar utilizando el código administrado que se ejecuta en una aplicación externa. Esta funcionalidad y los ensamblados necesarios para escribir código se introdujeron por primera vez en InfoPath 2003 Service Pack 1. Los objetos y los miembros para automatizar InfoPath se han actualizado, de forma que proporcionan funcionalidad adicional cuando se escribe código de automatización externo para Office InfoPath 2007.
Las clases y los miembros utilizados para la automatización externa se exponen a través de los espacios de nombres Microsoft.Office.Interop.InfoPath y Microsoft.Office.Interop.InfoPath.Xml. Los archivos de ensamblado necesarios para escribir código de automatización se encuentran en la carpeta C:\Archivos de programa\Microsoft Office\Office12:
Ensamblado | Descripción |
---|---|
Microsoft.Office.Interop.InfoPath.dll |
Proporciona la interoperabilidad COM con el objeto de modelos COM de InfoPath para el código de automatización externo escrito con C# o Visual Basic .NET. |
Microsoft.Office.Interop.InfoPath.Xml.dll |
Proporciona la interoperabilidad COM con las operaciones de MSXML 5.0 para DOM XML en el código de automatización externo escrito con C# o Visual Basic .NET. |
Para obtener información sobre los modelos de objetos ofrecidos en los espacios de nombres Microsoft.Office.Interop.InfoPath y Microsoft.Office.Interop.InfoPath.Xml, que se utilizan exclusivamente para automatizar la aplicación de InfoPath usando código de aplicaciones externas, vea "Automating InfoPath desde otras aplicaciones" en la documentación que se instala con Microsoft Visual Studio 2005 Tools para 2007 Microsoft Office System.
Modelo de objetos de servicios de formularios de Office
El modelo de objetos de código administrado para la automatización de las tareas administrativas de Office Forms Server 2007 o InfoPath Forms Services se implementa en Microsoft.Office.InfoPath.Server.dll, que se encuentra en <unidad>:\Archivos de programa\Microsoft Office Server\12.0\Bin en las instalaciiones de Office Forms Server 2007 o Microsoft Office SharePoint Server 2007:
Ensamblado | Descripción |
---|---|
Microsoft.Office.InfoPath.Server.dll |
Modelo de objetos para automatizar tareas de servidor de formularios de Office como la carga, la activación o la desactivación de plantillas de formulario habilitadas para explorador. |
Para obtener más información sobre el modelo de objetos de servidor de formularios de Office, vea el SDK (kit de desarrollo de software) de Microsoft Office Forms Server 200, que puede encontrar en MSDN.
Entornos de desarrollo de InfoPath
El desarrollo de lógica empresarial en las plantillas de formulario de Office InfoPath 2007 se puede llevar a cabo utilizando uno de estos tres entornos de desarrollo:
Editor de secuencias de comandos de Microsoft
Microsoft Visual Studio Tools para aplicaciones (VSTA)
Integración del modo de diseño InfoPath con Microsoft Visual Studio 2005 Tools para 2007 Microsoft Office System o Visual Studio 2008 con Visual Studio Tools para Office
El entorno de desarrollo que se utilice depende, en cierta medida, del lenguaje de programación y del modelo de objetos en que se escriba la lógica empresarial. En las secciones siguientes encontrará información que le ayudará a determinar qué entorno de desarrollo debe usar.
Editor de secuencias de comandos de Microsoft (MSE)
Al igual que sucedía en InfoPath 2003, para escribir lógica empresarial utilizando código escrito en JScript o VBScript en el modelo de objetos COM de InfoPath, se usa Microsoft Script Editor (MSE), que se instala e integra con la aplicación Office InfoPath 2007 de manera predeterminada. Las características de este entorno de desarrollo son prácticamente las mismas que las de InfoPath 2003. Para desarrollar lógica empresarial utilizando código JScript o VBScript en MSE, abra la plantilla de formulario en modo de diseño. Abra el cuadro de diálogo Opciones de formulario, seleccione la categoría Programación y, a continuación, establezca el Lenguaje de programación de la plantilla de formulario en JScript o VBScript.
Visual Studio Tools para aplicaciones (VSTA)
Si el equipo tiene instalados Microsoft .NET Framework 2.0 y Microsoft Core XML Services (MSXML) 6.0, el entorno de desarrollo de Microsoft Visual Studio Tools para aplicaciones (VSTA) se puede instalar junto con Office InfoPath 2007. Si no tenía los componentes Microsoft .NET Framework 2.0 y MSXML6 instalados en el equipo la primera vez que instaló InfoPath, debe descargarlos e instalarlos para poder usar el entorno de desarrollo de VSTA. Microsoft .NET Framework 2.0 está disponible como actualización de software opcional en Windows Update; MSXML6 está disponible en el sitio web MSDN.
El entorno de desarrollo de VSTA no se instala de manera predeterminada al seleccionar Típica para instalar InfoPath. Para instalar VSTA, debe elegir Personalizar la primera vez que realice la instalación o usar Agregar o quitar programas para actualizar la instalación de Office o InfoPath y que incluya VSTA. La opción para instalar VSTA está disponible expandiendo Microsoft Office InfoPath, Compatibilidad con programación de .NET y Compatibilidad con programación de .NET para .NET Framework versión 2.0.
El entorno de VSTA se puede usar para escribir lógica empresarial en C# o Visual Basic con el modelo de objetos compatible con InfoPath 2003 (miembros del espacio de nombres Microsoft.Office.Interop.InfoPath.SemiTrust) o el nuevo modelo de objetos de código administrado (miembros del espacio de nombres Microsoft.Office.InfoPath).
Nota: |
---|
Si bien el entorno de Visual Studio Tools para aplicaciones requiere MSXML6 para su instalación, las plantillas de formulario de InfoPath y el editor de InfoPath sólo dependen de MSXML5. |
Integración del modo de diseño de InfoPath en Visual Studio
La nueva característica de Visual Studio Tools para Office es que el entorno de diseño de plantillas de formulario de Office InfoPath 2007 se puede integrar totalmente en el entorno de desarrollo de Visual Studio 2005. Puede trabajar con las características de Office InfoPath 2007 para diseñar el aspecto de las plantillas de formulario a la vez que escribe código administrado para ampliar sus capacidades sin salir de Visual Studio.
Las características del diseñador de formularios de InfoPath se pueden integrar en Visual Studio 2005 instalando Microsoft Visual Studio 2005 Tools para 2007 Microsoft Office System, que se puede descargar desde InfoPath Developer Portal en MSDN. Antes de instalar Microsoft Visual Studio 2005 Tools para 2007 Microsoft Office System, debe tener instalados Visual Studio 2005 y Office InfoPath 2007.Visual Studio 2008 con Visual Studio Tools para Office
Este entorno de desarrollo se puede usar para escribir lógica empresarial en C# o Visual Basic con el modelo de objetos de interoperabilidad COM (miembros del espacio de nombres Microsoft.Office.Interop.InfoPath.SemiTrust) o el nuevo modelo de objetos de código administrado (miembros del espacio de nombres Microsoft.Office.InfoPath).
Mantener, crear y convertir plantillas de formulario que funcionen con el modelo de objetos de InfoPath 2003
VSTA y la integración del modo de diseño de InfoPath en los entornos de desarrollo de Visual Studio para Office InfoPath 2007 le permiten abrir proyectos de plantillas de formulario de InfoPath creados con el Kit de herramientas de Microsoft Office InfoPath 2003 para Visual Studio .NET o con Visual Studio 2005 Tools for the Microsoft Office System y seguir trabajando con ellos.
Nota: |
---|
Los usuarios de plantillas de formulario compiladas con VSTA, Microsoft Visual Studio 2005 Tools para 2007 Microsoft Office System o Visual Studio 2008 con Visual Studio Tools para Office eben tener Microsoft .NET Framework 2.0 instalado en el equipo. Los usuarios de plantillas de formulario compiladas con Visual Studio .NET 2003 sólo necesitan Microsoft .NET Framework 1.1 en el equipo. |
También puede usar cualquiera de los entornos de desarrollo para crear proyectos de plantillas de formulario con código administrado que funcionen con el modelo de objetos de InfoPath 2003, por razones de compatibilidad. Para usar estos entornos de desarrollo y mantener la compatibilidad con la versión anterior, cree una plantilla de formulario, haga clic en Opciones de formulario en el menú Herramientas y, a continuación, en la categoría Programación, elija C# (compatible con InfoPath 2003) o Visual Basic (compatible con InfoPath 2003) como lenguaje del código de la plantilla de formulario.
Además, puede convertir una plantilla de formulario que funcione con el modelo de objetos de InfoPath 2003 para que use el nuevo modelo de objetos de código administrado de InfoPath. Para obtener información sobre la conversión de plantillas de formulario, vea Cómo: Abrir o convertir una plantilla de formulario creada con el Kit de herramientas o la secuencia de comandos de InfoPath
Vea también
Tareas
Tutorial: Crear una plantilla de formulario de código administrado básica
Tutorial: Crear y depurar una plantilla de formulario básica mediante el modelo de objetos de InfoPath 2003