Compartir a través de


Comprender los modelos de objetos y el entorno de desarrollo de InfoPath

Microsoft InfoPath 2010 admite dos tipos de modelos de programación para desarrollar lógica empresarial en plantillas de formulario; además, admite la automatización externa desde un código administrado.

InfoPath Forms Services, que está disponible en Microsoft SharePoint Server 2010, brinda una experiencia de explorador web para completar formularios de InfoPath. Cuando se implementa en un servidor que ejecuta InfoPath Forms Services, los formularios basados en plantillas de formulario compatibles con el explorador (.xsn) se pueden abrir en un explorador web desde equipos que no tienen instalado InfoPath 2010, pero se abrirán en InfoPath 2010 cuando se instale. InfoPath Forms Services también proporciona un modelo de objeto para la automatización de tareas de servidor relacionadas con la administración y la publicación de plantillas de formulario de InfoPath.

InfoPath 2010 admite el entorno de programación de Microsoft Visual Studio Tools for Applications y los lenguajes de programación asociados, que se describen más adelante en este tema.

Modelos de programación de InfoPath

InfoPath 2010 admite dos modelos de objetos para desarrollar lógica empresarial en plantillas de formulario:

  • Modelo de objetos de código administrado de InfoPath

  • Modelo de objetos de código administrado compatible con InfoPath 2003

Además, InfoPath 2010 permite escribir código administrado para automatizar InfoPath desde una aplicación externa.

InfoPath Forms Services proporciona 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 y acceso de administrador para el servidor.

Nota

InfoPath Filler 2010 puede abrir y ejecutar soluciones de plantilla de formulario de InfoPath creadas en versiones anteriores de InfoPath que usan lógica empresarial escrita con lenguajes de scripting (JScript y VBScript). Sin embargo, InfoPath Designer 2010 no admite la creación ni la modificación de plantillas de formulario que usan lógica empresarial escrita con script.

Modelo de objetos de código administrado de InfoPath

El modelo de objetos de código administrado de InfoPath 2010 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 implementadas como plantillas de formulario habilitadas para el explorador que se ejecutan en Microsoft SharePoint Server 2010 con InfoPath Forms Services. Las plantillas de formulario con lógica empresarial escrita para este ensamblado se pueden abrir y ejecutar en InfoPath Filler y en un explorador web.

La otra versión del ensamblado implementa tipos y miembros adicionales que proporcionan funcionalidad que no es compatible con la lógica empresarial de las plantillas de formulario habilitadas para el explorador. Las plantillas de formulario con lógica empresarial escrita en las clases y los miembros adicionales de este ensamblado sólo se pueden abrir y ejecutar en el editor de InfoPath Filler.

Nota

Se puede escribir lógica condicional que use las propiedades de la clase Environment para determinar el entorno (InfoPath Filler o un explorador web) en que se va a ejecutar 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 en clases y miembros que solo funcionen en el editor de InfoPath Filler. Para obtener más información, vea Cómo: Escribir lógica condicional que determine los entornos en tiempo de ejecución

El ensamblado que usa InfoPath cuando agrega y compila lógica empresarial para la plantilla de formulario depende de si selecciona la plantilla de formulario Formulario en blanco o Formulario en blanco (InfoPath Filler) en la ficha Nuevo de Microsoft Office Backstage cuando comienza a diseñar un nuevo formulario en InfoPath Designer. Los formularios creados con la plantilla de formulario Formulario en blanco usan el ensamblado que contiene solo los tipos y miembros admitidos en la lógica empresarial de plantillas de formularios implementadas como plantillas de formulario habilitadas para el explorador. Los formularios creados con la plantilla de formulario Formulario en blanco se pueden abrir en el explorador web y en InfoPath Filler. Los formularios creados con la plantilla de formulario Formulario en blanco (InfoPath Filler) usan el ensamblado que implementa tipos y miembros adicionales que proporcionan funcionalidad no admitida en la lógica empresarial de plantillas de formulario habilitadas para el explorador, y solo se pueden abrir en InfoPath Filler.

Sugerencia

Después de comenzar a diseñar una plantilla de formulario, puede modificar el ensamblado que se usa al modificar la configuración de compatibilidad del formulario. Para esto, haga clic en Idioma en la ficha Programador y, a continuación, haga clic en Compatibilidad en la lista Categoría. En la lista Tipo de formulario, seleccione Formulario de explorador web para crear un formulario que se pueda implementar como formulario compatible con el explorador en Microsoft SharePoint Server 2010. Seleccione Formulario de InfoPath Filler para crear un formulario que se pueda ejecutar sólo en el editor de InfoPath Filler. Las demás selecciones en la lista Tipo de formulario son compatibles con InfoPath 2007 y InfoPath 2003.

Las clases y los 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 InfoPath 2010:

Ensamblado

Descripción

Microsoft.Office.InfoPath.dll
(ubicado en C:\Archivos de programa\Microsoft Office\Office14\InfoPathOMInfoPathOMFormServices)

Subconjunto del modelo de objetos que solo contiene tipos y miembros que se pueden ejecutar en la lógica empresarial de una plantilla de formulario implementada en un servidor que ejecuta InfoPath Forms Services.

Microsoft.Office.InfoPath.dll
(ubicado en C:\Archivos de programa\Microsoft Office\Office14\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 InfoPath Forms Services.

Nota

Los ensamblados a los que se hace referencia más arriba en esta sección se usan en tiempo de diseño al escribir y compilar código. En tiempo de ejecución, el ensamblado usado al abrir una plantilla de formulario en InfoPath se encuentra en la caché global de ensamblados (GAC) del equipo donde está instalado InfoPath. Al abrir una plantilla de formulario en un explorador web desde un servidor que ejecuta InfoPath Forms Services, el ensamblado usado se encuentra en el servidor.

Al disponer de dos ensamblados, se contribuye a garantizar que la lógica empresarial solo contendrá llamadas a los miembros del modelo de objetos adecuados para los editores de formularios compatibles (explorador web o InfoPath Filler). 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án y funcionarán con los miembros del modelo de objetos adecuados para los editores de los formularios de destino.

En las dos versiones del 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 (para la lógica empresarial creada con JScript o VBScript) o llamadas a través de los contenedores de las clases de MSXML 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 abren en el cliente de InfoPath y en los formularios habilitados para Web abiertos desde Microsoft SharePoint Server 2010 con InfoPath Forms Services en un explorador web.

Para obtener información acerca del 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.

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 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 aún es admitido por InfoPath 2010, 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\Office14:

Ensamblado

Descripción

Microsoft.Office.Interop.InfoPath.SemiTrust.dll

Proporciona la interoperabilidad COM con el modelo de objetos COM de InfoPath para lógica empresarial de plantillas de formulario escrita con C# o Visual Basic.

Nota

Si bien InfoPath 2010 aún admite crear lógica empresarial con el modelo de objetos de código administrado de interoperabilidad COM que proporciona el ensamblado Microsoft.Office.Interop.InfoPath.SemiTrust, la lógica empresarial escrita con este modelo de objetos no se admite para plantillas de formulario habilitadas para el explorador e implementadas en Microsoft SharePoint Server 2010 con InfoPath Forms Services. Las plantillas de formulario habilitadas para el explorador deben usar el modelo de objetos de código administrado de InfoPath para la lógica empresarial personalizada.

Automatizar InfoPath desde código administrado

Además de escribir lógica empresarial con código administrado, los desarrolladores pueden automatizar InfoPath usando 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 actualizaron y ahora proporcionan funcionalidad adicional cuando se escribe código de automatización externa para InfoPath 2010.

Las clases y los miembros usados 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\Office14:

Ensamblado

Descripción

Microsoft.Office.Interop.InfoPath.dll

Proporciona la interoperabilidad COM con el modelo de objetos COM de InfoPath para el código de automatización externa escrito con C# o Visual Basic.

Microsoft.Office.Interop.InfoPath.Xml.dll

Proporciona la interoperabilidad COM con las operaciones de MSXML para DOM XML en el código de automatización externa escrito con C# o Visual Basic.

Para obtener información acerca de los modelos de objetos proporcionados en los espacios de nombres Microsoft.Office.Interop.InfoPath y Microsoft.Office.Interop.InfoPath.Xml, que se usan exclusivamente para automatizar la aplicación de InfoPath usando código administrado de aplicaciones externas, vea Centro de desarrolladores de InfoPath.

Modelo de objetos de InfoPath Forms Services

El modelo de objetos de código administrado para la automatización de las tareas administrativas de InfoPath Forms Services se implementa en Microsoft.Office.InfoPath.Server.dll, que se encuentra en <unidad>:\Archivos de programa\Microsoft Office Server\14.0\Bin, en una instalación de Microsoft SharePoint Server 2010:

Ensamblado

Descripción

Microsoft.Office.InfoPath.Server.dll

Modelo de objetos para automatizar tareas de InfoPath Forms Services como la carga, la activación o la desactivación de plantillas de formulario habilitadas para el explorador.

Para obtener más información acerca del modelo de objetos de InfoPath Forms Services, vea el kit de desarrollo de software (SDK) de Microsoft SharePoint Server 2010, que puede encontrar en MSDN.

Entorno de desarrollo de InfoPath

El desarrollo de lógica empresarial en las plantillas de formulario de InfoPath 2010 se puede llevar a cabo usando el entorno de desarrollo de Microsoft Visual Studio Tools for Applications.

Nota

InfoPath 2010 no admite la creación ni la edición de plantillas de formulario que usan lógica empresarial escrita con JScript o VBScript, a pesar de que InfoPath Filler permite abrir plantillas de formulario basadas en script creadas en versiones anteriores de InfoPath. Además, InfoPath 2010 no admite el desarrollo de plantillas de formulario en Visual Studio.

Visual Studio Tools for Applications

Si el equipo tiene instalado Microsoft .NET Framework 2.0 o una versión posterior, el entorno de desarrollo de Microsoft Visual Studio Tools for Applications se puede instalar junto con InfoPath 2010. Si no tenía los componentes de Microsoft .NET Framework 2.0 o de una versión posterior instalados en el equipo la primera vez que instaló InfoPath, debe descargarlos e instalarlos para poder usar el entorno de desarrollo de Microsoft Visual Studio Tools for Applications.

El entorno de desarrollo de Microsoft Visual Studio Tools for Applications no se instala de manera predeterminada al instalar InfoPath. Para instalar Microsoft Visual Studio Tools for Applications, debe elegir Personalizar la primera vez que realiza la instalación o usar Agregar o quitar programas para actualizar la instalación de Office o InfoPath, a fin de incluir Microsoft Visual Studio Tools for Applications. La opción para instalar Microsoft Visual Studio Tools for Applications está disponible expandiendo Microsoft Office InfoPath y Compatibilidad con programación de .NET en el programa de instalación.

El entorno de Microsoft Visual Studio Tools for Applications 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).

Mantener, crear y convertir plantillas de formulario que funcionen con el modelo de objetos de InfoPath 2003

Microsoft Visual Studio Tools for Applications le permite 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 para Microsoft Office System y seguir trabajando con ellos.

Nota

Los usuarios de plantillas de formulario compiladas con Microsoft Visual Studio Tools for Applications deben tener Microsoft .NET Framework 2.0 o una versión posterior 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.

Para usar Microsoft Visual Studio Tools for Applications y mantener la compatibilidad con versiones anteriores de InfoPath 2003, cree una nueva plantilla de formulario, haga clic en Lenguaje en la ficha Programador, haga clic en Compatibilidad y, a continuación, en Tipo de formulario para Formulario de InfoPath 2003 Filler. A continuación, haga clic en Programación y establezca el Lenguaje de código de la plantilla de formulario en el lenguaje que desea usar.

Además, puede convertir una plantilla de formulario que funciona 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 acerca de la conversión de plantillas de formulario, vea Cómo: Abrir o convertir una plantilla de formulario creada con el kit de herramientas 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