印刷用ページ       送信     
クリックして評価とフィードバックをお寄せください
 RIA:Silverlight 2 Web パーツで SharePoi...
Related Articles

Internet Explorer 8 には、Web Slice、アクセラレータ、検索候補、AJAX ナビゲーション、DOM ストレージなど優れた新機能があります。

Daron Yöndem

MSDN Magazine March 2009

...

Read more!

今月は、マイクロソフトの翻訳 Web サービス、および Web アプリケーションに翻訳サービスを組み込む方法を解説します。

Sandor Maurice および Vikram Dendi

MSDN Magazine April 2009

...

Read more!

Silverlight の分離ストレージを最大限に活用してアプリケーションの安全を保つ方法を説明します。

Justin Van Patten

MSDN Magazine March 2009

...

Read more!

今月は、AJAX アプリケーションでフォームを使用するケースについて説明し、自動保存、JIT 検証、送信回数の削減などの機能を実装するさまざまな方法を紹介します。

Dino Esposito

MSDN Magazine June 2009

...

Read more!

先月から始めたコール センター クライアント アプリケーションの話題を締めくくります。ここで説明する手法は、Silverlight を使用した現実世界のエンタープライズ ソリューションの構築に役立ちます。

Hanu Kommalapati

MSDN Magazine February 2009

...

Read more!

Popular Articles

This article introduces 10 development tools that can increase your productivity, give you a better understanding of .NET, and maybe even change the way that you develop applications. The tools covered include NUnit to write unit tests, Reflector to examine assemblies, FxCop to police your code, Regulator to build regular expressions, NDoc to create code documentation and five more.

James Avery

MSDN Magazine July 2004

...

Read more!

Chris Tavares は、ASP.NET MVC Framework の Model View Controller パターンが、柔軟性に富み簡単にテストできる Web アプリケーションの作成にどのように役立つかを説明しています。

Chris Tavares

MSDN Magazine March 2008

...

Read more!

Writing a Web application with ASP.NET is unbelievably easy. So many developers don't take the time to structure their applications for great performance. In this article, the author presents 10 tips for writing high-performance Web apps. The discussion is not limited to ASP.NET applications because they are just one subset of Web applications.

Rob Howard

MSDN Magazine January 2005

...

Read more!

C# allows developers to embed XML comments into their source files-a useful facility, especially when more than one programmer is working on the same code. The C# parser can expand these XML tags to provide additional information and export them to an external document for further processing. This article shows how to use XML comments and explains the relevant tags. The author demonstrates how to set up your project to export your XML comments into convenient documentation for the benefit of other developers. He also shows how to use comments ...

Read more!

James Avery does it again with his popular list of developer tools. This time he covers the best Visual Studio add-ins available today that you can download for free.

James Avery

MSDN Magazine December 2005

...

Read more!

RIA
Silverlight 2 Web パーツで SharePoint に磨きをかける
Steve Fox および Paul Stubbs

この記事は、Silverlight 2 のプレリリース バージョンに基づいています。ここに記載されているすべての情報は、変更される場合があります。

この記事では、次の内容について説明します。
  • Silverlight メディア プレーヤーを作成する
  • Web パーツを作成する
  • SharePoint サイトに配置する
  • アプリケーションをトラブルシューティングする
この記事では、次のテクノロジを使用しています。
Silverlight 2、SharePoint
Web ベース アプリケーション開発の世界では、ユーザーは絶えず向上するアプリケーション エクスペリエンスを要求しています。さらに、これらの Web ベース アプリケーションの需要は、単一のブラウザ テクノロジやプラットフォームのサポートにとどまりません。現在 Web アプリケーションを構築している場合は、より魅力的なユーザー エクスペリエンスを提供する方法だけでなく、開発者がこのエクスペリエンスを複数のテクノロジと対象ユーザーに迅速に提供できる方法をサポートするテクノロジが必要です。
Silverlight 2 は、堅牢な Web アプリケーション開発の機会をもたらすテクノロジの一例です。Silverlight は、Web ベースのユーザー エクスペリエンスを構築するために開発者がリッチ プログラミング モデルにアクセスできるようにするクロスブラウザ、クロスプラットフォーム対応のプラグインです。
SharePoint も、Web ベースのアプリケーション開発に使用されることの多いテクノロジです。イントラネット開発のために SharePoint に投資した企業は、外部向けの Web サイトにこのテクノロジを拡張することを望んでいます。Silverlight と SharePoint が連携して、洗練されたユーザー インターフェイス デザインと操作性を備えたイントラネットおよびエクストラネット アプリケーションを構築するための、単純だが強力なインフラストラクチャを提供します。
この記事では、Silverlight アプリケーションを SharePoint Web パーツ内に統合することで SharePoint と Silverlight を同時に使用できる主要な方法の 1 つについて説明します。まず、Silverlight 2 Beta 2 を使用してかなり単純なメディア アプリケーションを構築する手順を説明します (図 1 を参照)。次に、SharePoint Web パーツを Silverlight アプリケーションのラッパーとして使用する方法を示します。分離され、ホストされたアプリケーションを作成できるだけでなく、ネイティブ SharePoint オブジェクト モデル (たとえばプロバイダ/コンシューマ モデル) を通じて Web パーツを相互接続することもできるため、これは興味深いアプローチです。
図 1 Silverlight WMV Player Web パーツ (クリックすると拡大画像が表示されます)

メディア プレーヤーを作成する
入稿時点ではベータ 2 である Silverlight 2 は、Silverlight 1.0 からかなり進化しています。たとえば、Silverlight 2 ではマネージ コードがサポートされるため、JavaScript に加えて、Visual Basic と C# をアプリケーションで使用できるようになりました。さらに、Silverlight 2 にはコントロールのセットが付属しており、Silverlight ベースのユーザー インターフェイスを作成するジョブをはるかに簡単にするコントロールの拡張を備えています。デザイナ エクスペリエンスは大幅に向上し、Visual Studio 2008 と Expression Blend 内の UI デザイナ ツールでサポートされます。
SharePoint 用の Silverlight アプリケーションを構築するために環境を準備するには、次のソフトウェアがインストールされていることを確認してください。
  • Windows Server 2003 または Windows Server 2008
  • Windows SharePoint Services 3.0 および SP1
  • Microsoft Office SharePoint Server 2007 および SP1
  • Visual Studio 2008 Professional Edition
  • Silverlight Tools Beta 2 for Visual Studio 2008
  • Silverlight 2 Beta 2 ランタイム
  • Windows SharePoint Services 3.0 ツール: Visual Studio Extensions、Version 1.2
環境を設定した後で、Visual Studio 2008 を起動し、新しいプロジェクトを作成します。C# または Visual Basic ノードに、2 つのプロジェクト テンプレートを含む Silverlight という新しいプロジェクト ノードがあります。一方のプロジェクト テンプレートは Silverlight アプリケーションを作成するためのもので、もう一方は Silverlight クラス ライブラリを作成するためのものです (図 2 を参照)。
図 2 Silverlight アプリケーションの [新しいプロジェクト] テンプレート (クリックすると拡大画像が表示されます)
サンプル アプリケーションでは、Silverlight アプリケーション テンプレートを選択し、名前を付けて (ここでは MediaPlayer)、その他の既定のオプションを受け入れました。これらの手順が完了し、[OK] をクリックすると、新しい Web をソリューションに追加するか、プロジェクトに Silverlight をホストするために HTML テスト ページを動的に生成するかを確認するプロンプトが表示されます。最初の選択肢 (ソリューションに新しい Web を追加) を選択し、再び既定のオプションを受け入れます。終了すると、ソリューションは、(単なる HTML ページとは対照的に) Silverlight プロジェクトとホスト Web アプリケーションの両方から構成されます。
この例では、MediaPlayer ソリューションに 2 つのプロジェクトがあります。最初のプロジェクトは、MediaPlayerWeb という Web サイトです。これは、Silverlight アプリケーションの開発とテストに使用する Web サイトです。2 つ目のプロジェクトは、MediaPlayer という Silverlight アプリケーションです。この記事では、MediaPlayer プロジェクトの Page.xaml ファイルと Page.xaml.cs ファイルに注目します。
Silverlight 2 では、UI は XAML という XML ベースの宣言型言語を使用して生成されます。これは、クライアント アプリケーションの Windows Presentation Foundation (WPF) UI の作成に使用されるのと同じ言語です。Page.xaml には UI を定義する XAML コードが含まれており、Page.xaml.cs にはアプリケーションの分離コードが含まれています。
Page.xaml.cs ファイルは 1 つしか使用できませんが、XAML ファイルは一元的な Page.xaml ファイルを通じて複数管理できます。1 つの Page.xaml で個別の Silverlight コントロールを管理する必要がある場合に、これを行うことができます。

アプリケーション UI をコーディングする
Visual Studio 2008 では、XAML ファイルを開くと、分割されたデザイン/XAML ビューが表示されます。また、Silverlight 2 Beta 2 では、ツールボックスからコントロールをドラッグし、XAML ビューにドロップできます (デザイナ画面へのコントロールのドラッグは、Visual Studio 2008 ではサポートされていませんが、Expression Blend のデザイナ画面にドラッグ アンド ドロップすることはできます)。
統合の基本的な側面を示すために、MediaPlayer に対して作成した UI は意図的に単純になっています。図 3 に、Silverlight アプリケーションの UI を表す XAML コードを示します。StackPanel 要素を使用して、UI 内の他のコントロールを格納および配置しています。一方は MediaElement をホストします。これは、短いムービーのタイムラインを表す WMV ファイルおよび Slider 要素を再生する要素です。もう一方は Button、ToggleButton、および CheckBox 要素をホストします。これらの要素は、再生、一時停止、停止、およびミュート機能を提供します。
<UserControl x:Class="MediaPlayer.Page"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Width="400" Height="500">

    <StackPanel Grid.Row="1" 
                Margin="20,10,20,10" 
                Background="White" 
                Visibility="Visible">

        <MediaElement x:Name="moviePlayer" 
                      Source="Bear.wmv"
                      Margin="5">                     
        </MediaElement>

        <Slider x:Name="timeline" 
                ValueChanged="timeline_ValueChanged"
                Maximum="1"  
                Margin="5" >
        </Slider>
        <StackPanel Orientation="Horizontal" 
                    HorizontalAlignment="Center">
            <Button x:Name="movieStop"
                    Content="Stop" 
                    Height="25"
                    Width="40"

                    Click="movieStop_Click"
                    Margin="5">
            </Button>
            <ToggleButton x:Name="moviePlay" 
                          Content="Play" 
                          Height="25"
                          Width="40"

                          Click="moviePlay_Click"
                          Margin="5">
            </ToggleButton>
            <CheckBox x:Name="movieMute"
                      Content="Sound On"
                      Click="movieMute_Click">
            </CheckBox>
        </StackPanel>
    </StackPanel>
</UserControl>
XAML ベースの UI で注意する必要のある重要なプロパティの 1 つは、x:Name プロパティです。これはコントロールに対して提供される名前を表し、コントロールを分離コードから操作するために使用できます。また、クリックされたときに分離コードで moviePlay_Click メソッドを呼び出すボタンの click=moviePlay_Click など、XAML のコントロールの一部に対応するイベントにも注目してください。
XAML コードでは、ムービー Bear.wmv を再生するように MediaElement コントロールを構成します。独自のムービーを ClientBin フォルダから読み込むことができますが、XAML の Source プロパティを変更して、プロジェクトに追加するファイルの名前を反映する必要があります。SharePoint サイトのムービーのリポジトリとしてのピクチャ ライブラリの使用など、WMV ファイルの場所への HTTP 参照を提供できることにも注意してください。
各イベント ハンドラ (Click="movieMute_Click" など) について Page.xaml ファイル内にイベント ハンドラを作成する場合は、「Click」と入力してから IntelliSense を使用してイベント ハンドラを追加すると、Visual Studio によって、イベント ハンドラのスタブ メソッドが Page.xaml.cs ファイルに自動的に追加されます。
分離コードに移る前に、同じコードの Expression Blend ビューを簡単に見てみましょう。すべてのコーディングを Visual Studio 2008 で行いましたが、Expression Blend を使用して、後で Visual Studio の Silverlight プロジェクトに統合できる UI を作成することもできます。Expression Blend でページを開いた後で (図 4 を参照)、アイテムを Silverlight アプリケーションに追加し、ファイルを保存してから、Visual Studio 2008 に再び切り替えることができます。これにより、Expression Blend からの変更を Visual Studio 2008 プロジェクトで再読み込みするかどうかを確認するプロンプトが表示されます (Expression で開くには、Page.xaml を右クリックし、[Expression Blend を開く] を選択します)。
図 4 Expression Blend のプロジェクト ビュー (クリックすると拡大画像が表示されます)

アプリケーション コード
Silverlight アプリケーションの分離コードを追加するには、ソリューション エクスプローラで Page.xaml ファイルを右クリックし、[コードの表示] をクリックします。Page.xaml ノードを展開し、Page.xaml.cs ファイルを右クリックしてから [コードの表示] を選択することもできます。このビューのコードは、前に作成した UI に対応します。ここで、Silverlight コントロールの特定のプロパティを設定します。図 5 に、Page.xaml.cs ファイルに追加したコードを示します。
namespace MediaPlayer {
    public partial class Page : UserControl {
        public Page() {
            InitializeComponent();
        }

        private void timeline_ValueChanged(
          object sender, RoutedPropertyChangedEventArgs<double> e) {
            long ticks = (long)((sender as Slider).Value * 
              this.moviePlayer.NaturalDuration.TimeSpan.Ticks);
            TimeSpan movieTimespan = new TimeSpan(ticks);
            this.moviePlayer.Position = movieTimespan;
            if (this.moviePlayer.CurrentState == MediaElementState.Playing) {
                this.moviePlay.IsChecked = true;
                this.moviePlay.Content = "Pause";
            }
        }

        private void movieStop_Click(object sender, RoutedEventArgs e) {
            this.timeline.Value = 0;
            this.moviePlayer.Stop();
            this.moviePlay.Content = "Play";
        }
        private void moviePlay_Click(object sender, RoutedEventArgs e) {
            if (moviePlay.IsChecked == true) {
                moviePlay.Content = "Pause";
                this.moviePlayer.Play();
            }
            else {
                moviePlay.Content = "Play";
                this.moviePlayer.Pause();
            }
        }

        private void movieMute_Click(object sender, RoutedEventArgs e) {
            if (movieMute.IsChecked == true) {
                movieMute.Content = "Sound On";
                this.moviePlayer.IsMuted = true;
            }
            else {
                movieMute.Content = "Sound Off";
                this.moviePlayer.IsMuted = false;
            }
        }
    }
}
分離コードにいくつかのメソッドがあることがわかります。そのすべてが、XAML コードでコントロールに追加したイベント ハンドラに対応します。たとえば、このコードでは、movieStop_Click メソッドはユーザーによる [停止] ボタンのクリックに応答して、タイムライン値を 0 に設定し (つまり、ムービーを開始位置に戻し)、[再生] ボタンのテキストを変更します (元の状態に応じて [Pause] から [Play] に変更します)。
この分離コードは、ユーザーによる Play/Pause トグル ボタンのクリックに応答して、Play および Pause メソッドを適宜呼び出し、トグル ボタンのテキストを設定します。ユーザーは、スライダ コントロールを操作することもできます。このコントロールは、特定のポイントまでムービーをジャンプさせます。これは早送り/巻き戻し機能と同等です。最後に、ユーザーは [ミュート] チェックボックスをクリックしてムービーをミュートできます。
現時点では、キーボードの F5 キーを押すか、Visual Studio プロジェクト メニューの [デバッグ]、[デバッグ開始] の順にクリックして、Silverlight アプリケーションをデバッグできます。これにより、既定のブラウザが起動し、Silverlight アプリケーションが読み込まれます。デバッグが有効になっていないことを示す警告が表示されることがあります。[OK] をクリックして、Visual Studio で web.config ファイルを変更し、デバッグを有効にします。すべて正常に動作している場合は、WMV ファイル (この場合は Bear.wmv) が読み込まれ、再生が開始します。[停止] または [一時停止] をクリックするか、スライダ コントロールを使用して、再生状態を変更できます。[ミュート] チェックボックスをオンにして、音声に影響を与えることもできます。
Silverlight アプリケーションは動作していますが、SharePoint との統合に進む前に、もう 1 つ手順を完了する必要があります。この手順では、構築した Silverlight アプリケーションを含むアーカイブである XAP ファイルが、SharePoint Web パーツで選択して読み込める場所にあることを確認します。
XAP ファイルには、Silverlight アプリケーションのすべてのコア アプリケーション ファイルが含まれます。XAP ファイルは基本的に構築済みプロジェクト ファイルのアーカイブであるため、.zip 拡張子を付けて XAP ファイルの名前を変更してから開き、XAP パッケージに含まれるファイルを確認できます。
MediaPlayer.xap ファイルを開くと、複数の異なるファイルが表示されます。それらは、プロジェクトの DLL と AppManifest.xaml ファイルです。アーカイブ内の DLL は、作成するコード (この例で作成した DLL は MediaPlayer.dll) と、コンパイルしたアセンブリの実行に必要な Microsoft DLL です。AppManifest.xaml ファイルが生成され、プロジェクトからの依存関係が一覧表示されます。 次に、この記事で説明した MediaPlayer 例の AppManifest.xaml ファイルのコンテンツを示します。これには、Silverlight アプリケーションの配置に固有のいくつかの主要な参照が含まれています。
<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
  EntryPointAssembly="MediaPlayer" 
  EntryPointType="MediaPlayer.App" 
  RuntimeVersion="2.0.30523.6">
  <Deployment.Parts>
    <AssemblyPart x:Name="MediaPlayer" Source="MediaPlayer.dll" />
    <AssemblyPart x:Name="System.Windows.Controls.Extended" 
      Source="System.Windows.Controls.Extended.dll" />
  </Deployment.Parts>
</Deployment>
これは、アセンブリの名前 (MediaPlayer)、アプリケーションのコンパイルに使用した Silverlight ランタイム バージョン (2.0.30523.6)、および XAP アーカイブにも含まれている必須アセンブリの一覧が表示されます。
XAP ファイルが SharePoint サイト内の場所にコピーされていることを確認します。MediaPlayer 例では、ClientBin というフォルダを SharePoint サイトのルート仮想ディレクトリに作成しました。XAP ファイルを SharePoint ドキュメント ライブラリまたは SharePoint サーバー上の _layouts フォルダにコピーすることもできます。ClientBin 内に、XAP というフォルダを作成しました。このフォルダには、すべての XAP ファイル (または、構築して SharePoint と統合する Silverlight アプリケーション) が含まれます。この場所は、SharePoint Web パーツ プロジェクトで Silverlight コントロールのインスタンスを作成する場合に参照する必要があります。また、Silverlight アプリケーションを更新および再コンパイルする場合は、最新の XAP ファイルを適切なディレクトリに忘れずにコピーしてください。
XAP ファイルをサーバー上の場所にコピーすると、Silverlight アプリケーションの SharePoint Web パーツ ホスト コンテナの作成に進む準備が整います。
Web パーツの名前を変更する
Web パーツ プロジェクトの既定の名前を受け入れた場合、プロジェクト シェルには WebPart1 という Web パーツが含まれます。これを保持することもできますが、おそらく Web パーツにはより説明的な名前を付ける必要があります。
この操作を行うには、既存の Web パーツ (WebPart1) を右クリックし、[削除] を選択します。次に、[WSP] タブをクリックし、WebPart1WebPart の下にあるものをすべて削除します (SharePoint に配置するときの Web パーツ パッケージのビューである WSP ビューが表示されない場合は、Visual Studio のメイン メニューで [表示]、[その他のウィンドウ]、[WSP View] (WSP ビュー) の順に選択します)。Web パーツの削除を確認した後、ソリューション エクスプローラでプロジェクトを右クリックし、[新しい項目の追加] を選択します。[新しい項目の追加] ダイアログで、SharePoint ノードを選択し、Web パーツを選択します。Web パーツに、よりわかりやすい名前を指定します。
新規 Web パーツをプロジェクトに追加する (クリックすると拡大画像が表示されます)

Web パーツを作成および配置する
Web パーツを作成するには、Visual Studio を開き、新しい SharePoint Web パーツ プロジェクト テンプレートを開きます (図 6 を参照)。この例では、新しい Web パーツ プロジェクトに MediaPlayerWebPart という名前を付けました。
図 6 Web パーツ プロジェクト テンプレート (クリックすると拡大画像が表示されます)
新しい Web パーツを追加した後で、コードを追加する前にプロジェクトに 2 つの参照を追加する必要があります。最初の参照は System.Web.Extensions DLL で、2 つ目の参照は System.Web.Silverlight DLL です。Web パーツにコードを追加するには、Web パーツ コード ファイル (たとえば MediaPlayerWebPart.cs) を右クリックし、[コードの表示] をクリックします。図 7 に、Web パーツ プロジェクトに追加したコードを示します。
説明が必要な重要項目が 2 つあります。まず、ScriptManager オブジェクトを使用して Silverlight アプリケーションをレンダリングしているという事実です。Silverlight アプリケーションは AJAX ScriptManager コントロールに対して依存関係を持つため、まず ScriptManager オブジェクトのインスタンスをプロジェクトに追加する必要があるというのがその理由です。
2 つ目は、Silverlight コントロールのインスタンス化です。図 7 のコードでは、myMediaCtrl は Silverlight コントロールのインスタンス (事実上、作成した Silverlight メディア プレーヤー) を表します。コントロールの新しいインスタンスを作成した後で、プロパティをいくつか設定する必要があります。これらのプロパティの中でも非常に重要なのは、XAP ファイルの場所を指し、Web パーツ内に読み込む Source プロパティです。
namespace MediaPlayerWebPart {
    [Guid("7e7ef885-130a-45e6-ab14-15f344b1939d")]
    public class MediaPlayerWebPart : 
      System.Web.UI.WebControls.WebParts.WebPart {
        public MediaPlayerWebPart() {
        }

        protected override void OnLoad(EventArgs e) {
            base.OnLoad(e);

            ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page);
            if (scriptManager == null) {
                scriptManager = new ScriptManager();
                this.Controls.Add(scriptManager);
            }
        }

        protected override void CreateChildControls() {
            System.Web.UI.SilverlightControls.Silverlight myMediaCtrl = 
              new System.Web.UI.SilverlightControls.Silverlight();
            myMediaCtrl.ID = "myMediaPlayer";
            myMediaCtrl.Source = "/ClientBin/XAP/MediaPlayer.xap";
            myMediaCtrl.Width = new System.Web.UI.WebControls.Unit(900);
            myMediaCtrl.Height = new System.Web.UI.WebControls.Unit(650);

            this.Controls.Add(myMediaCtrl);
        }
    }
}
コードを追加すると、2 つ目の手順を実行する準備ができます。その手順とは、配置する Web パーツ プロジェクトの構成です。この操作を行うには、プロジェクトの [プロパティ] ビューを開き、[デバッグ] タブをクリックします。[ブラウザを開始時に使用する URL] チェックボックスをオンにしてから、SharePoint サイトのルート URL を入力します (たとえば、http://spvm)。
Web パーツの配置をテストするには、[ビルド] をクリックしてから、[ソリューションの配置] をクリックします。これにより、WSP パッケージ (SharePoint アセンブリ配置で CAB と同等のもの) が自動的に作成されます。このパッケージには、Web パーツ アセンブリを SharePoint に配置し、ソリューション ファイルを SharePoint サイトの適切な場所に配置し、インターネット インフォメーション サービス (IIS) Web アプリケーションを停止して再起動するために必要なすべてのファイルが含まれます。
UAC をオンにした Windows Server 2008 に配置しようとしている場合は、Visual Studio を管理者として実行する必要があります。そうしないと、"オブジェクト参照がオブジェクトのインスタンスに設定されていません" というエラーが発生します。すべてが正しく構成されたら、SharePoint 内のサイトに Web パーツを追加できます。これは、SharePoint と Silverlight 間の統合の最後の手順です。

アプリケーションを SharePoint サイトに追加する
この時点で、Silverlight アプリケーションが作成され、Silverlight アプリケーションの Web パーツ コンテナが作成および配置されています。最後の手順は、Web パーツをホストできるサイトの作成です。ただし、この操作を行う前に、検証が必要な項目が 2 つあります。
まず、System.Web.Silverlight.dll がグローバル アセンブリ キャッシュ (GAC) にインストールされていることを検証します。インストールされていない場合は、\Program Files\Microsoft SDKs\Silverlight\v2.0\Libraries\Server というインストール場所からインストールします。
次に、SharePoint ルート ディレクトリ内の web.config ファイルに、Silverlight アプリケーションのサポートに必要な要素がすべて含まれ、Silverlight アプリケーションが安全なコントロールとしてマークされていることを確認します。web.config ファイル内の MediaPlayerWebPart の安全なコントロール エントリを次に示します (これは、プロジェクトをビルドして SharePoint サイトに配置したときに自動的に追加されます)。
<SafeControl Assembly="MediaPlayerWebPart, 
             Version=1.0.0.0, 
             Culture=neutral,    
             PublicKeyToken=9f4da00116c38ec5" 
             Namespace="MediaPlayerWebPart" 
             TypeName="MediaPlayerWebPart" 
             Safe="True" />
web.config ファイルについては詳細に説明しませんが、SharePoint サイトのルート ディレクトリの web.config ファイルで Silverlight アプリケーションがサポートされていることを確認する場合は、Silverlight プロジェクトの一部としてビルドされる web.config ファイルを調べて、これらすべての要素が、SharePoint サイトのルート フォルダにある web.config に存在することを確認するのが最も簡単な方法です。存在しない要素がある場合、Silverlight アプリケーションは SharePoint Web パーツに表示されません。
これで、Silverlight ベースの Web パーツをホストする SharePoint サイトを作成する準備ができました。この操作を行うには、SharePoint サイトに移動します。Media Player という Silverlight アプリケーション用の独立したテスト サイトを作成しました。サイトを作成するには、SharePoint サイトのホーム ページに移動し、[サイトの操作]、[サイトの設定] の順にクリックします。[サイトの管理] の [サイトとワークスペース] をクリックします。[サイトとワークスペース] ページで、[作成] をクリックします。サイトの名前、説明、および種類 (空のサイトを選択しました) とサイトの URL を指定し、[作成] をクリックします。
新しいサイトが作成されると、SharePoint によって自動的に読み込まれます。[サイトの操作]、[ページの編集] の順にクリックします。サイトで、[Web パーツの追加] をクリックします。これにより、Web パーツ ギャラリーが呼び出されます (図 8 を参照)。SharePoint に追加した Web パーツ プロジェクト (たとえば MediaPlayerWebPart) が見つかるまで下にスクロールし、チェックボックスをオンにして [追加] をクリックします。これにより、Web パーツをホスト コンテナとして使用して Silverlight メディア プレーヤー アプリケーションが SharePoint に追加されます。Silverlight アプリケーションは、Visual Studio 2008 内でドラッグしたときと同じように応答し、SharePoint 内で単純に Web パーツとして表示されます。Web パーツを SharePoint に追加した後、Silverlight アプリケーション内のさまざまなコントロールを試してすべて動作することを確認します。
図 8 Web パーツ ギャラリー (クリックすると拡大画像が表示されます)
Web パーツに関する参考資料

SharePoint と Silverlight の青写真

Silverlight ホーム ページ

SharePoint 開発リソース

トラブルシューティング
Web パーツを SharePoint に追加した後、Silverlight アプリケーション内のさまざまなコントロールを試してすべて動作することを確認してください。ご存知のように、開発ではある程度のトラブルシューティングを行う場合があるため、Silverlight アプリケーションを SharePoint と統合するときに注意すべき点をいくつか示します。
メディアを読み込むときにネットワーク エラーが発生した場合、たいていは配置したアセンブリがメディアを見つけられないことが原因です。メディア パスが相対的な場合は、XAP の場所からの相対であるため、Silverlight アプリケーションでメディアを正しく読み込めることを確認します。
Web パーツ ファイル内で XAP ソースの場所が正しいことを確認します。Silverlight アプリケーションなしで Web パーツが読み込まれているケースをいくつも見てきました。これは通常、Web パーツが XAP ファイルを見つけられないことが原因です。また、Silverlight アプリケーションを更新する場合は、XAP ファイルの最新バージョンを、Web パーツ プロジェクトで指定したソースの場所に再コピーしてください。
Web パーツが正常に追加されても、Silverlight がまだ表示されない場合は、ルート SharePoint ディレクトリにある web.config ファイルを再チェックし、Web パーツが安全なコントロールとして (前に説明しました) マークされているだけでなく、Silverlight アプリケーションをサポートするために必要なすべての要素があることを確認します。

Steve Fox は、マイクロソフトの開発者プラットフォーム エバンジェリズム (DPE) チームのテクニカル エバンジェリストです。Office および SharePoint 開発の宣伝と、開発作業でこれらを使用する企業との共同作業にほとんどの時間を費やしています。『Professional Microsoft SharePoint Development Using Silverlight 2』など、多数の共著書があります。blogs.msdn.com/steve_fox で彼のブログをご覧いただけます。

Paul Stubbs は、プラットフォーム アーキテクチャ チームのアーキテクトです。このチームで、彼はインフォメーション ワーカーの生産性、企業から顧客へのソリューション、および Web 2.0 ソーシャル ネットワーキングに重点を置いたソリューション アーキテクチャに専念しています。Microsoft Office を使用したソリューション開発に関する 2 冊の書籍、MSDN Magazine のいくつかの記事を記し、Microsoft Tech•Ed および Tech Ready 会議でも講演を行いました。blogs.msdn.com/pstubbs で彼のブログをご覧いただけます。

Page view tracker