Grundlegendes zu Objektmodellen und zur Entwicklungsumgebung in InfoPath

Microsoft InfoPath 2013 unterstützt zwei Arten von Programmiermodellen für die Entwicklung von Geschäftslogik in Formularvorlagen und unterstützt die externe Automatisierung aus verwaltetem Code.

InfoPath Forms Services, das in SharePoint Server 2013 verfügbar ist, bietet eine Webbrowseroberfläche zum Ausfüllen von InfoPath-Formularen. Wenn sie auf einem Server bereitgestellt werden, auf dem InfoPath Forms Services ausgeführt wird, können Formulare, die auf browserkompatiblen Formularvorlagen (XSN) basieren, in einem Webbrowser von Computern aus geöffnet werden, auf denen InfoPath nicht installiert ist, aber sie werden bei der Installation in InfoPath geöffnet. InfoPath Forms Services bietet auch ein Objektmodell zum Automatisieren von Serveraufgaben im Zusammenhang mit der Veröffentlichung und Verwaltung von InfoPath-Formularvorlagen.

InfoPath 2013 unterstützt die Visual Studio 2012-Programmierumgebung und die zugehörigen Programmiersprachen, die weiter unten in diesem Thema beschrieben werden.

InfoPath-Programmiermodelle

InfoPath 2013 unterstützt zwei Objektmodelle für die Entwicklung von Geschäftslogik in Formularvorlagen:

  • Das InfoPath-Objektmodell mit verwaltetem Code

  • Das InfoPath 2003-kompatible Objektmodell mit verwaltetem Code

Darüber hinaus ermöglicht InfoPath 2013 das Schreiben von verwaltetem Code, um InfoPath aus einer externen Anwendung zu automatisieren.

InfoPath Forms Services stellt ein Objektmodell für die Automatisierung von Serveraufgaben bereit, z. B. das Überprüfen und Hochladen von Formularvorlagen aus Code, der auf dem Server ausgeführt wird, was Serveradministratorzugriff und -berechtigungen erfordert.

Hinweis

InfoPath Filler 2013 kann InfoPath-Formularvorlagenlösungen öffnen und ausführen, die in früheren Versionen von InfoPath erstellt wurden und die Geschäftslogik verwenden, die mit Skriptsprachen (JScript und VBScript) geschrieben wurde. Das Erstellen oder Ändern von Formularvorlagen, in denen mit Skripts geschriebene Geschäftslogik verwendet wird, wird von InfoPath Designer 2010 jedoch nicht unterstützt.

Das InfoPath-Objektmodell mit verwaltetem Code

Das InfoPath 2013-Objektmodell mit verwaltetem Code wird in zwei Assemblys implementiert, die beide Microsoft.Office.Infopath.dll benannt sind.

Eine Version der Assembly implementiert eine Teilmenge des InfoPath-Objektmodells, die nur die Typen und Member enthält, die in der Geschäftslogik von Formularvorlagen unterstützt werden, die als browserfähige Formularvorlagen bereitgestellt werden, die unter SharePoint Server 2013 mit InfoPath Forms Services ausgeführt werden. Formularvorlagen mit Geschäftslogik, die für diese Assembly geschrieben wurde, werden im InfoPath Filler und in einem Webbrowser geöffnet und ausgeführt.

Die andere Version der Assembly implementiert zusätzliche Typen und Member mit Funktionalität, die in der Geschäftslogik von browserfähigen Formularvorlagen nicht unterstützt wird. Formularvorlagen mit Geschäftslogik, die für die zusätzlichen Klassen und Member in dieser Assembly geschrieben wurden, werden nur im InfoPath Filler-Editor geöffnet und ausgeführt.

Hinweis

Es ist möglich, bedingte Logik zu schreiben, die die Eigenschaften der Environment-Klasse verwendet, um zu bestimmen, in welcher Umgebung (InfoPath Filler oder ein Webbrowser) die Formularvorlage ausgeführt wird. Mithilfe dieser bedingten Logik kann Ihre Geschäftslogik zwischen Code, der in einem Webbrowser funktioniert, und Code verzweigen, der für Klassen und Member geschrieben wurde, die nur im InfoPath Filler-Editor funktionieren. Weitere Informationen finden Sie unter Schreiben von bedingter Logik, die die Laufzeitumgebung bestimmt.

Die Assembly, die InfoPath beim Hinzufügen und Kompilieren von Geschäftslogik für die Formularvorlage verwendet, hängt davon ab, ob Sie die Formularvorlage Leeres Formular oder leeres Formular (InfoPath Filler) auf der Registerkarte Neu der Microsoft Office Backstage auswählen, wenn Sie mit dem Entwerfen eines neuen Formulars im InfoPath-Designer beginnen. Formulare, die mit der Formularvorlage Leeres Formular erstellt wurden, verwenden die Assembly, die nur die Typen und Member enthält, die in der Geschäftslogik von Formularvorlagen unterstützt werden, die als browserfähige Formularvorlagen bereitgestellt sind. Formulare, die mit der Formularvorlage Leeres Formular erstellt wurden, können sowohl im Webbrowser als auch im InfoPath Filler geöffnet werden. Formulare, die mit der Formularvorlage Leeres Formular (InfoPath Filler) erstellt wurden, verwenden die Assembly, die zusätzliche Typen und Member implementiert, die Funktionen bereitstellen, die in der Geschäftslogik browserfähiger Formularvorlagen nicht unterstützt werden und nur im InfoPath Filler geöffnet werden können.

Tipp

Nachdem Sie mit dem Entwerfen einer Formularvorlage begonnen haben, können Sie ändern, welche Assembly verwendet wird, indem Sie die Formularkompatibilitätseinstellungen ändern. Hierzu klicken Sie auf Sprache auf der Registerkarte Entwickler und dann auf Kompatibilität in der Liste Kategorie. Wählen Sie in der Liste Formulartyp die Option Webbrowserformular aus, um ein Formular zu erstellen, das als browserkompatibles Formular in SharePoint Server 2013 bereitgestellt werden kann. Wählen Sie InfoPath Filler Form aus, um ein Formular zu erstellen, das nur im InfoPath Filler-Editor ausgeführt werden kann. Die anderen Auswahlen in der Liste Formulartypen bieten Unterstützung für die Kompatibilität mit InfoPath 2007 und InfoPath 2003.

Die Klassen und Member beider Versionen dieses Objektmodells werden über den Microsoft.Office.InfoPath-Namespace verfügbar gemacht. In der folgenden Tabelle ist aufgeführt, wo sich die Assemblys in den Verzeichnissen einer InfoPath 2013-Installation befinden.

Assembly Beschreibung
Microsoft.Office.InfoPath.dll (befindet sich unter C:\Programme\Microsoft Office\Office15\InfoPathOM\InfoPathOMFormServices)
Die Teilmenge des Objektmodells, die nur Typen und Member enthält, die in der Geschäftslogik einer Formularvorlage ausgeführt werden, die auf einem Server bereitgestellt wird, auf dem InfoPath Forms Services ausgeführt wird.
Microsoft.Office.InfoPath.dll (befindet sich unter C:\Programme\Microsoft Office\Office15\InfoPathOM)
Das "vollständige" Objektmodell, einschließlich Typen und Membern, die nicht in der Geschäftslogik einer Formularvorlage ausgeführt werden, die in InfoPath Forms Services bereitgestellt wird.

Hinweis

Die weiter oben in diesem Abschnitt genannten Assemblys werden zur Entwurfszeit beim Schreiben und Kompilieren von Code verwendet. Zur Laufzeit befindet sich die Assembly, die beim Öffnen einer Formularvorlage in InfoPath verwendet wird, im globalen Assemblycache (GAC) des Computers, auf dem InfoPath installiert ist. Wenn eine Formularvorlage in einem Webbrowser von einem Server geöffnet wird, auf dem InfoPath Forms Services ausgeführt wird, befindet sich die verwendete Assembly auf dem Server.

Durch die Bereitstellung von zwei Assemblys kann sichergestellt werden, dass Ihre Geschäftslogik nur Aufrufe der entsprechenden Objektmodellmember für die unterstützten Formular-Editoren (Webbrowser oder InfoPath Filler) enthält. Wenn Sie z. B. Ihren Code bearbeiten, zeigen IntelliSense-Features wie anweisungsvervollständigung und Inlinedokumentation nur die entsprechenden Objektmodellmember für Ihre Zielformular-Editoren an und arbeiten mit diesen.

In beiden Versionen des verwalteten Codeobjektmodells, das von der Microsoft.Office.InfoPath-Assembly verfügbar gemacht wird, erfordert das Navigieren und Aktualisieren von XML-Datenspeichern in der Geschäftslogik Aufrufe der Member des System.Xml. XPath.XPathNavigator-Klasse . In InfoPath 2003 erfordert das Navigieren und Aktualisieren von XML-Datenspeichern das Aufrufen von Membern von MSXML-Klassen (für Geschäftslogik, die mit JScript oder VBScript erstellt wurde) oder durch Aufrufen der Wrapper für MSXML-Klassen, die vom Microsoft.Office.Interop.InfoPath.SemiTrust-Namespace bereitgestellt werden (für Geschäftslogik, die mit C# oder Visual Basic und dem Microsoft Office InfoPath 2003 Toolkit für Visual Studio .NET erstellt wurde).

Mithilfe von Membern der XPathNavigator-Klasse kann derselbe Geschäftslogikcode dom-Manipulation für Formularvorlagen unterstützen, die sowohl im InfoPath-Client als auch in webfähigen Formularen geöffnet werden, die von SharePoint Server 2013 mit InfoPath Forms Services in einem Webbrowser geöffnet werden.

Informationen zum Arbeiten mit Membern der XPathNavigator-Klasse in der Geschäftslogik von InfoPath-Formularvorlagen mit verwaltetem Code finden Sie unter Arbeiten mit den XPathNavigator- und XPathNodeIterator-Klassen.

Das InfoPath 2003-kompatible Objektmodell mit verwaltetem Code

Das InfoPath 2003-kompatible Objektmodell mit verwaltetem Code wurde in InfoPath 2003 Service Pack 1 zusammen mit dem Microsoft Office InfoPath 2003 Toolkit für Visual Studio .NET zum Schreiben von Geschäftslogik in Formularvorlagen mit verwaltetem Code eingeführt. Dieses Objektmodell wird weiterhin von InfoPath 2013 unterstützt, um Kompatibilität mit InfoPath 2003 zu gewährleisten.

Die Klassen und Member dieses Objektmodells werden über den Microsoft.Office.Interop.InfoPath.SemiTrust-Namespace verfügbar gemacht. Dieses Objektmodell wird in der folgenden Assemblydatei implementiert, die sich im Ordner C:\Programme\Microsoft Office\Office14 befindet.

Assembly Beschreibung
Microsoft.Office.Interop.InfoPath.SemiTrust.dll
Stellt COM-Interop für das InfoPath-COM-Objektmodell für Formularvorlagen-Geschäftslogik bereit, die mit C# oder Visual Basic geschrieben wurde.

Hinweis

Obwohl das Erstellen von Geschäftslogik mit dem COM-Interop-Objektmodell mit verwaltetem Code, das von der Microsoft.Office.Interop.InfoPath.SemiTrust-Assembly bereitgestellt wird, weiterhin von InfoPath 2013 unterstützt wird, wird geschäftslogik, die mit diesem Objektmodell geschrieben wurde, nicht für browserfähige Formularvorlagen unterstützt, die in SharePoint Server 2013 mit InfoPath Forms Services bereitgestellt wurden. Browserfähige Formularvorlagen müssen das InfoPath-Objektmodell mit verwaltetem Code für benutzerdefinierte Geschäftslogik verwenden.

Automatisieren von InfoPath aus verwaltetem Code

Zusätzlich zum Schreiben von Geschäftslogik mit verwaltetem Code können Entwickler InfoPath mithilfe von verwaltetem Code automatisieren, der in einer externen Anwendung ausgeführt wird. Diese Funktionalität und die assemblys, die zum Schreiben von Code erforderlich sind, wurden in InfoPath 2003 Service Pack 1 eingeführt. Die Objekte und Member für die Automatisierung von InfoPath wurden aktualisiert, um zusätzliche Funktionen bereitzustellen, wenn Sie externen Automatisierungscode für InfoPath 2013 schreiben.

Die für die externe Automatisierung verwendeten Klassen und Member werden über die Namespaces Microsoft.Office.Interop.InfoPath und Microsoft.Office.Interop.InfoPath.Xml verfügbar gemacht. Die Assemblydateien, die zum Schreiben von Automatisierungscode erforderlich sind, befinden sich im Ordner C:\Programme\Microsoft Office\Office14.

Assembly Beschreibung
Microsoft.Office.Interop.InfoPath.dll
Stellt COM-Interop für das InfoPath-COM-Objektmodell für externen Automatisierungscode bereit, der mit C# oder Visual Basic geschrieben wurde.
Microsoft.Office.Interop.InfoPath.Xml.dll
Stellt COM-Interop für MSXML für XML-DOM-Vorgänge in externem Automatisierungscode bereit, der mit C# oder Visual Basic geschrieben ist.

Weitere Informationen zu den Objektmodellen von Microsoft.Office.Interop.InfoPath und Microsoft.Office.Interop.InfoPath.Xml Namespaces, die ausschließlich zum Automatisieren der InfoPath-Anwendung mithilfe von verwaltetem Code aus externen Anwendungen verwendet werden, finden Sie im InfoPath Developer Center.

Das InfoPath Forms Services-Objektmodell

Das Objektmodell mit verwaltetem Code zum Automatisieren InfoPath Forms Services Verwaltungsaufgaben wird in der Microsoft.Office.InfoPath.Server.dll implementiert, die sich auf einer Microsoft SharePoint Server 2013-Installation unter <Laufwerk>:\Programme\Microsoft Office Server\15.0\Bin befindet.

Assembly Beschreibung
Microsoft.Office.InfoPath.Server.dll
Das Objektmodell zum Automatisieren InfoPath Forms Services Aufgaben wie das Hochladen, Aktivieren oder Deaktivieren browserfähiger Formularvorlagen.

Weitere Informationen zum InfoPath Forms Services-Objektmodell finden Sie im SharePoint Server 2013 Software Developers Kit (SDK), das auf MSDN verfügbar ist.

InfoPath-Entwicklungsumgebung

Die Entwicklung von Geschäftslogik in InfoPath 2013-Formularvorlagen kann mithilfe von Visual Studio 2012 mit installiertem Microsoft Visual Studio-Tools für Anwendungen 2012-Add-On durchgeführt werden.

Hinweis

InfoPath 2013 unterstützt nicht das Erstellen oder Bearbeiten von Formularvorlagen, die mit JScript oder VBScript geschriebene Geschäftslogik verwenden, obwohl der InfoPath Filler das Öffnen von skriptbasierten Formularvorlagen unterstützt, die in früheren Versionen von InfoPath erstellt wurden.

Siehe auch