Share via


Erstellen von .NET-Verbindungsassemblys und Webdiensten

Letzte Änderung: Dienstag, 6. Juli 2010

Gilt für: SharePoint Server 2010

Inhalt dieses Artikels
Bewährte Methoden für den Entwurf
Implementierungsschritte
Definieren stereotyper Vorgänge im Dienst
Bewährte Methoden für das Schreiben von .NET-Verbindungsassemblys und Webdiensten

Sie können mit Microsoft Business Connectivity Services (BCS) externe Daten aus verschiedenen Arten externer Systeme in Microsoft SharePoint 2010- und Microsoft Office 2010-Anwendungen verwenden. Zu diesen externen Systemen gehören folgende:

  • Datenbanken

  • Webdienste

Wenn das externe System von Business-Konnektivitätsdienste (Business Connectivity Services) nicht direkt unterstützt wird, können Sie das externe System durch Schreiben von Code über Business-Konnektivitätsdienste (Business Connectivity Services) verfügbar machen. Wenn die Entitäten im externen System statisch sind, nicht oft geändert werden und einen kleinen Satz bekannter Typen enthalten, können Sie Webdienste oder .NET-Verbindungsassemblys schreiben, um die Daten aus dem externen System in dem Format verfügbar zu machen, das für Business-Konnektivitätsdienste (Business Connectivity Services) am verständlichsten ist. Wenn die Entitäten jedoch dynamisch sind, benutzerdefinierte Typen aufweisen und in großem Umfang vorhanden sind, ziehen Sie die Erstellung eines benutzerdefinierten Konnektors für diesen Datenquelltyp in Betracht. Sie müssen jedoch die Verbindung, die Datenübertragung, das Setup und die Tools für einen benutzerdefinierten Konnektor behandeln. Weitere Informationen finden Sie unter Unterschiede zwischen der Verwendung des .NET-Assembly-Konnektors und dem Erstellen eines benutzerdefinierten Konnektors.

Die folgende Abbildung enthält ein einfaches Architekturdiagramm für Microsoft Business Connectivity Services (BCS). Dabei werden die verschiedenen durch Business-Konnektivitätsdienste (Business Connectivity Services) bereitgestellten Konnektoren gezeigt, und Sie sehen, wie sich die .NET-Assembly, der Webdienst und die benutzerdefinierten Konnektoren in die allgemeine Architektur einfügen.

High-Level-Architektur von BCS

In diesem Thema werden die bewährten Methoden für das Schreiben von .NET-Verbindungsassemblys und Webdiensten beschrieben. Wenn Sie einen Webdienst oder eine .NET-Verbindungsassembly haben, können Sie mithilfe von Microsoft SharePoint Designer 2010 eine Verbindung damit herstellen und externe Inhaltstypen ermitteln.

In der folgenden Tabelle werden die beiden Methoden verglichen und gegenübergestellt.

Tabelle 1. Methoden für das Schreiben von .NET-Verbindungsassemblys oder Webdiensten

Webdienst

.NET-Verbindungsassembly

Implementierungstechnologie

Kann ein beliebiger SOAP 1.1- oder SOAP 1.2-kompatibler Webdienst sein. Beispiele: ASP.NET-Webdienst, WCF-Webdienst-Endpunkt.

Microsoft .NET Framework 3.5

Hosting

Der Webdienst wird nicht von Business-Konnektivitätsdienste (Business Connectivity Services) gehostet. Sie müssen den Dienst hosten.

Hosting ist bei einer .NET-Verbindungsassembly nicht notwendig. Sie können die .NET-Verbindungsassembly einfach im BDC-Metadatenspeicher bereitstellen, und der Rest wird von Business-Konnektivitätsdienste (Business Connectivity Services) übernommen.

Unterstützte Tools

Sie können zum Schreiben des Webdiensts ein Entwicklungstool wie beispielsweise Microsoft Visual Studio verwenden. Es werden keine speziellen Projektvorlagen oder Tools für die Erstellung von Webdiensten für Business-Konnektivitätsdienste (Business Connectivity Services) in Visual Studio bereitgestellt.

Zum Schreiben der .NET-Verbindungsassembly können Sie ein Entwicklungstool wie beispielsweise Microsoft Visual Studio verwenden. In Microsoft Visual Studio 2010 wird eine neue Projektvorlage mit dem Namen Business Data Connectivity-Modell bereitgestellt, für die eine Reihe von visuellen Designern und Codeverwaltungsfunktionen vorhanden sind, mit denen Sie einfach .NET-Verbindungsassemblys und das zugehörige -Modell für Business-Konnektivitätsdienste (Business Connectivity Services) erstellen, debuggen und bereitstellen können.

Unterstützte Authentifizierung

Für Webdienste werden von Business-Konnektivitätsdienste (Business Connectivity Services) die folgenden Authentifizierungsmechanismen unterstützt: Passthrough, RevertToSelf, WindowsCredentials, WindowsCredentials und DigestCredentials. Weitere Informationen finden Sie unter Verfügbare Authentifizierungsmodi.

In einer .NET-Verbindungsassembly müssen Sie sich um die Sicherheit und Authentifizierung kümmern. Wenn Sie Einmaliges Anmelden verwenden möchten, können Sie das Objektmodell für einmaliges Anmelden verwenden, um Anmeldeinformationen programmgesteuert zu speichern und abzurufen. Alternativ können Sie den Filter für Benutzernamen und Kennwörter verwenden, um den Benutzernamen und das Kennwort abzurufen.

Typen

Sie können in einer .NET-Verbindungsassembly .NET-Typen verwenden, die in Webdiensten nicht verfügbar sind. Beispiel: Nicht serialisierte Typen.

Bewährte Methoden für den Entwurf

Unabhängig davon, ob Sie einen Webdienst oder eine .NET-Verbindungsassembly erstellen, stellen Sie in dem Code, den Sie schreiben, eine Verbindung mit dem externen System her, definieren die im externen System benötigten externen Inhaltstypen und schließen den erforderlichen Code für die Ausführung der einzelnen stereotypen Vorgänge (Methodeninstanzen) ein, die Sie für die einzelnen externen Inhaltstypen unterstützen möchten.

Da Sie Code im Webdienst und in der .NET-Verbindungsassembly schreiben, können Sie die Daten von vielen Stellen beziehen und haben zahlreiche Verwendungsmöglichkeiten, bevor die Daten in Business-Konnektivitätsdienste (Business Connectivity Services) und SharePoint gelangen. Sie können im Code verschiedene Aktionen ausführen, beispielsweise Aggregieren von Daten aus mehreren Quellen, Anwenden von Transformationen und Geschäftslogik und Behandeln benutzerdefinierter Sicherheitsschemas.

HinweisHinweis

Entscheidend ist beim Schreiben von Webdiensten und .NET-Verbindungsassemblys, dass Sie die externen Inhaltstypen berücksichtigen und sicherstellen, dass die Webmethoden im Webdienst und die Methoden in der .NET-Verbindungsassembly den stereotypen Vorgängen entsprechen, die von BDC unterstützt werden. Dadurch soll außerdem sichergestellt werden, dass von Microsoft SharePoint Designer 2010 eine Verbindung mit dem Webdienst und der .NET-Verbindungsassembly hergestellt werden kann und dass damit eine Ermittlungs- und Verwendungsmethode für die Erstellung externer Inhaltstypen nach der Erstellung und Veröffentlichung des Diensts bereitgestellt wird.

Stellen Sie beispielsweise bei einem Webdienst sicher, dass für jeden stereotypen Vorgang, den Sie unterstützen möchten, eine Webmethode vorhanden ist und dass deren Signatur mit der empfohlenen Methodensignatur für die stereotypen Vorgänge übereinstimmt (siehe folgender Abschnitt).

Analog müssen Sie in einer .NET-Verbindungsassembly sicherstellen, dass der .NET-Code Methoden für die einzelnen stereotypen Vorgänge enthält, die für den externen Inhaltstyp erforderlich sind. Von Business-Konnektivitätsdienste (Business Connectivity Services) werden diese Methoden zur Laufzeit aufgerufen, wenn ein Benutzer eine Aktion für den externen Inhaltstyp ausführt (beispielsweise Lesen oder Aktualisieren eines Elements).

Implementierungsschritte

In der Regel ist in einer .NET-Verbindungsassembly jeder externe Inhaltstyp einer Klasse zugeordnet, und jeder stereotype Vorgang ist eine Methode innerhalb der Klasse. Bei einem Webdienst ist jeder stereotype Vorgang eine Webmethode.

.NET-Verbindungsassembly

  1. Erstellen Sie in einer .NET-Verbindungsassembly für jeden externen Inhaltstyp eine Klasse, und definieren Sie die Felder, die enthalten sein sollen. Schließen Sie immer einen Bezeichner für den externen Inhaltstyp ein. Normalerweise ist dies der Primärschlüssel in einer Datenbanktabelle. Von BDC werden bis zu 20 zusammengesetzte Feldbezeichner unterstützt.

  2. Erstellen Sie eine weitere Klasse, und fügen Sie dieser Methoden hinzu, um die stereotypen Vorgänge zu definieren, die Sie für die einzelnen externen Inhaltstypen unterstützen möchten. Ein Beispiel finden Sie weiter unten in diesem Thema unter Definieren stereotyper Vorgänge im Dienst.

Webdienst

  1. Die Webdienstentwicklung beginnt normalerweise mit der Definition komplexer Typen. Definieren Sie die Struktur der einzelnen externen Inhaltstypen. Stellen Sie auch hier sicher, dass immer ein Bezeichner für den externen Inhaltstyp enthalten ist. Normalerweise ist dies der Primärschlüssel in einer Datenbanktabelle. Von BDC werden bis zu 20 zusammengesetzte Feldbezeichner unterstützt.

  2. Definieren Sie Webmethoden für die einzelnen stereotypen Vorgänge, die Sie für die externen Inhaltstypen unterstützen möchten. Ein Beispiel finden Sie im Abschnitt Definieren stereotyper Vorgänge im Dienst.

Definieren stereotyper Vorgänge im Dienst

Welche stereotypen Vorgänge Sie implementieren, hängt von den Anforderungen ab. In der folgenden Tabelle werden die stereotypen Vorgänge aufgeführt, deren Implementierung für die gängigsten Anforderungen empfohlen wird.

Anforderung

Stereotype Vorgänge

Anmerkungen

Lesen externer Elemente

SpecificFinder- und Finder-Methodeninstanzen. Diese sind erforderlich für alle Clientfeatures von Business-Konnektivitätsdienste (Business Connectivity Services).

Ziehen Sie für die optimierte Datensynchronisierung mit Clientcomputern BulkSpecificFinder, IDEnumerator, BulkIDEnumerator, ChangedIDEnumerator und DeletedIDEnumerator in Betracht. Dies kann in Szenarien wichtig werden, in denen viele Benutzer oder große Datenmengen offline geschaltet werden müssen.

Zurückschreiben externer Elemente

Creator-, Updater- und Deleter-Methodeninstanzen, wenn Create-, Update- und Delete-Vorgänge für den externen Inhaltstyp gewünscht werden.

Wenn Zurückschreiben vom externen System nicht unterstützt wird, kennzeichnen Sie alle Felder des externen Inhaltstyps als schreibgeschützt. Wenn Sie deklarative oder erweiterte codebasierte Lösungen in Outlook basierend auf dem externen Inhaltstyp erstellen, kennzeichnen Sie auch den Outlook-Ordner als schreibgeschützt.

Verwandte externe Elemente

AssociationNavigator

Associator

Disassociator

BulkAssociationNavigator, BulkAssocatedIDEnumerator

Associator und Disassociator werden nur für Zuordnungen ohne Fremdschlüssel verwendet. Weitere Informationen finden Sie unter "Microsoft.BusinessData.MetadataModel.IAssoication-Klasse".

Suchen

IDEnumerator und BulkIDEnumerator

AccessChecker

BinarySecurityDescriptorAccessor

Offlineverwendung auf Client

Von den Methoden Finder und SpecificFinder müssen die gleichen Sätze von Feldern zurückgegeben werden, damit die Leistung nicht beeinträchtigt wird. Wenn von den Methoden Finder und SpecificFinder unterschiedliche Sätze von Feldern zurückgegeben werden, können die Benutzer den externen Inhaltstyp nicht offline auf Microsoft Office 2010-Clients verwenden.

Wenn die Benutzer offline sind und eine komplex Filterlogik verwendet wird, erhalten Sie möglicherweise nicht die Ergebnissätze, die Sie online erhalten würden.

BLOB-Daten

StreamAccessor

Bewährte Methoden für das Schreiben von .NET-Verbindungsassemblys und Webdiensten

Berücksichtigen Sie beim Schreiben von .NET-Verbindungsassemblys und Webdiensten die folgenden bewährten Methoden:

  • Schließen Sie Bezeichner ein. Stellen Sie sicher, immer Bezeichner für die einzelnen externen Inhaltstypen einzuschließen. Normalerweise ist dies der Primärschlüssel in einer Datenbanktabelle. Von BDC werden bis zu 20 zusammengesetzte Feldbezeichner unterstützt.

  • Behandeln Sie Nullwerte. Normalerweise wird vom Read-Vorgang das externe System abgefragt, und der zurückzugebende Typ wird gefüllt. Stellen Sie sicher, dass Sie null-Werte in der SpecificFinder-Methode richtig behandeln. Das externe System enthält wahrscheinlich null-Felder (beispielsweise für Hobbys oder für die Adresse). Die ordnungsgemäße Behandlung von Fehlern und Ausnahmen ist unerlässlich. Überprüfen Sie daher den Code auf null-Werte und leere Zeichenfolgen, und korrigieren Sie diese im Code. Ziehen Sie außerdem die Verwendung der NormalizeString-Interpretation für Typdeskriptoren in Betracht.

  • Ordnen Sie Parameternamen zu. Die Namen der Parameter müssen den im externen System vorhandenen entsprechen. Wenn für die Namen der Parameter nicht bei allen Methoden die gleiche Groß-/Kleinschreibung verwendet wird, werden die Parameter von SharePoint Designer 2010 als unterschiedliche Felder interpretiert.

  • Behandeln Sie Ausnahmen. Stellen Sie sicher, dass Sie Ausnahmen richtig behandeln. Sehen Sie Vorgangsfehler voraus, und lösen Sie Ausnahmen aus.

    Wenn von einer Methode ein einziges Element zurückgegeben werden soll (beispielsweise bei einer bestimmten Suchmethode) und das angeforderte Element nicht gefunden wird, sollten vom Code folgende Aktionen ausgeführt werden:

    1. Zurückgeben von null. Dies ist die einfachste Methode mit der höchsten Kompatibilität.

    2. Auslösen von ObjectNotFoundException. Diese Ausnahme ist nur dann hilfreich, wenn Sie eine bestimmte Meldung protokollieren möchten. Vermeiden Sie es, diese Ausnahme für Webdienste auszulösen.

    3. Auslösen von ObjectDeletedException. Diese Ausnahme sollte nur verwendet werden, wenn Sie wissen, dass das Objekt gelöscht wurde. Vermeiden Sie es, diese Ausnahme für Webdienste auszulösen.

    4. Kein Auslösen weiterer Ausnahmen.

    5. Kein Zurückgeben unvollständiger oder falscher Daten.

    Wenn von einer Methode mehrere Elemente zurückgegeben werden sollen (beispielsweise bei einer Suchmethode) und keine Elemente gefunden werden, sollten vom Code folgende Aktionen ausgeführt werden:

    1. Zurückgeben einer leeren Auflistung/Enumeration von Elementen. Dies wird bevorzugt.

    2. Zurückgeben von null.

    3. Kein Auslösen von Ausnahmen.

    Wenn eine Methode keinen Rückgabewert hat (beispielsweise update) und ein Problem mit dem Update auftritt, sollten vom Code folgende Aktionen ausgeführt werden:

    1. Auslösen einer Ausnahme.

    2. Keine Verwendung von Rückgabewerten oder Fehlercodes. BDC verfügt zurzeit nicht über eine Möglichkeit, diese Werte zu interpretieren.

Weitere Informationen finden Sie unter Implementieren von stereotypen Vorgängen in Ihren Methoden.

Siehe auch

Aufgaben

Gewusst wie: Veröffentlichen einer .NET-Verbindungsassembly im BDC-Metadatenspeicher

Konzepte

Gewusst wie: Erstellen einer .NET-Verbindungsassembly

Gewusst wie: Verwenden von Secure Store Service in einer .NET-Verbindungsassembly

Weitere Ressourcen

Implementieren von stereotypen Vorgängen in Ihren Methoden