はじめに
本連載では、Visual Studio 2010によるSharePoint 2010開発を扱います。第2回となる今回は、SharePoint 2010のWebパーツの作成方法を解説します。加えて、LINQ to SharePointを使用したSharePointサーバーへのデータアクセス方法も解説します。
作成に入る前に、本連載の第1回『SharePoint 2010開発の紹介』を参考にして、SharePoint 2010の開発環境を整えてください。
対象読者
- Visual Studio 2010によるSharePoint 2010開発に関心がある開発者
- SharePoint 2010のWebパーツの開発に関心がある開発者
SharePoint 2010用プロジェクトテンプレート
今回から実際の開発作業を行います。まず、Visual Studio 2010によるSharePoint 2010開発の基本的な流れを説明します。
Visual Studio 2010には、SharePoint用の数多くのプロジェクトテンプレート(表1)と項目テンプレートがあらかじめ組み込まれています。
プロジェクト | 説明 |
空のSharePointプロジェクト | SharePointプロジェクトのための基本となるフォルダーやファイルを提供 |
視覚的Webパーツ | Webパーツを作成するためのプロジェクト(本稿で使用) |
シーケンシャルワークフロー | 一連の手順として実行されるシーケンシャルワークフローを作成するためのプロジェクト |
ステートマシンのワークフロー | 一連のステート、遷移、アクションによって実行されるステートマシンワークフローを作成するためのプロジェクト |
ビジネスデータ接続モデル | SQL Serverなどの外部ビジネスデータに対してアクセスするためのプロジェクト |
イベントレシーバー | SharePointアイテムで発生したイベントに応答するイベントレシーバーを作成するためのプロジェクト |
リスト定義 | リストの構成要素を定義するリスト定義を作成するためのプロジェクト |
コンテンツタイプ | 既存のコンテンツタイプを元にカスタムコンテンツタイプを作成するためのプロジェクト |
モジュール | ファイルをSharePointサーバーに配置するためのモジュールを作成するためのプロジェクト |
サイト定義 | SharePointサイト作成時に指定するサイト定義を作成するためのプロジェクト |
再利用可能なワークフローのインポート | SharePoint Designer 2010で作成された再利用可能なワークフローをインポートし、カスタマイズするために使用 |
SharePointソリューションパッケージのインポート | SharePoint 2010でエクスポートされたソリューションをインポートし、カスタマイズするために使用 |
これらのプロジェクトテンプレートや項目テンプレートを利用することにより、SharePoint 2010の機能を容易に拡張することが可能になります。例えば、SharePoint 2010のWebパーツやワークフローなどを手軽に作成できます。それぞれのテンプレートについては、今後必要に応じて解説していきます。
WebパーツとLINQ to SharePoint
今回扱うSharePointのWebパーツとLINQ to SharePointについて、簡単に説明します。
Webパーツ
Webパーツとは、SharePointにおけるページの構成要素となるUIを持った部品のことです。SharePoint 2010では、リストや他のページの表示、HTMLフォーム、イメージビューアーなどさまざまなWebパーツが用意されており、ユーザーはこれらのWebパーツを張り付けることによりページを自由にカスタマイズできます。
さらに、オリジナルのWebパーツを開発し、SharePointのサイトに配置することも可能です。Visual Studio 2010では、SharePoint 2010 Webパーツ用のプロジェクトテンプレートや項目テンプレートが用意されているので、これらを使用して独自の機能を持ったWebパーツを作成できます。
また、ASP.NETのWebパーツをSharePointで利用することもできます。この場合、ASP.NETのWebパーツをエクスポートして.webpartファイルを作成し、SharePoint側で.webpartファイルをインポートすることにより、ASP.NETのWebパーツをSharePointで使用することが可能となります。
LINQ to SharePoint
SharePoint 2010の新機能として、LINQ to SharePointプロバイダーが実装された結果、SharePointのリストデータに対してLINQクエリを使用できるようになりました。
のちほど実際に使用しますが、LINQ to SharePointを使用してデータアクセスを行うためには、SharePoint 2010に付属するSPMetalというツールを使用して、データコンテキストやエンティティクラスを自動生成する必要があります。