Freigeben über


Einführung in Business Connectivity Services in SharePoint Online

Zusammenfassung:  Lernen Sie die Grundkonzepte, bewährten Methoden und Entwurfsmuster kennen, die zur Entwicklung von Anwendungen für Microsoft SharePoint Online mithilfe von Microsoft Business Connectivity Services (BCS) erforderlich sind.

Letzte Änderung: Montag, 12. Dezember 2011

Verfügbar in SharePoint Online

Inhalt dieses Artikels
Was ist Business Connectivity Services?
Externe Inhaltstypen
BDC-Modelle
Externe Listen
Spalten für externe Daten
Geschäftsdatenwebparts
Auswahltool für externe Inhaltstypen
Auswahltool für externe Elemente
Einmaliges Anmelden
SharePoint-Clientobjektmodell
Entwickeln von BCS-Anwendungen
Schlussbemerkung
Weitere Ressourcen

Gilt für: Business Connectivity Services | Open XML | SharePoint Designer 2010 | SharePoint Foundation 2010 | SharePoint Online | SharePoint Server 2010 | Visual Studio

Bereitgestellt von:  Rodney Farris, Microsoft Corporation

Inhalt

  • Was ist Business Connectivity Services?

  • Externe Inhaltstypen

  • BDC-Modelle

  • Externe Listen

  • Spalten für externe Daten

  • Geschäftsdatenwebparts

  • Auswahltool für externe Inhaltstypen

  • Auswahltool für externe Elemente

  • Einmaliges Anmelden

  • SharePoint-Clientobjektmodell

  • Schlussbemerkung

  • Weitere Ressourcen

Was ist Business Connectivity Services?

Microsoft Business Connectivity Services (BCS), früher als Geschäftsdatenkatalog bezeichnet, ermöglicht Benutzern das Lesen und Schreiben von Daten aus externen Systemen – über Webdienste, Datenbanken und Microsoft .NET Framework – in Microsoft SharePoint 2010 und Microsoft SharePoint Online. SharePoint 2010 und SharePoint Online verfügen über Features, die externe Daten direkt verwenden können. Entwickler erhalten Zugriff auf einen reichhaltigen Satz von Features und können mithilfe bekannter Tools wie Microsoft Visual Studio 2010 und Microsoft SharePoint Designer 2010 rasch Lösungen erstellen.

Wenn Sie SharePoint Online noch nicht kennen, ist dies der richtige Artikel für Sie. Er enthält die Grundkonzepte, bewährten Methoden und Entwurfsmuster, die zur Entwicklung von Anwendungen für SharePoint Online mit BCS erforderlich sind. In dem Artikel wird davon ausgegangen, dass Sie mit den grundlegenden SharePoint-Konzepten und den Mustern der SharePoint-Anwendungsentwicklung vertraut sind.

TippTipp

Weitere Informationen zu bewährten Methoden und Entwurfsmustern für SharePoint Online finden Sie unter SharePoint Online: Übersicht für Entwickler.

Externe Inhaltstypen

Ein zentrales Konzept von BCS ist der externe Inhaltstyp. Externe Inhaltstypen sind in SharePoint Online gespeicherte wiederverwendbare Konnektivitätsdefinitionen, die Zugriff auf externe Daten bieten, ohne dass die zugrunde liegenden Verbindungsdetails bekannt sein müssen.

Diese Definitionen enthalten Metadatenbeschreibungen von Konnektivitätsinformationen und Datendefinitionen sowie die Verhaltensweisen, die Sie auf eine bestimmte Kategorie externer Daten anwenden möchten. Mithilfe externer Inhaltstypen können Sie die Metadaten und Verhaltensweisen einer Geschäftseinheit (z. B. "Kunde" oder "Bestellung") zentral verwalten und wiederverwenden, und die Benutzer können mit diesen externen Daten und Prozessen sinnvoller interagieren.

Angenommen, es gibt die Geschäftsentität "Kunde". Sie möchten mit Elementen vom Typ "Kunde" in einer SharePoint-Liste interagieren. Vielleicht möchten Sie aber auch, dass der Benutzer einen Kunden aus einer Kundenliste in einem Webpart auswählen kann. Sie können einmalig einen externen Inhaltstyp erstellen und diesen dann überall wiederverwenden.

HinweisHinweis

Das Schema einer externen Liste basiert auf dem in XML definierten BDC-Modell (siehe nächster Abschnitt) und kann nicht wie eine normale Liste durch Hinzufügen neuer Spalten erweitert werden. In dieser Version weisen externe Listen nicht die gesamte Funktionalität typischer SharePoint-Listen auf, wie z. B. Workflow, Inhaltstypen, Versionsverwaltung, Einchecken und Auschecken.

Externe Inhaltstypen bieten die folgenden Vorteile:

  • Wiederverwendbarkeit   Ein externer Inhaltstyp ist eine wiederverwendbare Datendefinition einer Geschäftsentität. Der erstellte Inhaltstyp kann mit allen Präsentationsfeatures in BCS verwendet werden, um eine optimale Interaktion mit externen Daten zu ermöglichen.

  • Einfacherer Zugriff auf externe Systeme   Information Worker können mit externen Inhaltstypen Unternehmenslösungen zusammenfassen, ohne sich um die Komplexität dieser Systeme kümmern zu müssen. Sie müssen z. B. nicht die Konnektivitätsinformationen kennen oder sich mit den Programmierschnittstellen vertraut machen. Nachdem ein erfahrener Benutzer oder ein Entwickler einen externen Inhaltstyp erstellt hat, ist dieser für jeden Benutzer und für jeden Verwendungszweck verfügbar (vorausgesetzt er verfügt über die erforderlichen Berechtigungen zum Ausführen dieses Vorgangs und zum Zugreifen auf die externen Daten). Der Benutzer benötigt jedoch keinerlei Kenntnisse im Hinblick auf den Speicherort der externen Daten oder die Methode zum Herstellen einer Verbindung mit diesen Daten.

  • Integrierte Office- und SharePoint-Verhaltensweisen   Externe Inhaltstypen bieten Verhaltensweisen von SharePoint (z. B. Listen und Webparts) sowie Funktionen (z. B. Suchen und Offlinearbeit) für externe Daten und Dienste, damit Benutzer in ihrer vertrauten Umgebung arbeiten können, ohne dass sie nach Daten suchen oder sich mit anderen (und proprietären) Benutzeroberflächen vertraut machen und mit diesen interagieren müssen.

  • Sicherer Zugriff   Für externe Inhaltstypen gilt die Sicherheit sowohl des externen Systems als auch der SharePoint-Produkte und -Technologien. Durch die Konfiguration der Sicherheit in SharePoint haben Sie die volle Kontrolle darüber, wer auf welche Daten zugreift.

  • Vereinfachte Wartung   Externe Inhaltstypen können einmalig erstellt und dann von mehreren Lösungen in verschiedenen Szenarien verwendet werden, weshalb sie einfach verwaltet werden können. Beispielsweise können Sie die Zugriffsberechtigungen sowie Verbindungs- und Datendefinitionen zentral verwalten.

BDC-Modelle

Ein BDC-Modell ist die zentrale Komponente des Business Data Connectivity-Diensts (BDC). Die Datenstrukturen wie z. B. Entity (externer Inhaltstyp) und Method, mit denen komplexe Details eines externen Systems abstrahiert werden, werden zusammen als Metadatenobjekte bezeichnet und bilden das BDC-Modell. Das BDC-Modell für ein externes System ist im Prinzip eine XML-Datei. Wenn Sie SharePoint Designer 2010 verwenden, wird diese Datei automatisch generiert. Wenn Sie jedoch Visual Studio oder ein anderes XML-Bearbeitungsprogramm verwenden, müssen Sie das BDC-Modell entsprechend dem veröffentlichten BDC-Schema manuell erstellen.

Externe Listen ermöglichen das Zurückschreiben in das externe System, falls das externe System dies zulässt und falls es entsprechend durch den externen Inhaltstyp modelliert ist. Dies bedeutet, dass Benutzer externe Daten direkt in SharePoint Online bearbeiten können. Änderungen, die an Elementen in der Liste vorgenommen wurden, werden automatisch mit dem externen System synchronisiert. Mithilfe der Schaltfläche Daten aktualisieren in der Liste können Sie aktualisierte Daten automatisch synchronisieren und aus dem externen System abrufen.

Externe Listen

Eine externe Liste ermöglicht den Zugriff auf Daten von externen Systemen auf die gleiche Weise, wie auf SharePoint-Listendaten zugegriffen wird. In externen Listen werden externe Inhaltstypen als Datenquellen verwendet. Mit externen Listen können Sie unter Verwendung der bereits für einen externen Inhaltstyp definierten Metadaten eine SharePoint-Liste mit externen Daten erstellen, die wie jede andere SharePoint-Liste aussieht und sich auch so verhält.

HinweisHinweis

Im Gegensatz zu einer SharePoint-Liste, deren Daten in der SharePoint-Inhaltsdatenbank gespeichert werden, werden die Daten einer externen Liste nur im externen System gespeichert. Externe Daten werden zur Laufzeit in die SharePoint-Liste übertragen, wenn Sie zu der Liste navigieren. Die ursprünglichen Daten verbleiben jedoch im externen System.

Spalten für externe Daten

In Microsoft Office SharePoint Server 2007 wurde der Listenspaltentyp Geschäftsdaten eingeführt, der nun für alle SharePoint-Listen (mit Ausnahme von externen Listen) in SharePoint Online verfügbar ist. Der Listenspaltentyp Geschäftsdaten wird nun als Spalte für externe Daten bezeichnet und ermöglicht Benutzern das Hinzufügen von Daten aus externen Inhaltstypen zu standardmäßigen SharePoint-Listen. In der Spalte für externe Daten können wie in einer externen Liste Daten jedes externen Inhaltstyps angezeigt werden, der in BDC modelliert ist. In Abbildung 1 ist eine SharePoint-Liste dargestellt, die um Spalten für externe Daten aus dem externen Inhaltstyp Customer erweitert wurde.

Abbildung 1. SharePoint-Liste mit hinzugefügten Spalten für externen Daten

SharePoint-Liste mit hinzugefügten externen Datenspalten

Geschäftsdatenwebparts

BCS bietet die folgenden Webparts für den Zugriff auf schreibgeschützte Daten, die durch externe Datentypen verfügbar gemacht werden:

  • Externe Datenliste

  • Externes Datenelement

  • Generator für externe Datenelemente

  • Liste mit externen verknüpften Daten

  • Filter für externe Datenkonnektivität

Weitere Informationen finden Sie unter Wo können externe Daten angezeigt werden?

Auswahltool für externe Inhaltstypen

Ein Auswahltool für externe Inhaltstypen ermöglicht die Auswahl eines vordefinierten externen Inhaltstyps aus der Liste der verfügbaren externen Inhaltstypen in SharePoint Online.

Auswahltool für externe Elemente

Ein Auswahltool für externe Elemente stellt Funktionen zur Auswahl und Auflösung externer Elemente auf dem Server und in umfangreichen Microsoft Office-Clientanwendungen zur Verfügung. Sie können ein Auswahltool in ein Formular oder eine Seite für Szenarien einfügen, in denen Benutzer in der Lage sein sollten, ein externes Element wie etwa einen Kunden aus einer Kundenliste auszuwählen.

Einmaliges Anmelden

Einmaliges Anmelden ist ein gemeinsamer Dienst, der die Speicherung und Zuordnung von Anmeldeinformationen wie Kontonamen und Kennwörtern bereitstellt. Der Dienst ermöglicht die sichere Speicherung von Daten, die Anmeldeinformationen für die Verbindung mit externen Systemen enthalten, und die Zuordnung dieser Anmeldeinformationen zu einer bestimmten Identität oder Gruppe von Identitäten. Der Dienst Einmaliges Anmelden kann so konfiguriert werden, dass mehrere Benutzer über einen einzigen Satz von Anmeldeinformationen auf ein externes System zugreifen können.

HinweisHinweis

Der Dienst Einmaliges Anmelden ist der einzige unterstützte Mechanismus zur Authentifizierung von Benutzern bei einem externen System in SharePoint Online.

Verfügt z. B. der Benutzer "Fred" über ein in SharePoint Online gehostetes Benutzerkonto und ein anderes in einer Windows Communication Foundation (WCF)-Anwendung, ermöglicht der SharePoint-Mechanismus Einmaliges Anmelden die Zuordnung seiner WCF-Anmeldeinformationen zu einer Gruppe in Einmaliges Anmelden. Wenn er somit eine Lösung aus SharePoint Online verwendet, um Daten aus der WCF-Anwendung abzurufen, wird von SharePoint Online in der Datenbank für Einmaliges Anmelden auf dem Server nachgeschlagen, und die Gruppenanmeldeinformationen werden dem WCF-Dienst im Namen von Fred bereitgestellt. Auf diese Weise kann Fred ohne gesonderte Anmeldung auf die vom WCF-Dienst gesicherten Daten zugreifen.

SharePoint-Clientobjektmodell

Das SharePoint-Clientobjektmodell ermöglicht die Interaktion mit SharePoint-Websites von einer Clientanwendung im Browser aus.

Das Clientobjektmodell stellt drei parallele, vergleichbare Darstellungen der zentralen Objekte im SharePoint-Serverobjektmodell bereit: ein verwaltetes .NET Framework-Modell, ein Microsoft Silverlight-Modell und ein JavaScript-Modell. Diese Clientobjektmodelle ermöglichen den Remotezugriff auf SharePoint-Daten und -Funktionen.

Das Clientobjektmodell basiert auf der SPList-Klasse, um CRUD-Vorgänge auf dem Client über die SharePoint-Webdienste auszuführen.

Entwickeln von BCS-Anwendungen

Die folgenden Informationen sind hilfreich, wenn Sie mit der Entwicklung von BCS-Anwendungen beginnen.

Tools zur Entwicklung von BCS-Anwendungen

Sie haben im Wesentlichen zwei Möglichkeiten zur Entwicklung von Anwendungen und Komponenten für BCS: Visual Studio 2010 und SharePoint Designer 2010. Da benutzerdefinierter Code jedoch derzeit für die Verbindung von SharePoint Online mit externen Datenquellen nicht zulässig ist, ist SharePoint Designer 2010 das bevorzugte Tool.

SharePoint Designer 2010 vereinfacht die Entwicklung von SharePoint-Anwendungen und bietet Visual Studio-Entwicklern ein hervorragendes Tool für die schnelle Anwendungsentwicklung ohne Code.

Erstellen von externen Inhaltstypen und Zuordnungen

Wie oben erläutert, ist ein externer Inhaltstyp eine wiederverwendbare Sammlung von Metadaten, die Verbindungsinformationen und Datendefinitionen sowie die Verhaltensweisen enthält, die einer bestimmten Kategorie externer Daten zugeordnet werden sollen. Das Erstellen eines externen Inhaltstyps ist in der Regel der erste Schritt beim Importieren von Daten aus externen Datenquellen in SharePoint Online mithilfe von BCS. Sobald ein externer Inhaltstyp vorhanden ist, können Sie ihn gemeinsam mit beliebigen Präsentationsfunktionen von BCS verwenden, z. B. externen Listen, Spalten für externe Daten und Steuerelementen für externe Inhalte für Office-Anwendungen, um externe Daten in SharePoint Online anzuzeigen.

Das Erstellen eines externen Inhaltstyps in SharePoint Online umfasst folgende Schritte:

  1. Erstellen Sie einen WCF-Endpunkt, der die externe Datenquelle und die Vorgänge verfügbar macht, die Benutzern zur Verfügung stehen sollen.

  2. Erstellen Sie mit SharePoint Designer oder Visual Studio einen externen Inhaltstyp, der mithilfe der erforderlichen Anmeldeinformationen eine Verbindung mit dem WCF-Dienst herstellt.

  3. Erstellen Sie einen Eintrag für Einmaliges Anmelden, in dem einem SharePoint Online-Benutzer das vom WCF-Dienst zugelassene Benutzerkonto zugeordnet wird.

  4. Erstellen Sie eine externe Liste mit dem neu erstellten externen Inhaltstyp.

Weitere Informationen zum Erstellen externer Inhaltstypen in SharePoint Designer mit SharePoint Online finden Sie in den folgenden Ressourcen:

Im folgenden Beispiel wird dargestellt, wie ein BDC-Modell zum Herstellen einer Verbindung mit einem WCF-Dienst definiert wird.

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Model Name="ExampleApplicationDefinition" 
 xmlns="https://schemas.microsoft.com/windows/2007/BusinessDataCatalog">
  <LobSystems>
    <LobSystem Name="ExampleCRM" Type="Wcf">
      <Properties>
        <Property Name="WcfMexDiscoMode" Type="System.String">Disco</Property>
        <Property Name="WcfMexDocumentUrl" Type="System.String">http://example.org/?wsdl</Property>
        <Property Name="WcfProxyNamespace" Type="System.String">ExampleCrmNamespace</Property>
        <Property Name="WsdlFetchAuthenticationMode" Type="System.String">PassThrough</Property>
      </Properties>
      <LobSystemInstances>
        <LobSystemInstance Name="ExampleServer">
          <Properties>
            <Property Name="WcfAuthenticationMode" Type="System.String">PassThrough</Property>
            <Property Name="WcfEndpointAddress" Type="System.String">http://example.org</Property>
          </Properties>
        </LobSystemInstance>
      </LobSystemInstances>
      <Entities>
        <Entity Name="Customer" Namespace="example.com" Version="1.0.0.0">
          <Identifiers>
            <Identifier Name="CustomerIdentifier" TypeName="System.Int32" />
          </Identifiers>
          <Methods>
            <Method Name="GetCustomers">
              <Parameters>
                <Parameter Name="CustomerId" Direction="In">
                  <TypeDescriptor Name="Id" TypeName="System.Int32" 
                   IdentifierName="CustomerIdentifier" />
                </Parameter>
                <Parameter Name="Customers" Direction="Return">
                  <TypeDescriptor Name="CustomerArray" 
                   TypeName="ExampleCrmNamespace.Customer[], ExampleCRM" IsCollection="true">
                    <TypeDescriptors>
                      <TypeDescriptor Name="Customer" 
                       TypeName="ExampleCrmNamespace.Customer, ExampleCRM">
                        <TypeDescriptors>
                          <TypeDescriptor Name="Id" 
                           TypeName="System.Int32" IdentifierName="CustomerIdentifier" />
                          <TypeDescriptor Name="FirstName" TypeName="System.String" />
                          <TypeDescriptor Name="LastName" TypeName="System.String" />
                        </TypeDescriptors>
                      </TypeDescriptor>
                    </TypeDescriptors>
                  </TypeDescriptor>
                </Parameter>
              </Parameters>
              <MethodInstances>
                <MethodInstance Name="GetCustomer" Type="SpecificFinder" 
                 ReturnParameterName="Customers" 
                 ReturnTypeDescriptorPath="CustomerArray[0]" />
              </MethodInstances>
            </Method>
          </Methods>
        </Entity>
      </Entities>
    </LobSystem>
  </LobSystems>
</Model>

Weitere Informationen zum Erstellen von BDC-Modellen finden Sie in den folgenden Ressourcen:

HinweisHinweis

Auch wenn hier gezeigt wird, wie eine Verbindung mit mehreren Typen externer Systeme hergestellt wird, lässt SharePoint Online derzeit nur WCF-Verbindungen zu.

Verwenden des Clientobjektmodells für die Arbeit mit BCS

Wenn Sie programmgesteuert mit externen Daten in SharePoint Online arbeiten möchten, müssen Sie das Clientobjektmodell verwenden. Da die Clientobjektmodell-APIs remote ausgeführt werden, unterliegen sie nicht den Beschränkungen für Sandkastenlösungen und serverseitige Lösungen.

Die Verwendung des Clientobjektmodells für BCS gleicht der Verwendung systemeigener SharePoint-Daten. Im folgenden Codebeispiel wird gezeigt, wie die Elemente in einer bestimmten Liste abgerufen werden.

using System;
using Microsoft.SharePoint.Client;

class Program
{
    static void Main()
    {
        ClientContext clientContext = new ClientContext("http://intranet.contoso.com");
        List list = clientContext.Web.Lists.GetByTitle("Customer Info");
        CamlQuery camlQuery = new CamlQuery();
        camlQuery.ViewXml = "<View/>";
        ListItemCollection listItems = list.GetItems(camlQuery);
        clientContext.Load(list);clientContext.Load(listItems);
        clientContext.ExecuteQuery();
        foreach (ListItem listItem in listItems)
            Console.WriteLine("Id: {0} Title: {1}", listItem.Id, oListItem["Title"]);
    }
}

Das Aktualisieren von Clientobjekten mit dem Clientobjektmodell ist einfach. Sie rufen die Objekte ab, ändern deren Eigenschaften und rufen für jedes zu ändernde Objekt die Update-Methode auf. Anschließen rufen Sie die ExecuteQuery-Methode auf. Im folgenden Beispiel werden Elemente in der Liste "Client API Test List" abgerufen, wobei die Schätzung für alle Entwicklungselemente um 50 Prozent erhöht wird (ein häufiger Vorgang).

using System;
using Microsoft.SharePoint.Client;

class Program
{
    static void Main(string[] args)
    {
        ClientContext clientContext = new ClientContext("http://intranet.contoso.com");
        List list = clientContext.Web.Lists.GetByTitle("Client API Test List");
        CamlQuery camlQuery = new CamlQuery();
        camlQuery.ViewXml =
            @"<View>
                <Query>
                  <Where>
                    <Eq>
                      <FieldRef Name='Category'/>
                      <Value Type='Text'>Development</Value>
                    </Eq>
                  </Where>
                </Query>
                <RowLimit>100</RowLimit>
              </View>";
        ListItemCollection listItems = list.GetItems(camlQuery);
        clientContext.Load(
             listItems,
             items => items.Include(
                 item => item["Category"],
                 item => item["Estimate"]));
        clientContext.ExecuteQuery();
        foreach (ListItem listItem in listItems)
        {
            listItem["Estimate"] = (double)listItem["Estimate"] * 1.5;
            listItem.Update();
        }
        clientContext.ExecuteQuery();
    }
}

Das Löschen von Clientobjekten ist genauso einfach. Es gibt jedoch eine sehr wichtige Dynamik beim Löschen von Clientobjekten aus einer Clientobjektauflistung. Sie können die Auflistung nicht durchlaufen und dabei Objekte löschen. Sobald Sie das erste Objekt löschen, ist der Iterator der Clientobjektauflistung nicht mehr funktionsfähig. Der Iterator löst möglicherweise eine Ausnahme aus oder wird einfach beendet, ohne alle Elemente in der Auflistung durchlaufen zu haben. Sie müssen die Auflistung stattdessen mit der ToList-Methode in einer Liste (List<T>) materialisieren und dann beim Durchlaufen dieser Liste die Clientobjekte löschen.

Im folgenden Beispiel werden die Testelemente aus "Client API Test List" gelöscht. Es zeigt das Materialisieren der Auflistung mit der ToList-Methode, bevor die Liste durchlaufen wird.

using System;
using System.Linq;
using System.Collections.Generic;
using Microsoft.SharePoint.Client;

class Program
{
    static void Main(string[] args)
    {
        ClientContext clientContext = new ClientContext("http://intranet.contoso.com");
        List list = clientContext.Web.Lists.GetByTitle("Client API Test List");
        CamlQuery camlQuery = new CamlQuery();
        camlQuery.ViewXml =
            @"<View>
                <Query>
                  <Where>
                    <Eq>
                      <FieldRef Name='Category'/>
                      <Value Type='Text'>Test</Value>
                    </Eq>
                  </Where>
                </Query>
                <RowLimit>100</RowLimit>
              </View>";
        ListItemCollection listItems = list.GetItems(camlQuery);
        clientContext.Load(
             listItems,
             items => items.Include(
                 item => item["Title"]));
        clientContext.ExecuteQuery();
        foreach (ListItem listItem in listItems.ToList())
            listItem.DeleteObject();
        clientContext.ExecuteQuery();
    }
}

Weitere Informationen zur Verwendung des Clientobjektmodells finden Sie in den folgenden Ressourcen:

Schlussbemerkung

BCS ist ein leistungsstarkes Tool zum Aggregieren und Verwenden von Daten aus Systemen, die sich außerhalb von SharePoint befinden. Ab dem Service Update vom November 2011 erhalten Entwickler die Möglichkeit, BCS in ihren SharePoint Online-Anwendungen zu verwenden.

Weitere Ressourcen

Weitere Informationen finden Sie in den folgenden Ressourcen: