Freigeben über


Grundlegendes zu Objektmodellen und Entwicklungsumgebungen in InfoPath 2007

Microsoft Office InfoPath 2007 unterstützt drei Arten von Programmiermodellen zum Entwickeln von Geschäftslogik in Formularvorlagen sowie externe Automatisierung aus verwaltetem Code.

Microsoft Office Forms Server 2007 und dieselbe Formularfunktionalität namens InfoPath Forms Services, die in Microsoft Office SharePoint Server 2007 verfügbar ist, stellen ein Objektmodell zum Automatisieren von Serveraufgaben bereit.

Office InfoPath 2007 unterstützt drei Entwicklungsumgebungen und mehrere Programmiersprachen, die später in diesem Thema beschrieben werden. Welche Entwicklungsumgebung Sie verwenden, hängt teilweise davon ab, mit welchem Programmiermodell Sie arbeiten müssen.

InfoPath-Programmiermodelle

Office InfoPath 2007 unterstützt drei Objektmodelle zum Entwickeln von Geschäftslogik in Formularvorlagen:

  • Das COM- und Skripterstellung-Objektmodell

  • Das InfoPath 2003-kompatible Objektmodell mit verwaltetem Code

  • Das neue InfoPath-Objektmodell mit verwaltetem Code

Darüber hinaus stellt Office InfoPath 2007 eine Möglichkeit zum Schreiben von verwaltetem Code bereit, um InfoPath aus einer externen Anwendung zu automatisieren.

Microsoft Office Forms Server 2007 und InfoPath Forms Services stellen ein Objektmodell zum Automatisieren von Serveraufgaben bereit, z. B. zum Überprüfen und Uploaden von Formularvorlagen aus Code, der auf dem Server ausgeführt wird. Hierfür sind der Zugriff als Serveradministrator und entsprechende Berechtigungen erforderlich.

Das COM- und Skripterstellung-Objektmodell

Das COM- und Skripterstellung-Objektmodell wird in die folgenden DLL-Dateien (Dynamic Link Library) implementiert, die sich im Ordner "C:\Programme\Microsoft Office\Office12" befinden:

Dynamic Link Library Beschreibung

IPEDITOR.DLL

Stellt das COM-basierte Objektmodell für die InfoPath-Formularbearbeitungslaufzeit bereit. Legt Objekte und Member offen, die aus Geschäftslogik aufgerufen werden können, die in JScript oder VBScript geschrieben ist. Legt außerdem Methoden des Application-Objekts und der XDocuments-Auflistung offen, die aus COM-Komponenten und Anwendungen aufgerufen werden können, um die InfoPath-Anwendung zu automatisieren.

IPDESIGN.DLL

Stellt COM-basierte Schnittstellen zum Erstellen von benutzerdefinierten Formularkonvertern sowie die Objekte ExcelImporter und WordImporter zum Erstellen neuer InfoPath-Formularvorlagen durch Importieren des Entwurfs von Formularen bereit, die in Excel und Word erstellt wurden.

Hinweis

Obwohl das Erstellen von Geschäftslogik mit Skriptsprachen (JScript und VBScript) für das COM- und Skripterstellung-Objektmodell weiterhin vom InfoPath-Client unterstützt wird, wird in Skript geschriebene Geschäftslogik für browserfähige Formularvorlagen nicht unterstützt, die für Office Forms Server 2007 oder Microsoft Office SharePoint Server 2007 mit InfoPath Forms Services bereitgestellt werden. Browserfähige Formularvorlagen müssen das neue InfoPath-Objektmodell mit verwaltetem Code für benutzerdefinierte Geschäftslogik verwenden.

Weitere Informationen zum Arbeiten mit Skript- und COM-Automatisierung finden Sie in der InfoPath-Entwicklerreferenz, auf die Sie zugreifen können, indem Sie in Office InfoPath 2007 im Menü Hilfe auf Microsoft Office InfoPath-Hilfe klicken.

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 eingeführt, um Geschäftslogik in Formularvorlagen mit verwaltetem Code zu schreiben. Dieses Objektmodell wird weiterhin von Office InfoPath 2007 unterstützt, um Kompatibilität mit InfoPath 2003 zu bieten.

Die Klassen und Member dieses Objektmodells sind durch den Microsoft.Office.Interop.InfoPath.SemiTrust-Namespace offen gelegt. Dieses Objektmodell wird in der folgenden Assemblydatei implementiert, die sich im Ordner "C:\Programme\Microsoft Office\Office12" 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 .NET geschrieben wird.

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 Office InfoPath 2007 unterstützt wird, wird Geschäftslogik, die mithilfe dieses Objektmodells geschrieben wurde, nicht für browserfähige Formularvorlagen unterstützt, die auf Computern mit Office Forms Server 2007 oder Microsoft Office SharePoint Server 2007, auf denen InfoPath Forms Services ausgeführt wird, bereitgestellt. Browserfähige Formularvorlagen müssen das neue InfoPath-Objektmodell mit verwaltetem Code für benutzerdefinierte Geschäftslogik verwenden.

Hinweis

Wenn Sie ein Formularvorlagenprojekt erstellen, das mit InfoPath 2003 kompatibel ist (legen Sie dazu im Dialogfeld Formularoptionen in der Kategorie Programmierung für Codesprache der Formularvorlage entweder C# oder Visual Basic fest), erfolgen standardmäßig alle Aufrufe an Member des Microsoft.Office.Interop.InfoPath.SemiTrust-Namespace, die abwärtskompatibel sind. Wenn die Abwärtskompatibilität jedoch nicht länger erforderlich ist, können Sie neue Objektmodellmember im Microsoft.Office.Interop.InfoPath.SemiTrust-Namespace verwenden. Weitere Informationen hierzu finden Sie unter Vorgehensweise: Verwenden von nicht mit InfoPath 2003 kompatiblen Microsoft.Office.Interop.InfoPath.SemiTrust-Membern.

Das neue InfoPath-Objektmodell mit verwaltetem Code

Ein neues InfoPath-Objektmodell mit verwaltetem Code wird in zwei Assemblys implementiert, die "Microsoft.Office.Infopath.dll" heißen.

Eine Version der Assembly implementiert ein Subset des InfoPath-Objektmodells, das nur die Typen und Member enthält, die in der Geschäftslogik von Formularvorlagen unterstützt werden, die als browserfähige, unter Office Forms Server 2007 oder Microsoft Office SharePoint Server 2007 mit InfoPath Forms Services ausgeführte Formularvorlagen bereitgestellt werden. Formularvorlagen mit Geschäftslogik, die für diese Assembly geschrieben ist, können in InfoPath und in einem Webbrowser geöffnet und ausgeführt werden.

Die andere Version der Assembly implementiert das vollständige InfoPath-Objektmodell, das zusätzliche Typen und Member mit Funktionalität enthält, die nicht in der Geschäftslogik von browserfähigen Formularvorlagen unterstützt wird. Formularvorlagen mit Geschäftslogik, die für die Klassen und Member für InfoPath in dieser Assembly geschrieben ist, können nur in InfoPath geöffnet und ausgeführt werden.

Hinweis

Sie können bedingte Logik schreiben, die die Eigenschaften der Environment-Klasse verwendet, um zu bestimmen, in welcher Umgebung (InfoPath oder ein Webbrowser) die Formularvorlage ausgeführt wird. Mithilfe dieser bedingten Logik kann sich Ihre Geschäftslogik zwischen Code verzweigen, der in einem Webbrowser ausgeführt wird, und Code, der für Klassen und Member geschrieben ist, die nur in InfoPath ausgeführt werden können. Weitere Informationen hierzu finden Sie unter Vorgehensweise: Schreiben von bedingter Logik zur Bestimmung der Laufzeitumgebung.

Welche Assembly von InfoPath beim Hinzufügen und Kompilieren von Geschäftslogik für die Formularvorlage verwendet wird, hängt davon ab, ob Sie das Kontrollkästchen Nur browserkompatible Features aktivieren im Dialogfeld Ein Formular entwerfen zu Beginn des Entwurfs eines neuen Formulars aktivieren. Alternativ können Sie diese Einstellung im Dialogfeld Formularoptionen in der Kategorie Kompatibilität ändern, indem Sie das Kontrollkästchen Formularvorlage entwerfen, die in einem Browser oder in InfoPath geöffnet werden kann aktivieren oder deaktivieren.

Die Klassen und Member beider Versionen dieses Objektmodells werden durch den Microsoft.Office.InfoPath-Namespace offen gelegt. Diese Assemblys befinden sich in den folgenden Verzeichnissen einer Office InfoPath 2007-Installation:

Assembly Beschreibung

Microsoft.Office.InfoPath.dll (befindet sich unter "C:\Programme\Microsoft Office\Office12\InfoPathOM")

Das Subset des Objektmodells, das 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. (Das Kontrollkästchen Nur browserkompatible Features aktivieren oder Formularvorlage entwerfen, die in einem Browser oder in InfoPath geöffnet werden kann ist aktiviert.)

Microsoft.Office.InfoPath.dll (befindet sich unter "C:\Programme\Microsoft Office\Office12\")

Das "vollständige" Objektmodell mit Typen und Membern, die nicht in der Geschäftslogik einer Formularvorlage ausgeführt werden können, die mit Office Forms Server 2007 bereitgestellt wird. (Das Kontrollkästchen Nur browserkompatible Features aktivieren oder Formularvorlage entwerfen, die in einem Browser oder in InfoPath geöffnet werden kann ist nicht aktiviert.)

Hinweis

Die Assemblys, auf die oben verwiesen wird, 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 (Global Assembly Cache, GAC) des Computers, auf dem InfoPath installiert ist. Wenn eine Formularvorlage aus einem Server, auf dem InfoPath Forms Services ausgeführt wird, in einem Webbrowser geöffnet wird, befindet sich die verwendete Assembly auf dem Server.

Durch die Bereitstellung von zwei Assemblys wird sichergestellt, dass Ihre Geschäftslogik nur Aufrufe an die geeigneten Objektmodellmember für die unterstützten Formular-Editoren (Webbrowser oder InfoPath) enthält. Wenn Sie z. B. den Code bearbeiten, werden IntelliSense-Features wie Anweisungsvervollständigung und Inlinedokumentation nur für die geeigneten Objektmodellmember für die Ziel-Editoren angezeigt. Diese Features können auch nur für diese Objektmodellmember verwendet werden.

In beiden Versionen des neuen Objektmodells mit verwaltetem Code, das von der "Microsoft.Office.InfoPath"-Assembly offen gelegt ist, sind für das Navigieren und Aktualisieren von XML-Datenspeichern in Geschäftslogik Aufrufe an die Member der System.Xml.XPath.XPathNavigator-Klasse erforderlich. In InfoPath 2003 sind für das Navigieren und Aktualisieren von XML-Datenspeichern Aufrufe an Member von MSXML 5.0-Klassen erforderlich (für mit JScript oder VBScript erstellte Geschäftslogik). Das Navigieren und Aktualisieren kann auch durch Aufrufe über die Wrapper für MSXML 5.0-Klassen erfolgen, die vom Microsoft.Office.Interop.InfoPath.SemiTrust-Namespace bereitgestellt werden (für mit C# oder Visual Basic und Microsoft Office InfoPath 2003 Toolkit für Visual Studio .NET erstellte Geschäftslogik).

Mithilfe von Membern der XPathNavigator-Klasse kann mit demselben Geschäftslogikcode DOM-Manipulation für Formularvorlagen erfolgen, die sowohl im InfoPath-Client als auch in webfähigen Formularen geöffnet werden, die vom Computer mit Office Forms Server 2007 oder Microsoft Office SharePoint Server 2007, auf dem InfoPath Forms Services ausgeführt wird, in einem Webbrowser geöffnet werden.

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

Automatisieren von InfoPath aus verwaltetem Code

Neben dem Schreiben von Geschäftslogik mit verwaltetem Code kann InfoPath automatisiert werden, indem verwalteter Code verwendet wird, der in einer externen Anwendung ausgeführt wird. Diese Funktionalität und die zum Schreiben von Code erforderlichen Assemblys wurden in InfoPath 2003 Service Pack 1 eingeführt. Die Objekte und Member zum Automatisieren von InfoPath wurden aktualisiert, um zusätzliche Funktionalität beim Schreiben von Code aus externen Anwendungen für Office InfoPath 2007 bereitzustellen.

Die für die externe Automatisierung verwendeten Klassen und Member sind durch die Namespaces Microsoft.Office.Interop.InfoPath und Microsoft.Office.Interop.InfoPath.Xml offen gelegt. Die Assemblydateien, die für das Schreiben von Automatisierungscode erforderlich sind, befinden sich im Ordner "C:\Programme\Microsoft Office\Office12":

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 .NET geschrieben ist.

Microsoft.Office.Interop.InfoPath.Xml.dll

Stellt COM-Interop für MSXML 5.0 für XML DOM-Vorgänge in externem Automatisierungscode bereit, der mit C# oder Visual Basic .NET geschrieben ist.

Weitere Informationen zu den Objektmodellen, die durch die Namespaces Microsoft.Office.Interop.InfoPath und Microsoft.Office.Interop.InfoPath.Xml bereitgestellt werden, die ausschließlich zum Automatisieren der InfoPath-Anwendung mithilfe von verwaltetem Code von externen Anwendungen verwendet werden, finden Sie in der mit Microsoft Visual Studio 2005 Tools für 2007 Microsoft Office System installierten Dokumentation unter "Automatisieren von InfoPath aus anderen Anwendungen".

Das Office Forms Services-Objektmodell

Das Objektmodell mit verwaltetem Code zum Automatisieren von Verwaltungsaufgaben für Office Forms Server 2007 oder InfoPath Forms Services ist in "Microsoft.Office.InfoPath.Server.dll" implementiert, die sich im Ordner "<Laufwerk>:\Programme\Microsoft Office Server\12.0\Bin" auf einem Computer mit Office Forms Server 2007 oder Microsoft Office SharePoint Server 2007 befindet:

Assembly Beschreibung

Microsoft.Office.InfoPath.Server.dll

Das Objektmodell zum Automatisieren von Aufgaben in Office Form Server, z. B. Uploaden, Aktivieren oder Deaktivieren von browserfähigen Formularvorlagen.

Weitere Informationen zum Office Forms Services-Objektmodell finden Sie im Microsoft Office Forms Server 2007 Software Developers Kit (SDK) (in Englisch) auf MSDN.

InfoPath-Entwicklungsumgebungen

Das Entwickeln von Geschäftslogik in Office InfoPath 2007-Formularvorlagen kann mithilfe von drei Entwicklungsumgebungen ausgeführt werden:

  • Microsoft Skript-Editor

  • Microsoft Visual Studio Tools für Anwendungen (VSTA)

  • InfoPath-Entwurfsmodusintegration mit Microsoft Visual Studio 2005 Tools für 2007 Microsoft Office System oder Visual Studio 2008 mit Visual Studio Tools für Office

Welche Entwicklungsumgebung Sie verwenden, hängt teilweise davon ab, für welche Programmiersprache und welches Objektmodell Ihre Geschäftslogik geschrieben ist. Die folgenden Abschnitte enthalten Informationen zum Bestimmen der zu verwendenden Entwicklungsumgebung.

Microsoft Skript-Editor (MSE)

Wie bei InfoPath 2003 verwenden Sie den Microsoft Skript-Editor (MSE), um Geschäftslogik mithilfe von JScript- oder VBScript-Code für das InfoPath-COM-Objektmodell zu schreiben. Der Microsoft Skript-Editor ist standardmäßig installiert und in die Office InfoPath 2007-Anwendung integriert. Die Features dieser Entwicklungsumgebung sind im Prinzip mit denen in InfoPath 2003 gleich. Öffnen Sie die Formularvorlage im Entwurfsmodus, um Geschäftslogik mit JScript oder VBScript im Microsoft Skript-Editor zu entwickeln. Öffnen Sie das Dialogfeld Formularoptionen, wählen Sie die Kategorie Programmierung aus, und legen Sie dann die Option Programmiersprache der Formularvorlage auf JScript oder VBScript fest.

Visual Studio Tools for Applications (VSTA)

Wenn auf Ihrem Computer Microsoft .NET Framework 2.0 und Microsoft Core XML Services (MSXML) 6.0 installiert ist, kann die Microsoft Visual Studio Tools für Anwendungen (VSTA)-Entwicklungsumgebung zusammen mit Office InfoPath 2007 installiert werden. Wenn die Komponenten Microsoft .NET Framework 2.0 und MSXML6 beim ersten Installieren von InfoPath nicht installiert wurden, müssen Sie diese Komponenten downloaden und installieren, bevor Sie dieVSTA-Entwicklungsumgebung verwenden können. (Microsoft .NET Framework 2.0 ist als optionale Softwareaktualisierung auf der Windows Update-Website verfügbar, und MSXML6 ist auf der MSDN-Website verfügbar.)

Die VSTA-Entwicklungsumgebung ist nicht standardmäßig installiert, wenn Sie zum Installieren von InfoPath die Option Standard auswählen. Sie müssen entweder beim ersten Installieren Anpassen auswählen, um VSTA zu installieren, oder Software verwenden, um die Office- oder InfoPath-Installation zu aktualisieren, um VSTA einzuschließen. Die Option zum Installieren von VSTA ist verfügbar, wenn Sie Microsoft Office InfoPath, .NET-Programmierunterstützung und .NET-Programmierunterstützung für .NET Framework, Version 2.0 erweitern.

Die VSTA-Umgebung kann zum Schreiben von Geschäftslogik in C# oder Visual Basic für das InfoPath 2003-kompatible Objektmodell (Member des Microsoft.Office.Interop.InfoPath.SemiTrust-Namespace) oder des neuen Objektmodells mit verwaltetem Code (Member des Microsoft.Office.InfoPath-Namespace) verwendet werden.

Hinweis

Obwohl für die Umgebung von Visual Studio Tools for Applications zur Installation MSXML6 erforderlich ist, hängen InfoPath-Formularvorlagen und der InfoPath-Editor nur von MSXML5 ab.

InfoPath-Entwurfsmodusintegration in Visual Studio

Ein neues Feature von Visual Studio Tools for Office besteht darin, dass die Office InfoPath 2007-Entwurfsumgebung für Formularvorlagen jetzt vollständig in die Visual Studio-Entwicklungsumgebung integriert werden kann. Sie können mit den Features von Office InfoPath 2007 arbeiten, um gleichzeitig das Aussehen Ihrer Formularvorlage zu entwerfen und verwalteten Code zu schreiben. Dadurch werden die Möglichkeiten erweitert, ohne Visual Studio zu verlassen.

Die Features des Formular-Designers von InfoPath lassen sich in Visual Studio 2005 durch Installieren von Microsoft Visual Studio 2005 Tools für 2007 Microsoft Office System integrieren. Sie können diese Anwendung vom InfoPath-Entwicklerportal auf MSDN downloaden. Sie müssen zuerst Visual Studio 2005 und Office InfoPath 2007 installieren, bevor Sie Microsoft Visual Studio 2005 Tools für 2007 Microsoft Office System installieren können. Alternativ können Sie Visual Studio 2008 mit Visual Studio Tools für Office verwenden.

Diese Entwicklungsumgebung kann zum Schreiben von Geschäftslogik in C# oder Visual Basic für das COM-Interop-Objektmodell (Member des Microsoft.Office.Interop.InfoPath.SemiTrust-Namespace) oder des neuen Objektmodells mit verwaltetem Code (Member des Microsoft.Office.InfoPath-Namespace) verwendet werden.

Verwalten, Erstellen und Konvertieren von Formularvorlagen, die mit dem InfoPath 2003-Objektmodell arbeiten

Mithilfe von VSTA und der InfoPath-Entwurfsmodusintegration mit Visual Studio-Entwicklungsumgebungen für Office InfoPath 2007 können Sie InfoPath-Formularvorlagenprojekte öffnen und weiter bearbeiten, die mit Microsoft Office InfoPath 2003 Toolkit für Visual Studio .NET oder mit Visual Studio 2005 Tools for the Microsoft Office System erstellt wurden.

Hinweis

Benutzer von Formularvorlagen, die mit VSTA, Microsoft Visual Studio 2005 Tools für 2007 Microsoft Office System oder Visual Studio 2008 mit Visual Studio Tools für Office kompiliert wurden, müssen Microsoft .NET Framework 2.0 auf dem Computer installieren. Benutzer von Formularvorlagen, die mit Visual Studio .NET 2003 kompiliert wurden, müssen nur Microsoft .NET Framework 1.1 auf dem Computer installieren.

Sie können diese Entwicklungsumgebungen auch verwenden, um neue Formularvorlagenprojekte mit verwaltetem Code zu erstellen, die das InfoPath 2003-Objektmodell verwenden, um Abwärtskompatibilität mit InfoPath 2003 beizubehalten. Erstellen Sie eine neue Formularvorlage, klicken Sie im Menü Extras auf Formularoptionen, und wählen Sie dann in der Kategorie Programmierung entweder C# oder Visual Basic als Sprache für den Formularvorlagencode aus, um diese Entwicklungsumgebungen zu verwenden und Abwärtskompatibilität beizubehalten.

Darüber hinaus können Sie eine Formularvorlage konvertieren, die mit dem InfoPath 2003-Objektmodell arbeitet, um das neue InfoPath-Objektmodell mit verwaltetem Code zu verwenden. Weitere Informationen zum Konvertieren von Formularvorlagen finden Sie unter Vorgehensweise: Öffnen oder Konvertieren einer mit dem InfoPath Toolkit oder Skript erstellten Formularvorlage.

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Erstellen einer einfachen Formularvorlage mit verwaltetem Code
Exemplarische Vorgehensweise: Erstellen und Debuggen einer einfachen Formularvorlage mit dem InfoPath 2003-Objektmodell