2006年03月01日

ゴーストページ

 SPS 2003 と WSS 2.0 では、サイトテンプレートから作成されたサイトの aspx ページはゴーストページという仕組みで構成されています。
通常、サイト内のデータは、aspx ページを含めて、全てコンテンツデータベースに格納されています。 しかしながら、サイトのページである default.aspx や、リストやライブラリのビューやフォームページである aspx ページについては、Web パーツ ページとして構成されている関係で、実際にはどれも同じ内容になります。
そこで、パフォーマンスとデータストアの観点で、コンテンツデータベースにはファイルのエントリだけでファイル内容の実体は格納されずに、ファイルサーバー上のテンプレートフォルダ内のファイルを読み込んで、メモリ上に展開されるアーキテクチャとなっています。 これにより、ゴーストページの状態でのテンプレートの aspx ページの変更結果は、作成済みのサイトに即時に反映されます。
この状態で FrontPage 2003 や Web フォルダアクセスにて編集操作を行うと、この時初めてファイル内容がデータベース内に格納される形になります。 なお、ブラウザを通しての設定変更はあくまでも Web パーツの設定の変更なので、aspx ページに対する操作にはなりません。

SharePoint の SDK 内にも簡単な説明が記載されています。

・Guidelines for Templates and Definitions
<http://msdn.microsoft.com/library/en-us/spptsdk/html/tsovGuidelinesCustomTemplates_SV01018815.asp>
・Introduction to Templates and Definitions
<http://msdn.microsoft.com/library/en-us/spptsdk/html/tsovIntroTemplates_SV01015722.asp>
→ Ghosting のトピック

プログラムにて、ゴーストページの状態を確認することも出来るようです。 こちらに、サンプルコードが紹介されています。

・Finding Ghosts: Programmatically Determining Ghosted/Unghosted State
<http://blogs.msdn.com/ryanrogers/archive/2005/03/22/400661.aspx>

posted by kunitaka at 00:24| Comment(0) | TrackBack(0) | テクニック