SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Infragistics NetAdvantageチュートリアル(AD)

Silverlight 3をSharePointで使おう

NetAdvantage Silverlight 2009 vol.1とSharePoint

  • このエントリーをはてなブックマークに追加

検索中インターフェイスの作成

 ユーザーに検索用インターフェイスへの入力をさせ、結果を表示させるアプリケーションはでき上がりましたが、SharePoint内のコンテンツの量やユーザーの環境によっては検索に時間がかかる場合もあります。検索パネルのアニメーションと同様に、ユーザーへのフィードバックをここでも追加することでユーザーエクスペリエンスを向上させることが可能です。

図10 検索中メッセージとアイコンの表示
図10 検索中メッセージとアイコンの表示
ソース:SearchResult.xaml.xs
if (inProgress)
{
    // 検索中のパネル(Rectangle)を表示
    this.xtvSearchResult.Visibility = Visibility.Collapsed;
    this.txtNumFound.Text = "";
    this.txtSearchStatus.Text = "検索中...";
    this.recProgressIcon.Visibility = Visibility.Visible;
    this.sbProgress.Begin();
}
else
{
    // 検索結果(xamWebTileView)を表示
    this.xtvSearchResult.Visibility = Visibility.Visible;
    this.recProgressIcon.Visibility = Visibility.Collapsed;
    this.sbProgress.Stop();
    this.txtNumFound.Text = numFound.ToString();
    this.txtSearchStatus.Text = " 件のドキュメントが見つかりました。";
}

SharePointへのデプロイ

 でき上がった検索用SilverlightアプリケーションをSharePoint Webアプリケーションにデプロイするには下記の準備が必要となります。

CLR 3.5の設定

 Silverlightアプリケーションを実行するにはCLR 3.5の環境が必要となるため、Silverlightが使用できるように、SharePoint Webアプリケーションのweb.configファイルにCLR 3.5 ASP.NET AJAX Extensionの機能を追加する必要があります。この手順についての詳細は下記のいずれかの記事をご覧ください。

 MSDNの記事はASP.NET 2.0 AJAX Extensions 1.0用として書かれていますが、同じ手順をASP.NET 3.5用のアセンブリ参照に書き換えて適用することでSharePointアプリケーション上でSilverlightアプリケーションをホストするのに必要となるCLR 3.5用の環境設定が可能です。

CrossDomain.xmlとClientAccessPolicy.xml

 SilverlightアプリケーションよりWebサービスを使用する際には、セキュリティ上の理由により、クロスドメインアクセスを許可する設定が必要になります。SilverlightランタイムはWebサービスなどのアクセス先にクロスドメインアクセスの情報が含まれるCrossDomain.xmlおよびClientAccessPolicy.xmlのどちらかのファイルがあるかを確認するため、これらのファイルをSilverlightアプリケーションがホストされるSharePoint Webアプリケーションに配置することが必要です。SharePointの場合、Office SharePoint Designerを使用してSilverlightアプリケーションを配布するサイトのルートフォルダに配置します。

ClientBinフォルダの設定

 Silverlightアプリケーションは.xapファイルと呼ばれる形式で配布されますが、実際にこのファイルをホストするフォルダをSharePoint Webアプリケーション内(あるいはSharePointハイブ内)に作成する必要があります。フォルダの準備ができたら、Visual Studioでビルドされた検索用Silverlightアプリケーションの.xapファイルをコピーします。

MIMEタイプの設定

 .xapファイルがSharePoint WebアプリケーションをホストするIISからSilverlightのアプリケーションとして正しくダウンロードされるようにするには、IISのMIMEタイプの設定に.xap拡張子がapplication/x-silverlight-appタイプとして認識されるように設定をする必要があります。

Silverlightアプリケーションをマスターページに埋め込む

 最後に完成したSilverlightコントロールを埋め込むマスターページをOffice SharePoint Designerで編集します。SilverlightアプリケーションはHTMLページ上の<object>タグに埋め込まれるので、Visual Studioで作成したSilverlightアプリケーションのソリューションに追加されるWebアプリケーションのDefault.htmlページにならって、<object>タグをマスターページの任意の場所に追加します。

 SharePoint WebアプリケーションはASP.NETのWebアプリケーションですので、通常の.aspxページと同じようにSilverlightアプリケーション配置用のタグを追加することが可能ですが、あらかじめ組み込まれているSharePoint用のタグを誤って消去してしまわないように注意してください。

<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="800" height="600">
  <param name="source" value="../../ClientBin/SharePointSearch.xap"/>
  <param name="onerror" value="onSilverlightError" />
  <param name="background" value="Transparent" />
  <param name="width" value="800" />
  <param name="height" value="600" />
  <param name="windowLess" value="true" />
  <param name="minRuntimeVersion" value="3.0.40624.0" />
  <param name="autoUpgrade" value="true" />
  <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration: none;">
    <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/>
  </a>
</object>

まとめ

 Webサービスとして使用可能なSharePoint上の機能はSilverlightでも簡単に使用することができます。今回はxamWebTileViewを使用しましたが、NetAdvantage Silverlightでは他にも多様なコントロールが提供されています。執筆時点でベータ版となっているSharePointの次期バージョンではSilverlight上でもSharePointオブジェクトが使用できるなど、Silverlightとの相互連携がさらに改善されるようですので、SharePoint上でのSilverlight活用はさらに広がりそうです。これを機にぜひトライしてみてはいかがでしょうか。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Infragistics NetAdvantageチュートリアル連載記事一覧

もっと読む

この記事の著者

インフラジスティックス・ジャパン株式会社 鈴木 誠(スズキ マコト)

大学卒業後、ホノルルにてエンタープライズコンテンツ管理及び大手リゾートホテルや教育機関向けWeb開発を行う。その後、米海軍サプライ管理システムの開発に従事。.NETからJavaまで主にWebテクノロジーに関わる。筋トレの傍ら植物を育てるのが趣味。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4726 2009/12/21 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング