チュートリアル: SharePoint の OData を表示する Silverlight Web パーツの作成

SharePoint 2010ではODataしてリスト データを公開します。SharePointで、ODataサービスはRESTful ListData.svcサービスによって実装されます。このチュートリアルでは、SilverlightアプリケーションをホストするSharePoint Webパーツを作成する方法を示します。ListData.svcを使用してSilverlightアプリケーションでは、SharePointのお知らせリストの情報。詳細については、SharePointの残りの基本インターフェイスOpen Data Protocol" "を参照してください。

このチュートリアルでは、次のタスクを実行します。

  • SilverlightでSilverlightアプリケーションとWebパーツの作成.

  • Silverlightアプリケーションのカスタマイズ.

  • Silverlightアプリケーションのカスタマイズ.

  • Silverlightアプリケーションのカスタマイズ.

  • Silverlight Webパーツのテスト.

[!メモ]

お使いのマシンで、Visual Studio ユーザー インターフェイスの一部の要素の名前や場所が、次の手順とは異なる場合があります。これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。詳細については、「Visual Studio の設定」を参照してください。

必須コンポーネント

このチュートリアルを実行するには、次のコンポーネントが必要です。

SilverlightでSilverlightアプリケーションとWebパーツの作成

最初に、Visual StudioでSilverlightアプリケーションを作成します。Silverlightアプリケーションは、SharePointのお知らせリストListData.svcサービスを使用してデータの一覧を取得します。

[!メモ]

4.0がSharePointリスト データを参照するために必要なインターフェイスをサポートする前に、Silverlightバージョンはありません。

SilverlightアプリケーションおよびSilverlightネットワークを作成するには、パート

  1. メニュー バーで、[新しいプロジェクト] のダイアログ ボックスを表示するに [ファイル][新規作成][プロジェクト] を選択します。

  2. [SharePoint] のノードを [Visual C#][Visual Basic]の下に配置し、[2010] のノードを選択します。

  3. テンプレート ペインで、[SharePoint 2010 Silverlight Web パーツ] テンプレートを選択します。

  4. [名前] ボックスに、SLWebPartTestを入力し、を [OK] のボタンをクリックします。

    [SharePoint カスタマイズ ウィザード] のダイアログ ボックスが表示されます。

  5. [デバッグのサイトとセキュリティ レベルの指定] ページで、サイト定義をデバッグする SharePoint サーバー サイトの URL を入力するか、既定の場所 (http://<システム名>/) を使用します。

  6. [この SharePoint ソリューションの信頼レベル] のセクションでは、[ファーム ソリューションとして配置する] のオプション ボタンを選択します。

    この例では、ファーム ソリューションを使用しますが、Silverlight Webパーツのプロジェクトは、そのファームまたはサンドボックス ソリューション配置できます。サンドボックス ソリューションまたはファーム ソリューションに関する詳細については、サンドボックス ソリューションの考慮事項を参照してください。

  7. [Silverlight 構成情報の指定] のページの [How do you want to associate the Silverlight Web Part] のセクションでは、[新しい Silverlight プロジェクトを作成して Web パーツと関連付ける] のオプション ボタンを選択します。

  8. [名前] をSLApplicationに変更します。[Visual Basic]、または **[Visual C#][言語] を置き、[Silverlight 4.0]**に [Silverlight のバージョン] を設定します。

  9. [完了] のボタンをクリックします。プロジェクトは **[ソリューション エクスプローラー]**に表示されます。

    ソリューションは、2種類のプロジェクトが含まれています: SilverlightアプリケーションおよびSilverlight Webパーツは。Silverlightアプリケーションは、SharePointリストからデータを取得して表示し、Silverlight Webパーツは、Silverlightアプリケーションをホストする、SharePointで表示できるようにします。

Silverlightアプリケーションのカスタマイズ

Silverlightアプリケーション コードとデザインに要素を追加します。

Silverlightアプリケーションをカスタマイズするには

  1. SilverlightアプリケーションでSystem.Windows.Dataのアセンブリへの参照を追加します。詳細については、「方法: [参照の追加] ダイアログ ボックスを使用して参照を追加または削除する」を参照してください。

  2. **[ソリューション エクスプローラー]では、[参照]のショートカット メニューを開き、[サービス参照の追加]**を選択します。

    [!メモ]

    Visual Basicを使用している場合、[ソリューション エクスプローラー] の上部に [参照] のノードを表示するに [すべてのファイルを表示] のアイコンを選択する必要があります。

  3. [サービス参照の追加] Address ダイアログ ボックスのボックスに、SharePointサイトのURLに、http://MySPSiteなど) を入力し、を [移動] のボタンをクリックします。

    SilverlightでのSharePoint ListData.svc ODataサービスを検索する場合、完全サービスURLとaddressを置き換えます。この例では、http://myserverはhttp://myserver/_vti_bin/ListData.svcになります。

  4. プロジェクトにサービス参照を追加するに [OK] のボタンを選択し、既定のサービス名、ServiceReference1を使用します。

  5. メニュー バーで、[ビルド]、**[ソリューションのビルド]**を選択します。

  6. SharePointに基づくプロジェクトに新しいデータ ソースを追加します。これを、メニュー バーにするには、[表示][その他のウィンドウ]、**[データ ソース]**を選択します。

    [データ ソース] のタスク ウィンドウは、お知らせと暦など、使用できるSharePointリストのすべてのデータを示します。

  7. Silverlightアプリケーションにお知らせリスト データを追加します。Silverlightデザイナーに [データ ソース] のウィンドウで「お知らせ」をドラッグできます。

    これは、SharePointサイトのお知らせリストにグリッド コントロールの境界を作成します。

  8. Silverlightページに合わせてグリッド コントロールのサイズを変更します。

  9. MainPage.xamlではファイル (Visual C#のMainPage.xaml.csまたはVisual BasicのMainPage.xaml.vbを追加します)、次の名前空間参照を参照してください。

    ' Add the following three Imports statements.
    Imports SLApplication.ServiceReference1
    Imports System.Windows.Data
    Imports System.Data.Services.Client
    
    // Add the following three using statements.
    using SLApplication.ServiceReference1;
    using System.Windows.Data;
    using System.Data.Services.Client;
    
  10. クラスの先頭に次の変数宣言を追加します。

    Private context As TeamSiteDataContext
    Private myCollectionViewSource As CollectionViewSource
    Private announcements As New DataServiceCollection(Of AnnouncementsItem)()
    
    private TeamSiteDataContext context;
    private CollectionViewSource myCollectionViewSource;
    DataServiceCollection<AnnouncementsItem> announcements = new DataServiceCollection<AnnouncementsItem>();
    
  11. 次の手順で UserControl_Loaded を置き換えます。

    Private Sub UserControl_Loaded_1(sender As Object, e As RoutedEventArgs)
        ' 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://<server name>/_vti_bin/ListData.svc"))
    
        ' Do not load your data at design time.
        If Not System.ComponentModel.DesignerProperties.GetIsInDesignMode(Me) Then
            'Load your data here and assign the results to the CollectionViewSource.
            myCollectionViewSource =   DirectCast(Me.Resources("announcementsViewSource"), System.Windows.Data.CollectionViewSource)
            announcements.LoadCompleted += New EventHandler(Of LoadCompletedEventArgs)(AddressOf announcements_LoadCompleted)
            announcements.LoadAsync(context.Announcements)
        End If
    End Sub
    
    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("https://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);
        }
    }
    

    実行中のSharePointサーバーの名前と [ServerName] のプレースホルダーを置き換えることを確認します。

  12. 次のERROR処理するプロシージャを追加します。

    Private Sub announcements_LoadCompleted(sender As Object, e As LoadCompletedEventArgs)
        ' Handle any errors.
        If e.[Error] Is Nothing Then
            myCollectionViewSource.Source = announcements
        Else
            MessageBox.Show(String.Format("ERROR: {0}", e.[Error].Message))
        End If
    End Sub
    
    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));
        }
    }
    

Silverlight Webパーツの変更

Silverlightデバッグを有効にするSilverlight Webパーツ プロジェクトのプロパティを変更します。

Silverlight Webパーツを変更するには

  1. Silverlight Webパーツ プロジェクト ([SLWebPartTest]) のショートカット メニューを開き、**[プロパティ]**を選択します。

  2. [プロパティ] のペインで、[SharePoint] のタブをクリックします。

  3. これが選択されていない場合は、[Script デバッグの代わりに Silverlight デバッグを有効にする] のチェック ボックスをオンにします。

  4. プロジェクトを保存します。

Silverlight Webパーツのテスト

SharePointリスト データが正しく表示されることを確認するために新しいSharePoint Silverlight Webパーツをテストします。

Silverlight Webパーツをテストするには

  1. SharePointソリューションをビルドおよび実行するには、F5キーを選択します。

  2. SharePointで、[サイト アクション] で、メニューの **[新しいページ]**を選択します。

  3. ダイアログ [新しいページ] にタイトルをSL、Webパーツのテストなどの入力し、を [作成] のボタンをクリックします。

  4. ページ デザイナーでは、[編集ツール] のタブで、**[挿入]**を選択します。

  5. タブので、を **[Web パーツ]**を選択します。

  6. [カテゴリー] ボックスに、[カスタム] フォルダーを選択します。

  7. [Web パーツ] の一覧で、Silverlight Webパーツを選択し、デザイナーにWebパーツを追加するに [追加] のボタンをクリックします。

  8. 目的のWebページに追加するすべてを実行すると、[ページ] のタブを選択し、ツール バーの [近い&を保存します。] のボタンをクリックします。

    Silverlight Webパーツは、SharePointサイトのお知らせのデータを表示する必要があります。既定では、ページは、SharePointでサイトのPageに示された格納されます。

    [!メモ]

    ドメイン間でSilverlightのデータにアクセスする場合、SilverlightのWebアプリケーションを開発するために使用できるセキュリティ上の脆弱性に対してされます。Silverlightのリモート データにアクセスするときに問題が発生した場合は、サービスにドメインの境界を越えて使用できるようにします" "を参照してください。

参照

概念

SharePoint ソリューションのパッケージの配置、発行、アップグレード

その他の技術情報

SharePoint の Web パーツの作成