Freigeben über


Exemplarische Vorgehensweise: Erstellen eines Silverlight-Webparts, das OData für SharePoint anzeigt

SharePoint 2010 macht seine Listendaten mithilfe von OData verfügbar. In SharePoint wird der OData-Dienst über den RESTful-Dienst „ListData.svc“ implementiert. In dieser exemplarischen Vorgehensweise wird gezeigt, wie Sie ein SharePoint-Webpart erstellen, das eine Silverlight-Anwendung hostet. Die Silverlight-Anwendung zeigt Informationen aus SharePoint-Ankündigungslisten mithilfe von „ListData.svc“ an. Weitere Informationen finden Sie unter SharePoint Foundation REST Interface und Open Data Protocol.

Hinweis

Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Personalisieren der IDE.

Voraussetzungen

Zum Abschließen dieser exemplarischen Vorgehensweise benötigen Sie Folgendes:

  • Unterstützte Editionen von Microsoft Windows und SharePoint.

  • Visual Studio 2012.

Erstellen einer Silverlight-Anwendung und eines Silverlight-Webparts

Erstellen Sie zunächst eine Silverlight-Anwendung in Visual Studio. Die Silverlight-Anwendung ruft mithilfe des „ListData.svc“-Diensts Daten aus der SharePoint-Ankündigungsliste ab.

Hinweis

Keine der Versionen von Silverlight, die niedriger als 4.0 ist, unterstützt die erforderlichen Schnittstellen zum Verweisen auf SharePoint-Listendaten.

So erstellen Sie eine Silverlight-Anwendung und ein Silverlight-Webpart

  1. Wählen Sie in der Menüleiste Datei>Neu>Projekt aus, um das Dialogfeld Neues Projekt anzuzeigen.

  2. Erweitern Sie unter Visual C# oder Visual Basic den Knoten SharePoint, und wählen Sie dann den Knoten 2010 aus.

  3. Wählen Sie im Bereich „Vorlagen“ die Vorlage SharePoint 2010Silverlight-Webpart aus.

  4. Geben Sie in das Feld Name den Eintrag SLWebPartTest ein, und wählen Sie dann die Schaltfläche OK aus.

    Das Dialogfeld Assistent zum Anpassen von SharePoint wird angezeigt.

  5. Geben Sie auf der Seite Website und Sicherheitsebene für Debugging angeben die URL für die SharePoint-Serversite ein, auf der Sie die Sitedefinition debuggen möchten, oder verwenden Sie den Standardspeicherort (http://Systemname/).

  6. Wählen Sie im Abschnitt Wie lautet die Vertrauensebene für diese SharePoint-Lösung? die Optionsschaltfläche Als Farmlösung bereitstellen aus.

    Obwohl in diesem Beispiel eine Farmlösung verwendet wird, können Silverlight-Webpartprojekte entweder als Farm- oder als Sandboxlösungen bereitgestellt werden. Weitere Informationen zu Sandboxlösungen und Farmlösungen finden Sie unter Überlegungen zu Sandboxlösungen.

  7. Wählen Sie im Abschnitt Wie möchten Sie das Silverlight-Webpart zuordnen der Seite Silverlight-Konfigurationsinformationen angeben die Optionsschaltfläche Neues Silverlight-Projekt erstellen und dem Webpart zuordnen aus.

  8. Ändern Sie den Namen in SLApplication, legen Sie Sprache entweder auf Visual Basic oder auf Visual C# fest, und legen Sie dann Silverlight-Version auf Silverlight 4.0 fest.

  9. Klicken Sie auf die Schaltfläche Fertig stellen. Die Projekte werden im Projektmappen-Explorer angezeigt.

    Die Projektmappe enthält zwei Projekte: eine Silverlight-Anwendung und ein Silverlight-Webpart. Die Silverlight-Anwendung ruft die Listendaten aus SharePoint ab und zeigt sie an, und das Silverlight-Webpart hostet die Silverlight-Anwendung, sodass Sie sie in SharePoint anzeigen können.

Anpassen der Silverlight-Anwendung

Fügen Sie der Silverlight-Anwendung Code und Entwurfselemente hinzu.

So passen Sie die Silverlight-Anwendung an

  1. Fügen Sie einen Assemblyverweis auf „System.Windows.Data“ in der Silverlight-Anwendung hinzu. Weitere Informationen finden Sie unter Gewusst wie: Hinzufügen oder Entfernen von Verweisen mithilfe des Dialogfelds „Verweis hinzufügen“.

  2. Öffnen Sie im Projektmappen-Explorer das Kontextmenü für Verweise, und wählen Sie dann Dienstverweis hinzufügen aus.

    Hinweis

    Wenn Sie Visual Basic verwenden, müssen Sie oben im Projektmappen-Explorer das Symbol Alle Dateien anzeigen auswählen, um den Knoten Verweise anzuzeigen.

  3. Geben Sie in das Adressfeld des Dialogfelds Dienstverweis hinzufügen die URL Ihrer SharePoint-Website ein, z. B. http://MySPSite, und wählen Sie dann die Schaltfläche Los aus.

    Wenn Silverlight den SharePoint OData-Dienst „ListData.svc“ findet, ersetzt es die Adresse durch die vollständige Dienst-URL. In diesem Beispiel wird http://myserver zu http://myserver/_vti_bin/ListData.svc..

  4. Wählen Sie die Schaltfläche OK aus, um dem Projekt den Dienstverweis hinzuzufügen und den Standarddienstnamen „ServiceReference1“ zu verwenden.

  5. Wählen Sie auf der Menüleiste Erstellen>Projektmappe erstellen aus.

  6. Fügen Sie dem Projekt auf Grundlage des SharePoint-Diensts eine neue Datenquelle hinzu. Wählen Sie hierzu in der Menüleiste Ansicht>Weitere Fenster>Datenquellen aus.

    Im Fenster Datenquellen werden alle verfügbaren SharePoint-Listendaten angezeigt, z. B. Aufgaben, Ankündigungen und Kalender.

  7. Fügen Sie der Silverlight-Anwendung die Daten der Ankündigungsliste hinzu. Sie können „Ankündigungen“ aus dem Fenster Datenquellen in den Silverlight-Designer ziehen.

    Dadurch wird ein Rastersteuerelement erstellt, das an die Ankündigungsliste der SharePoint-Website gebunden ist.

  8. Ändern Sie die Größe des Rastersteuerelements so, dass es zur Silverlight-Seite passt.

  9. Fügen Sie in der Codedatei „MainPage.xaml“ (MainPage.xaml.cs für Visual C# oder MainPage.xaml.vb für Visual Basic) die folgenden Namespaceverweise hinzu.

    // Add the following three using directives.
    using SLApplication.ServiceReference1;
    using System.Windows.Data;
    using System.Data.Services.Client;
    
  10. Fügen Sie am Anfang der Klasse die folgenden Variablendeklarationen hinzu.

    private TeamSiteDataContext context;
    private CollectionViewSource myCollectionViewSource;
    DataServiceCollection<AnnouncementsItem> announcements = new DataServiceCollection<AnnouncementsItem>();
    
  11. Ersetzen Sie die UserControl_Loaded-Prozedur durch Folgendes.

    private void UserControl_Loaded_1(object sender, RoutedEventArgs e)
    {
        // The URL for the OData service.
        // Replace <server name> in the next line with the name of your
        // SharePoint server.
        context = new TeamSiteDataContext(new Uri("http://ServerName>/_vti_bin/ListData.svc"));
    
        // Do not load your data at design time.
        if (!System.ComponentModel.DesignerProperties.GetIsInDesignMode(this))
        {
            //Load your data here and assign the results to the CollectionViewSource.
            myCollectionViewSource = (System.Windows.Data.CollectionViewSource)this.Resources["announcementsViewSource"];
            announcements.LoadCompleted += new EventHandler<LoadCompletedEventArgs>(announcements_LoadCompleted);
            announcements.LoadAsync(context.Announcements);
        }
    }
    

    Ersetzen Sie unbedingt den Platzhalter ServerName durch den Namen Ihres Servers, auf dem SharePoint ausgeführt wird.

  12. Fügen Sie die folgende Fehlerbehandlungsprozedur hinzu.

    void announcements_LoadCompleted(object sender, LoadCompletedEventArgs e)
    {
        // Handle any errors.
        if (e.Error == null)
        {
            myCollectionViewSource.Source = announcements;
        }
        else
        {
            MessageBox.Show(string.Format("ERROR: {0}", e.Error.Message));
        }
    }
    

Ändern des Silverlight-Webparts

Ändern Sie eine Eigenschaft im Silverlight-Webpartprojekt, um Silverlight-Debugging zu aktivieren.

So ändern Sie das Silverlight-Webpart

  1. Öffnen Sie das Kontextmenü für das Silverlight-Webpartprojekt (SLWebPartTest), und wählen Sie dann Eigenschaften aus.

  2. Wählen Sie im Fenster Eigenschaften die Registerkarte SharePoint aus.

  3. Wenn es noch nicht aktiviert ist, aktivieren Sie das Kontrollkästchen Silverlight-Debugging aktivieren (anstelle von Skriptdebuggen).

  4. Speichern Sie das Projekt.

Testen des Silverlight-Webparts

Testen Sie das neue Silverlight-Webpart in SharePoint, um sicherzustellen, dass es die SharePoint-Listendaten ordnungsgemäß anzeigt.

So testen Sie das Silverlight-Webpart

  1. Drücken Sie die F5-TASTE, um die SharePoint-Lösung zu erstellen und auszuführen.

  2. Wählen Sie in SharePoint im Menü Websiteaktionen die Option Neue Seite aus.

  3. Geben Sie im Dialogfeld Neue Seite einen Titel ein, z. B. SL-Webparttest, und wählen Sie dann die Schaltfläche Erstellen aus.

  4. Wählen Sie im Seiten-Designer auf der Registerkarte Bearbeitungstools die Option Einfügen aus.

  5. Wählen Sie auf dem Registerkartenstreifen Webpart aus.

  6. Wählen Sie im Feld Kategorien den Ordner Benutzerdefiniert aus.

  7. Wählen Sie in der Liste Webparts das Silverlight-Webpart aus, und wählen Sie dann die Schaltfläche Hinzufügen aus, um das Webpart dem Designer hinzuzufügen.

  8. Nachdem Sie der Webseite alle gewünschten Elemente hinzugefügt haben, wählen Sie die Registerkarte Seite aus, und wählen Sie dann auf der Symbolleiste die Schaltfläche Speichern und schließen aus.

    Das Silverlight-Webpart sollte jetzt Ankündigungsdaten von der SharePoint-Website anzeigen. Standardmäßig wird die Seite in der Liste der Websiteseiten in SharePoint gespeichert.

    Hinweis

    Beim domänenübergreifenden Zugriff auf Daten in Silverlight schützt Silverlight vor Sicherheitsrisiken, die zum Ausnutzen von Webanwendungen verwendet werden können. Wenn beim Zugriff auf Remotedaten in Silverlight Probleme auftreten, lesen Sie Verfügbarmachen eines Diensts über Domänengrenzen hinweg.