Informationen über InfoPath Forms Services und Geschäftslogikassemblys

Letzte Änderung: Dienstag, 6. Juli 2010

Gilt für: SharePoint Server 2010

Inhalt dieses Artikels
Das neue Objektmodell mit verwaltetem Code
Sicherheit und Leistung
Hinweise zum Verwenden und Referenzieren von Assemblys

Benutzerdefinierte Geschäftslogik wird in einer browsergestützten Formularvorlage unterstützt, wenn in ihr die unterstützten Typen und Member des neuen Objektmodells mit verwaltetem Code verwendet werden, das vom Microsoft.Office.InfoPath-Namespace bereitgestellt wird. Die in den InfoPath-Designer integrierte Microsoft Visual Studio Tools for Applications-Entwicklungsumgebung unterstützt die Sprachen Visual Basic und Visual C#.

JScript, VBScript und verwalteter Code, der mithilfe des in Microsoft Office InfoPath 2003 Service Pack 1 eingeführten Microsoft.Office.Interop.InfoPath.SemiTrust-Objektmodells geschrieben wurde, werden auf einem Server mit InfoPath Forms Services nicht unterstützt.

Das neue Objektmodell mit verwaltetem Code

Im neuen Objektmodell mit verwaltetem Code wird die [System.Xml.XPath.XPathNavigator]-Klasse zum Navigieren in XML-Datenspeichern und zum Aktualisieren von XML-Datenspeichern verwendet. Die Microsoft SharePoint Foundation-Technologie, auf der InfoPath Forms Services aufbaut, erfordert .NET Framework 2.0. Ausführliche Informationen zum neuen Objektmodell mit verwaltetem Code und die veralteten Objektmodelle, die mit Microsoft InfoPath 2010 verwendet werden können, finden Sie im Thema "Grundlegendes zu InfoPath-Objektmodellen und zur Entwicklungsumgebung" in der InfoPath 2010-Entwicklerreferenz für Formularvorlagen, die im Microsoft Visual Studio Tools for Applications-Hilfesystem zur Verfügung steht.

Weitere Informationen zu dem Teil des Objektmodells mit verwaltetem Code, der die Typen und Member enthält, die sowohl in InfoPath als auch in einem Webbrowser verwendet werden können, finden Sie unter Kompatibilität mit dem Feature für einmaligen Entwurf. Es ist möglich, die Laufzeitumgebung programmgesteuert zu bestimmen, um benutzerdefinierte Geschäftslogik ausgehend davon zu ändern, ob das Formular in InfoPath, in einem Desktop-Webbrowser oder in einem mobilen Browser geöffnet wird. Weitere Informationen zum Bestimmen der Laufzeitumgebung finden Sie im Thema "Gewusst wie: Schreiben von Geschäftslogik zur Bestimmung der Laufzeitumgebung" im Microsoft Visual Studio Tools for Applications-Hilfesystem.

Sicherheit und Leistung

Wenn Sie eine browserkompatible Formularvorlage erstellen, wird der standardmäßige InfoPath-Formularcode mit der Schlüsseldatei mit starkem Namen InfoPath.snk signiert. Sie können für Ihre Geschäftslogikassemblys eine andere Schlüsseldatei mit starkem Namen verwenden. Wenn die standardmäßige Formularcodedatei oder eine oder mehrere unterstützende Assemblys nicht mit einem starken Namen versehen und signiert sind und die Formularvorlage, die die Geschäftslogikdatei enthält, geupgradet wird, muss die SharePoint-Anwendungsdomäne (AppDomain) wiederverwendet werden.

InfoPath-Geschäftslogikassemblys werden über die Auflösung der Richtlinie für Codezugriffssicherheit (Code Access Security, CAS) Berechtigungen erteilt. Die domain-new-Vertrauensstufe auf dem Server ist ein der Domänenvertrauensstufe auf dem Client entsprechendes Konzept. SharePoint enthält drei Richtliniendateien: Minimal, Medium und Full. InfoPath Forms Services weist Geschäftslogikassemblys entsprechend aus, sodass sie einer in der Richtliniendatei definierten Codegruppe zugewiesen werden und den richtigen Berechtigungssatz erhalten. Dieser Berechtigungssatz wird der Geschäftslogikassembly zugewiesen, wenn sie in der ASP.NET-Anwendungsdomäne geladen wird. In den meisten Fällen entspricht er jedoch nicht genau dem Berechtigungssatz, den die gleiche Assembly erhält, wenn die Formularvorlage, in der die benutzerdefinierte Geschäftslogikassembly enthalten ist, in InfoPath geöffnet wird. Damit sichergestellt ist, dass eine Formularvorlage in InfoPath und in einem Browser geöffnet werden kann, wenn eine Geschäftslogikassembly Aufrufe an das Objektmodell ausführt oder wenn InfoPath Forms Services Ereignisse an die Geschäftslogikassembly sendet, wird der Berechtigungssatz entsprechend herauf- oder heruntergestuft, um die richtige Stufe zu erhalten. Darüber hinaus werden, wenn eine InfoPath-Formularvorlage mehrere Assemblys enthält, alle Assemblys gleichzeitig geladen, um sicherzustellen, dass ein konsistenter Berechtigungssatz angewendet wird.

HinweisHinweis

Nur voll vertrauenswürdige Formularvorlagen können Code enthalten, der Assemblys dynamisch auf einem Server mit InfoPath Forms Services erstellt.

Die einzelnen Geschäftslogikassemblys aus allen browsergestützten Formularvorlagen auf Servern mit InfoPath Forms Services werden je nach Bedarf in die einzelne Anwendungsdomäne geladen, die von SharePoint verwendet und gesteuert wird. Wird die Anwendungsdomäne wiederverwendet, werden Geschäftslogikassemblys erst bei erneuter Anforderung erneut geladen.

Geschäftslogikassemblys werden auf jedem Front-End-Webserver gespeichert und von InfoPath Forms Services mithilfe der LoadFrom-Methode der Assembly-Klasse von .NET Framework geladen. Diese enthält Semantik zum Zusammenführen des Eingabebeweises mit dem vom Ladeprogramm erfassten Beweis zur Erstellung eines endgültigen Beweissatzes für die Richtlinienauflösung.

Hinweise zum Verwenden und Referenzieren von Assemblys

  • Sollen Assemblys in mehreren Formularvorlagen gemeinsam verwendet werden, fügen Sie die gemeinsam zu verwendenden Assemblys in jede Formularvorlage ein. Beachten Sie jedoch Folgendes: Wenn eine zweite oder nachfolgende Formularvorlage die gleiche Assembly verwendet, jedoch mit einer höheren oder niedrigeren Sicherheitsstufe gekennzeichnet ist, erbt die gemeinsam verwendete Assembly den zugehörigen Anwendungsdomänen-Berechtigungssatz aus der Sicherheitsstufe der ersten Formularvorlage.

  • Ein Formular, das benutzerdefinierte Geschäftslogikassemblys enthält, kann nicht konvertiert werden, wenn irgendeine der Formularassemblys die gleiche Identität wie eine Assembly in einem bereits konvertierten Formular hat und die Assemblys nicht bitweise verglichen werden.