Grundlegendes zu Objektmodellen und zur Entwicklungsumgebung in InfoPath
In Microsoft InfoPath 2010 werden drei Arten von Programmiermodellen zum Entwickeln von Geschäftslogik in Formularvorlagen sowie externe Automatisierung aus verwaltetem Code unterstützt.
In InfoPath Forms Services, verfügbar in Microsoft SharePoint Server 2010, wird das Ausfüllen von InfoPath-Formularen in einem Webbrowser ermöglicht. Auf einem Server mit InfoPath Forms Services bereitgestellte Formulare, die auf browserkompatiblen Formularvorlagen (.XSN) basieren, können auf Computern, auf denen InfoPath 2010 nicht installiert ist, in einem Webbrowser geöffnet werden. Wenn InfoPath 2010 installiert ist, werden die Formulare jedoch in dieser Anwendung geöffnet. InfoPath Forms Services enthält außerdem ein Objektmodell für die Automatisierung von Serveraufgaben im Zusammenhang mit der Veröffentlichung und Verwaltung von InfoPath-Formularvorlagen.
In InfoPath 2010 werden die Microsoft Visual Studio Tools for Applications-Programmierumgebung und die zugehörigen Programmiersprachen unterstützt, die später in diesem Thema beschrieben werden.
InfoPath-Programmiermodelle
In InfoPath 2010 werden zwei Objektmodelle zum Entwickeln von Geschäftslogik in Formularvorlagen unterstützt:
Das InfoPath-Objektmodell mit verwaltetem Code
Das InfoPath 2003-kompatible Objektmodell mit verwaltetem Code
Darüber hinaus kann in InfoPath 2010 verwalteter Code geschrieben werden, um InfoPath über eine externe Anwendung zu automatisieren.
In InfoPath Forms Services wird ein Objektmodell zum Automatisieren von Serveraufgaben bereitgestellt, beispielsweise Überprüfen und Hochladen von Formularvorlagen aus Code, der auf dem Server ausgeführt wird. Hierfür sind der Zugriff als Serveradministrator und entsprechende Berechtigungen erforderlich.
Hinweis
Mit InfoPath Filler 2010 können InfoPath-Formularvorlagenlösungen geöffnet werden, die in früheren Versionen von InfoPath erstellt wurden und in denen Geschäftslogik verwendet wird, die mit Skriptsprachen geschrieben wurde (JScript und VBScript). 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 2010-Objektmodell mit verwaltetem Code wird in zwei Assemblys mit dem Namen Microsoft.Office.Infopath.dll implementiert.
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 Formularvorlagen in Microsoft SharePoint Server 2010 mit InfoPath Forms Services bereitgestellt werden. Formularvorlagen mit Geschäftslogik, die für diese Assembly geschrieben ist, können in InfoPath Filler und in einem Webbrowser geöffnet und ausgeführt werden.
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 ist, können nur im Editor von InfoPath Filler geöffnet und ausgeführt werden.
Hinweis
Sie können bedingte Logik schreiben, die mithilfe der Eigenschaften der Environment-Klasse ermittelt, in welcher Umgebung (InfoPath Filler oder Webbrowser) die Formularvorlage ausgeführt wird. Mithilfe dieser bedingten Logik kann die Geschäftslogik zwischen Code verzweigt werden, der in einem Webbrowser ausgeführt wird, und Code der für Klassen und Member geschrieben wurde, die nur im Editor von InfoPath Filler ausgeführt werden können. Weitere Informationen finden Sie unter Vorgehensweise: Schreiben von bedingter Logik zur Bestimmung der Laufzeitumgebung
Die Assembly, die von InfoPath verwendet wird, wenn Sie Geschäftslogik für die Formularvorlage hinzufügen und kompilieren, hängt davon ab, ob Sie die Formularvorlage Leeres Formular oder Leeres Formular (InfoPath Filler) auf der Registerkarte Neu von Microsoft Office Backstage auswählen, wenn Sie mit dem Entwerfen eines neuen Formulars in 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 in InfoPath Filler geöffnet werden. Formulare, die mit der Formularvorlage Leeres Formular (InfoPath Filler) erstellt wurden, verwenden die Assembly, durch die zusätzliche Typen und Member mit Funktionalität implementiert werden, die in der Geschäftslogik von browserfähigen Formularvorlagen nicht unterstützt wird, und die nur in InfoPath Filler geöffnet werden können.
Tipp
Wenn Sie mit dem Entwerfen einer Formularvorlage begonnen haben, können Sie durch Ändern der Kompatibilitätseinstellungen des Formulars ändern, welche Assembly verwendet wird. 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 Microsoft SharePoint Server 2010 bereitgestellt werden kann. Wählen Sie InfoPath Filler-Formular aus, um ein Formular zu erstellen, das nur im Editor von InfoPath Filler ausgeführt werden kann. Die anderen Auswahlmöglichkeiten in der Liste Formulartyp bieten Unterstützung für die Kompatibilität mit InfoPath 2007 und InfoPath 2003.
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 InfoPath 2010-Installation:
Assembly |
Beschreibung |
---|---|
Microsoft.Office.InfoPath.dll |
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 mit InfoPath Forms Services bereitgestellt wird. |
Microsoft.Office.InfoPath.dll |
Das "vollständige" Objektmodell mit Typen und Membern, die nicht in der Geschäftslogik einer Formularvorlage ausgeführt werden können, 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 (Global Assembly Cache, GAC) des Computers, auf dem InfoPath installiert ist. Wenn eine Formularvorlage in einem Webbrowser auf einem Server mit InfoPath Forms Services geöffnet wird, befindet sich die verwendete Assembly auf dem Server.
Durch die Bereitstellung von zwei Assemblys wird sichergestellt, dass die Geschäftslogik nur Aufrufe an die geeigneten Objektmodellmember für die unterstützten Formular-Editoren (Webbrowser oder InfoPath Filler) enthält. Wenn Sie beispielsweise den Code bearbeiten, werden IntelliSense-Features wie Anweisungsvervollständigung und Inlinedokumentation nur für die geeigneten Objektmodellmember für die gewünschten Formular-Editoren angezeigt. Diese Features können auch nur für diese Objektmodellmember verwendet werden.
In beiden Versionen des Objektmodells mit verwaltetem Code, das durch die Microsoft.Office.InfoPath-Assembly offen gelegt wird, sind für das Navigieren in 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 in und Aktualisieren von XML-Datenspeichern Aufrufe an Member der MSXML-Klassen erforderlich (für mit JScript oder VBScript erstellte Geschäftslogik) oder durch Aufrufe über die Wrapper für MSXML-Klassen, die durch den Microsoft.Office.Interop.InfoPath.SemiTrust-Namespace bereitgestellt werden (für mit C# oder Visual Basic und dem Microsoft Office InfoPath 2003 Toolkit für Visual Studio .NET erstellte Geschäftslogik).
Mithilfe von Membern der XPathNavigator-Klasse kann mit dem gleichen Geschäftslogikcode die DOM-Manipulation für Formularvorlagen erfolgen, die sowohl im InfoPath-Client als auch in webfähigen Formularen aus Microsoft SharePoint Server 2010 mit InfoPath Forms Services 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".
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 von InfoPath 2010 weiterhin unterstützt, um Kompatibilität mit InfoPath 2003 zu bieten.
Die Klassen und Member dieses Objektmodells werden 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\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 ist. |
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 2010 unterstützt wird, wird mit diesem Objektmodell geschriebene Geschäftslogik für browserfähige Formularvorlagen, die in Microsoft SharePoint Server 2010 mit InfoPath Forms Services bereitgestellt sind, nicht unterstützt. Für browserfähige Formularvorlagen muss das InfoPath-Objektmodell mit verwaltetem Code für benutzerdefinierte Geschäftslogik verwendet werden.
Automatisieren von InfoPath aus verwaltetem Code
Neben dem 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 zum Schreiben von Code erforderlichen Assemblys wurden in InfoPath 2003 Service Pack 1 eingeführt. Die Objekte und Member für das Automatisieren von InfoPath wurden aktualisiert, um zusätzliche Funktionalität beim Schreiben von Code aus externen Anwendungen für InfoPath 2010 bereitzustellen.
Die für die externe Automatisierung verwendeten Klassen und Member werden 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\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 ist. |
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, 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 aus externen Anwendungen verwendet werden, finden Sie im InfoPath Developer Center.
Das InfoPath Forms Services-Objektmodell
Das Objektmodell mit verwaltetem Code zum Automatisieren von Verwaltungsaufgaben für InfoPath Forms Services ist in der Microsoft.Office.InfoPath.Server.dll-Assembly implementiert, die sich in einer Microsoft SharePoint Server 2010-Installation im Ordner <Laufwerk>:\Programme\Microsoft Office Server\14.0\Bin befindet:
Assembly |
Beschreibung |
---|---|
Microsoft.Office.InfoPath.Server.dll |
Das Objektmodell zum Automatisieren von InfoPath Forms Services-Aufgaben wie beispielsweise Hochladen, Aktivieren oder Deaktivieren Deaktivieren von browserfähigen Formularvorlagen. |
Weitere Informationen zum InfoPath Forms Services-Objektmodell finden Sie im Microsoft SharePoint Server 2010 Software Developers Kit (SDK), das auf der MSDN-Website verfügbar ist.
InfoPath-Entwicklungsumgebung
Für die Entwicklung von Geschäftslogik in InfoPath 2010-Formularvorlagen kann die Microsoft Visual Studio Tools for Applications-Entwicklungsumgebung verwendet werden.
Hinweis
Das Erstellen oder Bearbeiten von Formularvorlagen, in denen mit JScript oder VBScript geschriebene Geschäftslogik verwendet wird, wird von InfoPath 2010 nicht unterstützt. In InfoPath Filler wird jedoch das Öffnen skriptbasierter Formularvorlagen unterstützt, die in vorherigen Versionen von InfoPath erstellt wurden. Außerdem wird von InfoPath 2010 die Entwicklung von Formularvorlagen in Visual Studio nicht unterstützt.
Visual Studio Tools for Applications
Wenn auf einem Computer Microsoft .NET Framework 2.0 oder eine höhere Version installiert ist, kann die Microsoft Visual Studio Tools for Applications-Entwicklungsumgebung zusammen mit InfoPath 2010 installiert werden. Wenn die Komponenten von Microsoft .NET Framework 2.0 oder einer höheren Version beim ersten Installieren von InfoPath nicht installiert waren, müssen Sie diese Komponenten herunterladen und installieren, bevor Sie die Microsoft Visual Studio Tools for Applications-Entwicklungsumgebung verwenden können.
Die Microsoft Visual Studio Tools for Applications-Entwicklungsumgebung wird nicht standardmäßig installiert, wenn Sie InfoPath installieren. Zum Installieren von Microsoft Visual Studio Tools for Applications müssen Sie beim ersten Installieren die Option Anpassen auswählen oder die Option Software in der Systemsteuerung verwenden, um die Office- oder InfoPath-Installation so zu aktualisieren, dass Microsoft Visual Studio Tools for Applications enthalten ist. Die Option zum Installieren von Microsoft Visual Studio Tools for Applications ist verfügbar, wenn Sie Microsoft Office InfoPath und .NET-Programmierunterstützung im Setupprogramm erweitern.
Die Microsoft Visual Studio Tools for Applications-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 für das neue Objektmodell mit verwaltetem Code (Member des Microsoft.Office.InfoPath-Namespace) verwendet werden.
Verwalten, Erstellen und Konvertieren von Formularvorlagen, die mit dem InfoPath 2003-Objektmodell arbeiten
Sie haben in Microsoft Visual Studio Tools for Applications die Möglichkeit, InfoPath-Formularvorlagenprojekte zu öffnen, die mit dem Microsoft Office InfoPath 2003 Toolkit für Visual Studio .NET oder mit Visual Studio 2005 Tools für Microsoft Office System 2007 erstellt wurden, und mit diesen Formularvorlagenprojekten zu arbeiten.
Hinweis
Benutzer von Formularvorlagen, die mit Microsoft Visual Studio Tools for Applications kompiliert wurden, müssen Microsoft .NET Framework 2.0 oder eine höhere Version 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.
Wenn Sie Microsoft Visual Studio Tools for Applications verwenden und die Abwärtskompatibilität mit InfoPath 2003 aufrechterhalten möchten, erstellen Sie eine neue Formularvorlage, klicken auf Sprache auf der Registerkarte Entwickler, klicken auf Kompatibilität und legen dann den Formulartyp auf InfoPath 2003 Filler-Formular fest. Klicken Sie dann auf Programmierung, und legen Sie Codesprache der Formularvorlage auf die gewünschte Sprache fest.
Darüber hinaus können Sie eine Formularvorlage konvertieren, für die das InfoPath 2003-Objektmodell verwendet wird, 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 erstellten Formularvorlage.
Siehe auch
Aufgaben
Exemplarische Vorgehensweise: Erstellen einer einfachen Formularvorlage mit verwaltetem Code