ページ処理モデル
最終更新日: 2010年4月15日
適用対象: SharePoint Server 2010
Microsoft SharePoint Server 2010 はテンプレート ベースのページ レンダリング システムです。SharePoint サイトのページ レンダリングには、マスター ページとページ レイアウトの 2 種類の基本テンプレートがあります。マスター ページは、サイト内のすべてのページ インスタンスで使用できます。ページ レイアウトは、そのページ レイアウトに基づいているすべてのページ インスタンスで使用できます。ページ レイアウトは、マスター ページとページ レイアウト ギャラリーのリスト アイテムとして保存されるので、バージョン管理、チェックインおよびチェックアウト、ワークフロー、その他 SharePoint ドキュメント ライブラリで利用可能な機能を使用できます。
SharePoint Server 2010 は、Microsoft SharePoint Foundation 2010 と Microsoft ASP.NET の上に構築されます。ASP.NET エンジンは、すべての SharePoint ページ要求を解釈し、実行します。たとえば、ユーザーがブラウザーで welcome.aspx という名前のページを要求するとします。ASP.NET エンジンは、SharePoint Foundation 2010 FileProvider オブジェクトを介して、ページに関連付けられたページ レイアウトとサイトに関連付けられたマスター ページを取得し、フィールドからフィールド コントロールと Web パーツをページにレンダリングします。図 1 は、SharePoint Server 2010 におけるページ処理モデルを示します。
図 1. SharePoint Server 2010 でのページ処理モデル
ページ処理モデル
次のリストでは、ASP.NET と SharePoint Foundation が連携して SharePoint サイトにページをレンダリングする方法を説明します。
ブラウザが Microsoft インターネット インフォメーション サービス (IIS) から Web ページを要求します。
IIS が ASP.NET に要求を渡します。
HttpApplication パイプラインが要求に対して作成されます。
ASP.NET が SharePoint Foundation ファイル プロバイダーを介してページをフェッチします。ASP.NET がファイル プロバイダーに URL を渡し、ファイル プロバイダーがページをフェッチして、ページ ストリームを返します。SharePoint Foundation ファイル プロバイダーはキャッシュを実装し、データベースとの往復を減少させます。
ASP.NET が Page クラスを読み込み、ページ ストリームを解析し、ページの基になるコンテンツ ページへの参照を検出します。
ASP.NET エンジンがページ ストリームをコンパイルし、メモリに保存します。
ASP.NET が SharePoint Foundation ファイル プロバイダーにコンテンツ ページを照会します。
ASP.NET が現在のページに関連付けられたページ レイアウトのストリームを読み込みます。
ASP.NET がページ ストリームをコンパイルし、メモリに保存します。システムがメモリを必要とする場合、ASP.NET は後でこのメモリを解放できます。
ASP.NET がサイトのマスター ページを特定し、SharePoint Foundation ファイル プロバイダーを介してマスター ページをフェッチします。
ASP.NET がマスター ページをコンパイルし、変更するまではマスター ページを再コンパイルしなくても済むようにディスクに書き込みます。
要求されたページのコンテキストで、コンテンツ ページがページ上の各コントロールを実行します。
ASP.NET が必要なキャッシュを更新します。
IIS がブラウザにページを返します。
次回、同じユーザー、または最初のユーザーとしてページを表示する同じ権限を持った別のユーザーがページを要求する場合、ページ処理は次のようにさらに効率的に行われます。
ブラウザが IIS から Web ページを要求します。
IIS が ASP.NET に要求を渡します。
HTTPApplication パイプラインが要求に対して作成され、HandleRequest を呼び出します。
ASP.NET がすべての内部キャッシュを使用します。
ASP.NET がコントロール用の HTML をレンダリングします。
IIS がブラウザにページを返します。
注意
この処理にはほとんど時間がかかりませんが、ASP.NET はその都度コントロールをレンダリングします。このような動作が不要の場合は、ASP.NET ページ出力キャッシュ機能を有効にすることができます。
関連項目
タスク
[方法] VaryByCustom イベント ハンドラーを使用してキャッシュを拡張する