Compartilhar via


Entender os modelos de objeto e o ambiente de desenvolvimento do InfoPath

O Microsoft InfoPath 2013 dá suporte a dois tipos de modelos de programação para desenvolver a lógica de negócios em modelos de formulário e dá suporte à automação externa do código gerenciado.

InfoPath Forms Services, que está disponível no SharePoint Server 2013, fornece uma experiência de navegador da Web para preencher formulários do InfoPath. Quando implantados em um servidor que executa InfoPath Forms Services, formulários baseados em modelos de formulário compatíveis com navegador (.xsn) podem ser abertos em um navegador da Web de computadores que não têm o InfoPath instalado, mas que serão abertos no InfoPath quando ele estiver instalado. InfoPath Forms Services também fornece um modelo de objeto para automatizar tarefas de servidor relacionadas à publicação e administração de modelos do InfoPath.

O InfoPath 2013 dá suporte ao ambiente de programação do Visual Studio 2012 e às linguagens de programação associadas, que são descritas posteriormente neste tópico.

Modelos de programação do InfoPath

O InfoPath 2013 dá suporte a dois modelos de objeto para desenvolver a lógica de negócios em modelos de formulário:

  • O modelo de objeto de código gerenciado do InfoPath

  • O modelo de objeto de código gerenciado compatível com o InfoPath 2003

Além disso, o InfoPath 2013 permite escrever código gerenciado para automatizar o InfoPath de um aplicativo externo.

InfoPath Forms Services fornece um modelo de objeto para automatizar tarefas do servidor, como verificar e carregar modelos de formulário do código em execução no servidor, o que requer acesso e permissões do administrador do servidor.

Observação

O InfoPath Filler 2013 pode abrir e executar soluções de modelo de formulário infopath criadas em versões anteriores do InfoPath que usam a lógica de negócios escrita com linguagens de script (JScript e VBScript). No entanto, o InfoPath Designer 2010 não dá suporte à criação ou modificação de modelos de formulário que usam a lógica de negócios escrita com script.

O modelo de objeto de código gerenciado do InfoPath

O modelo de objeto de código gerenciado do InfoPath 2013 é implementado em dois assemblies, ambos nomeados Microsoft.Office.Infopath.dll.

Uma versão do assembly implementa um subconjunto do modelo de objeto InfoPath que contém apenas os tipos e membros com suporte na lógica de negócios de modelos de formulário implantados como modelos de formulário habilitados para navegador em execução no SharePoint Server 2013 com InfoPath Forms Services. Modelos de formulário com lógica de negócios escritas neste assembly serão abertos e executados no Preenchimento do InfoPath e em um navegador da Web.

A outra versão do assembly implementa tipos e membros adicionais que fornecem funcionalidade que não tem suporte na lógica de negócios dos modelos de formulário habilitados para navegador. Os modelos de formulário com lógica de negócios gravados nas classes e membros adicionais neste assembly serão abertos e executados somente no editor do Preenchimento infopath.

Observação

É possível gravar uma lógica condicional que usa as propriedades da classe Environment para determinar em qual ambiente (InfoPath Filler ou um navegador da Web) o modelo de formulário está em execução. Usando essa lógica condicional, sua lógica de negócios pode ramificar-se entre código que funciona em um navegador da Web e código escrito em classes e membros que funcionam apenas no editor do Preenchimento infopath. Para obter mais informações, consulte Write Conditional Logic that Determines the Run-time Environment

O assembly que o InfoPath usa quando você adiciona e compila a lógica de negócios para o modelo de formulário depende se você seleciona o modelo de formulário em branco ou formulário em branco (Preenchimento infopath) na guia Novo do Microsoft Office Backstage quando você começa a criar um novo formulário no InfoPath Designer. Os formulários criados usando o modelo de formulário em branco usam o assembly que contém apenas os tipos e membros com suporte na lógica de negócios dos modelos de formulário implantados como modelos de formulário habilitados para navegador. Os formulários criados usando o modelo de formulário em branco podem ser abertos no navegador da Web e no Preenchimento do InfoPath. Os formulários criados usando o modelo de formulário InfoPath Filler (Formulário Em Branco) usam o assembly que implementa tipos e membros adicionais que fornecem funcionalidades que não têm suporte na lógica de negócios dos modelos de formulário habilitados para navegador e só podem ser abertos no Preenchimento do InfoPath.

Dica

Depois de começar a criar um modelo de formulário, você pode alterar qual assembly é usado alterando as configurações de compatibilidade do formulário. Para fazer isso, clique em Linguagem na guia Desenvolvedor e clique em Compatibilidade na lista Categoria . Na lista Tipo de formulário , selecione Formulário do Navegador da Web para criar um formulário que pode ser implantado como um formulário compatível com o navegador no SharePoint Server 2013. Selecione Formulário de Preenchimento do InfoPath para criar um formulário que só pode ser executado no editor do Preenchimento do InfoPath. As outras seleções na lista de tipos de formulário fornecem suporte para compatibilidade com o InfoPath 2007 e o InfoPath 2003.

As classes e os membros de ambas as versões deste modelo de objeto são expostos por meio do namespace Microsoft.Office.InfoPath . A tabela a seguir lista onde os assemblies estão localizados nos diretórios de uma instalação do InfoPath 2013.

Assembly Descrição
Microsoft.Office.InfoPath.dll (localizado em C:\Program Files\Microsoft Office\Office15\InfoPathOM\InfoPathOMFormServices)
O subconjunto do modelo de objeto que contém apenas tipos e membros que serão executados na lógica de negócios de um modelo de formulário implantado em um servidor que executa InfoPath Forms Services.
Microsoft.Office.InfoPath.dll (localizado em C:\Program Files\Microsoft Office\Office15\InfoPathOM)
O modelo de objeto "completo", incluindo tipos e membros que não serão executados na lógica de negócios de um modelo de formulário implantado para InfoPath Forms Services.

Observação

Os assemblies referenciados anteriormente nesta seção são usados no momento do design quando você grava e compila código. Em tempo de execução, o assembly usado quando um modelo de formulário é aberto no InfoPath está localizado no GAC (Cache de Assembly Global) do computador no qual o InfoPath está instalado. Quando um modelo de formulário é aberto em um navegador da Web de um servidor que executa InfoPath Forms Services, o assembly usado está localizado no servidor.

Fornecer dois assemblies ajuda a garantir que sua lógica de negócios contenha apenas chamadas para os membros do modelo de objeto apropriados para os editores de formulários com suporte (navegador da Web ou Preenchimento do InfoPath). Por exemplo, ao editar seu código, os recursos do IntelliSense, como conclusão de instrução e documentação em linha, só serão exibidos e funcionarão em relação aos membros do modelo de objeto apropriados para seus editores de formulário de destino.

Em ambas as versões do modelo de objeto de código gerenciado exposto pelo assembly Microsoft.Office.InfoPath, navegar e atualizar armazenamentos de dados XML na lógica de negócios requer chamadas para os membros do System.Xml. Classe XPath.XPathNavigator . No InfoPath 2003, navegar e atualizar armazenamentos de dados XML requer chamar membros de classes MSXML (para lógica comercial criada usando JScript ou VBScript) ou chamar os wrappers para classes MSXML fornecidas pelo namespace Microsoft.Office.Interop.InfoPath.SemiTrust (para lógica empresarial criada usando C# ou Visual Basic e o Kit de Ferramentas do Microsoft Office InfoPath 2003 para Visual Studio .NET).

O uso de membros da classe XPathNavigator permite que o mesmo código lógico de negócios dê suporte à manipulação do DOM para modelos de formulário abertos no cliente InfoPath e em formulários habilitados para Web abertos do SharePoint Server 2013 com InfoPath Forms Services em um navegador da Web.

Para obter informações sobre como trabalhar com membros da classe XPathNavigator na lógica de negócios dos modelos de formulário de código gerenciado do InfoPath, consulte Trabalhar com as Classes XPathNavigator e XPathNodeIterator.

O modelo de objeto de código gerenciado compatível com o InfoPath 2003

O modelo de objeto de código gerenciado compatível com o InfoPath 2003 foi introduzido no Service Pack 1 do InfoPath 2003 junto com o Kit de Ferramentas do Microsoft Office InfoPath 2003 para Visual Studio .NET para escrever lógica de negócios em modelos de formulário com código gerenciado. Esse modelo de objeto ainda tem suporte do InfoPath 2013 para fornecer compatibilidade com o InfoPath 2003.

As classes e os membros desse modelo de objeto são expostos por meio do namespace Microsoft.Office.Interop.InfoPath.SemiTrust . Esse modelo de objeto é implementado no seguinte arquivo de assembly localizado na pasta C:\Program Files\Microsoft Office\Office14.

Assembly Descrição
Microsoft.Office.Interop.InfoPath.SemiTrust.dll
Fornece interoperabilidade COM com o modelo de objeto COM do InfoPath para a lógica de negócios do modelo de formulário escrita usando C# ou Visual Basic.

Observação

Embora a criação de lógica de negócios com o modelo de objeto de código gerenciado de interoperabilidade COM fornecido pelo assembly Microsoft.Office.Interop.InfoPath.SemiTrust ainda seja compatível com o InfoPath 2013, a lógica de negócios escrita usando esse modelo de objeto não tem suporte para modelos de formulário habilitados para navegador implantados no SharePoint Server 2013 com InfoPath Forms Services. Os modelos de formulário habilitados para navegador devem usar o modelo de objeto de código gerenciado do InfoPath para lógica de negócios personalizada.

Automatizando o InfoPath do Código Gerenciado

Além de escrever lógica de negócios com código gerenciado, os desenvolvedores podem automatizar o InfoPath usando o código gerenciado em execução em um aplicativo externo. Essa funcionalidade e os assemblies necessários para escrever código foram introduzidos no InfoPath 2003 Service Pack 1. Os objetos e membros para automatizar o InfoPath foram atualizados para fornecer funcionalidade adicional quando você grava o código de automação externa para o InfoPath 2013.

As classes e os membros usados para automação externa são expostos por meio dos namespaces Microsoft.Office.Interop.InfoPath e Microsoft.Office.Interop.InfoPath.Xml . Os arquivos de assembly necessários para gravar o código de automação estão localizados na pasta C:\Program Files\Microsoft Office\Office14.

Assembly Descrição
Microsoft.Office.Interop.InfoPath.dll
Fornece interoperabilidade COM com o modelo de objeto COM do InfoPath para código de automação externa escrito usando C# ou Visual Basic.
Microsoft.Office.Interop.InfoPath.Xml.dll
Fornece interoperabilidade COM com o MSXML para operações DOM XML no código de automação externa escrito usando C# ou Visual Basic.

Para obter mais informações sobre os modelos de objeto fornecidos pelos namespaces Microsoft.Office.Interop.InfoPath e Microsoft.Office.Interop.InfoPath.Xml , que são usados exclusivamente para automatizar o aplicativo InfoPath usando código gerenciado de aplicativos externos, consulte o Centro de Desenvolvedores do InfoPath.

O modelo de objeto InfoPath Forms Services

O modelo de objeto de código gerenciado para automatizar tarefas de administração InfoPath Forms Services é implementado no Microsoft.Office.InfoPath.Server.dll que está localizado em <drive>:\Program Files\Microsoft Office Server\15.0\Bin em uma instalação do Microsoft SharePoint Server 2013.

Assembly Descrição
Microsoft.Office.InfoPath.Server.dll
O modelo de objeto para automatizar tarefas InfoPath Forms Services, como carregar, ativar ou desativar modelos de formulário habilitados para navegador.

Para obter mais informações sobre o modelo de objeto InfoPath Forms Services, consulte o SDK (Kit de Desenvolvedores de Software) do SharePoint Server 2013 que está disponível no MSDN.

Ambiente de Desenvolvimento do InfoPath

O desenvolvimento da lógica de negócios nos modelos de formulário do InfoPath 2013 pode ser realizado usando o Visual Studio 2012 com o complemento Microsoft Visual Studio Tools for Applications 2012 instalado.

Observação

O InfoPath 2013 não dá suporte à criação ou edição de modelos de formulário que usam a lógica de negócios escrita com JScript ou VBScript, embora o Preenchimento InfoPath dê suporte à abertura de modelos de formulário baseados em script que foram criados em versões anteriores do InfoPath.

Confira também