SharePoint 2010 Silverlight をサンドボックス ソリューションとして展開

こんにちは、奥田です。2011年初めての投稿です。
みなさま、本年もよろしくお願いいたします。

今日はちょうど SharePoint 2010 の開発系のドキュメントを書いているところでしたので、2011 年 1 つ目の投稿は Office 365 にもからんでくるサンドボックス ソリューションネタをご紹介しようと思います。

SharePoint 2010 ではサンドボックス ソリューションが利用できることで、開発したソリューションをサーバーへの展開ではなく、サイトコレクション単位での展開ができますよね。
海外の本社など離れた拠点にサーバーがあり、各ブランチではサイト コレクションを割り当てられているといった運用は多いと思いますが、そのような場合にも各サイト コレクション管理者権限でカスタム ソリューションを展開可能になるため、2010 の数ある変更点や新機能の中でもインパクトが大きい内容です。
また先日 Office 365 が発表され、その中で提供される SharePoint Online も次期バージョンでは 2010 がベースとなってきます。(現在提供されている SharePoint Online は 2007 がベースです)
サンドボックス ソリューションは次期 SharePoint Online への展開も可能になるため、SharePoint 2010 での開発でのキーとなる技術となると感じています。

今日は Silverlight アプリケーションをサンドボックス Web パーツとして展開する際のポイントをご紹介しますが、SharePoint 2010 では Silverlight が標準でサポートされるようになったため、「Silverlight の Web パーツ」を利用することで、xap ファイルへのパスを指定するだけで SharePoint サイト内に Silverlight アプリを Web パーツとして表示可能です。InitParams も渡せます。

そのような利用もアリですが、製品開発等行う際に、Web パーツ内に Silverlight を組み込んでしまいたいことのほうが多いと思います。
Silverlight アプリを Web パーツとして展開する際には、Web パーツのクラスファイルに次のようなコードを記述します。

sbcode

Silverlight アプリ内で、Client オブジェクトモデルを利用する場合には、initParams にMS.SP.url としてカレント SharePoint サイトの URL を渡す必要があります。Client オブジェクトモデルを利用しない場合は必要ありません。
また、xap ファイルはモジュール等を利用してあらかじめ SharePoint サイト内のライブラリに展開されるよう設定します。(上記コードでは SiteAssets/(サイトのリソース ライブラリ) 内に xap ファイルが展開されていることが前提となっています)
xap をライブラリに展開するモジュールと上記 Web パーツを 1 つのフィーチャーとして開発するといいと思います。

<参考>
「方法: HTML を使用して Web ページに Silverlight を追加する」http://msdn.microsoft.com/ja-jp/library/cc189089(VS.95).aspx

Silverlight を利用することで、使いやすくて見た目がいい UI 開発には ◎ ですし、また Silverlight を利用した Web パーツもモジュールもサンドボックスでの展開が可能です。サンドボックス ソリューションでは外部サービスへのアクセスがサポートされないため、サンドボックスで Web パーツ等開発を行う際には外部の Web サービス等へのアクセスができません。Silverlight を利用することで外部サービスへのアクセスは Silverlight から行い、Silverlight アプリを Web パーツ内に表示するといった開発も可能ですよね。(次期 SharePoint Online での詳細な仕様が公開されないと、まだ不明ですが。。)

以上、サンボボックスソリューションについてでした。

奥田理恵