次の方法で共有


構成要素: モバイル ページ、モバイル コントロール、およびモバイル アダプター

最終更新日: 2010年3月19日

適用対象: SharePoint Foundation 2010

この記事の内容
モバイル ページ、モバイル コントロール、およびモバイル アダプターのオブジェクト モデル
モバイル ページ、モバイル コントロール、モバイル アダプター、およびモバイル ドキュメント ビューアーで使用される XML
モバイル ページ、モバイル コントロール、およびモバイル アダプターの開発に関連する領域
モバイル ページ、モバイル コントロール、およびモバイル アダプターの開発に関する詳細

ここでは、Microsoft SharePoint Foundation における開発の構成要素であるモバイル ページ、モバイル コントロール、およびモバイル アダプターの概要を簡単に説明します。

SharePoint Foundation 展開をモバイル デバイスで利用しやすくするために、SharePoint Foundation には、(非モバイル) コンピューターからアクセスされるページやコントロールとはまったく別に、モバイル ページおよびモバイル コントロールのセットが用意されています。一部の Web パーツも、モバイル Web パーツ アダプターによって、モバイル デバイスで利用しやすいものになっています。

モバイル デバイスが SharePoint Foundation の URL にアクセスすると、SharePoint Foundation では、その要求ヘッダーからブラウザーの種類を検出し、要求をモバイル版のページにリダイレクトします。モバイル ページは、通常は非モバイル版ページのコントロールの機能を模したモバイル コントロールを持ちます。非モバイル版ページが Web パーツ ページの場合は、非モバイル版ページの 1 つ以上の Web パーツに対するアダプターを持つことがあります。アダプターとは、モバイル デバイスの小さな画面に適したレンダリングを行う代替版の Web パーツとその子コントロールです。

カスタムのモバイル ページ、モバイル コントロール、およびモバイル アダプターを独自に作成して、SharePoint Foundation ソリューションをモバイル デバイスから利用しやすいものにできます。

モバイル ページ、モバイル コントロール、およびモバイル アダプターのオブジェクト モデル

モバイル開発に関するクラスは、以降で説明する 3 つのグループに大きく分かれます。

モバイル ページ クラス

SharePoint Foundation のモバイル ページは、マスター ページを使用しません。また、サイト ページとアプリケーション ページの違いは、モバイル デバイス向けの SharePoint Foundation 開発には適用されません。SharePoint Foundation のすべてのモバイル ページはアプリケーション ページであり、セーフ モードでは実行されません。

すべての SharePoint Foundation モバイル ページは、直接または間接的に、以下に示すクラスの 1 つまたは 2 つを継承します。

  • SPMobilePage – 以下のより具体的なクラスがどれも利用できない場合、カスタム モバイル ページの基本クラスとして使用します。

  • SPMoblogPage – ブログ サイトの一部となるカスタム モバイル ページの基本クラスとして使用します。

  • WebPartMobilePage – カスタム モバイル Web パーツ ページの基本クラスとして使用します。対応する非モバイル版の WebPartPage オブジェクト (ターゲット ページと呼びます) がすべての WebPartMobilePage オブジェクトに対して存在する必要があります。モバイル アダプターが作成されているターゲット ページ上の Web パーツはすべて、モバイル版のページにレンダリングされます。

  • SPMobileWikiPageWebPartMobilePage から派生したこのクラスを、カスタム モバイル Wiki ページの基本クラスとして使用します。この種類のページのそれぞれについて、対応するターゲット Wiki ページが存在する必要があります。モバイル アダプターが作成されているターゲット ページ上の Web パーツはすべて、モバイル版のページにレンダリングされます。

独自のモバイル ページの作成に加えて、モバイル デバイスからの要求をモバイル ページにルーティングするリダイレクト システムを変更することもできます。詳細については、「モバイル ページとリダイレクト システムの概要」、「モバイル ページ」、「モバイル ページのレイアウトと改ページ」、および「[方法] リダイレクションを使用してモバイル ホーム ページをカスタマイズする」を参照してください。モバイル ページの開発全般の詳細については、「[方法] モバイル ホーム ページをカスタマイズする」、「[方法] モバイル リスト ビュー ページおよびフォーム ページをカスタマイズする」、および「[方法] モバイル ページでフィールド レンダリングをカスタマイズする」も参照してください。

モバイル コントロール クラス

Microsoft.SharePoint.MobileControls 名前空間には、200 近いクラスがあります。これらのクラスは、突き詰めれば Microsoft ASP.NET System.Web.UI.MobileControls.MobileControl クラスから継承されたものです。わずかな例外を除き、SharePoint Foundation モバイル コントロールの継承の起源には、SPMobileComponent が含まれます。このクラスは、以下に示す数種類のメンバーを SharePoint Foundation モバイル コントロールに提供します。

  • SharePoint Foundation のコンテキスト情報を提供するメンバー (現在の Web サイト、現在のリスト、ページの種類、現在のユーザーの権限など)

  • コントロールが大きすぎるか、その子要素が多すぎてモバイル デバイスの画面に容易には収まらない場合に使用される切り捨てのしくみを管理するメンバー

  • コントロールをレンダリングするレンダリング テンプレート システムを実装するメンバー

注意

SPMobileComponentSystem.Web.UI.MobileControls.MobileControl から直接派生しているので、SPMobileComponent から派生した SharePoint Foundation クラスは、たとえそのように思わせる名前であっても、Microsoft ASP.NET モバイル コントロール クラスからは一切派生できません。たとえば、SPMobileListItemSystem.Web.UI.MobileControls.MobileListItem から派生しているわけではありません。ただし、Microsoft.SharePoint.MobileControls 名前空間のクラスであっても、対応する ASP.NET クラスから直接派生しているために SPMobileComponent からは派生していないものがあります。SPMobileLink はその一例です。

SharePoint Foundation モバイル コントロールの大半は、モバイル aspx ページで直接参照されることはありません。むしろ、それらは、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATES\ControlTemplates にある MobileDefaultTemplates.ascx ファイル内の RenderingTemplate 要素の子オブジェクトです。このレンダリング テンプレート (ASP.NET のユーザー コントロール) は、さらに、SPMobileComponent から派生したクラスをインスタンス化するオブジェクトの TemplateName プロパティで参照されます。これは、モバイル ページで参照される最後のオブジェクトです。事実、そうしたページ上のオブジェクトによって参照されるレンダリング テンプレートが MobileDefaultTemplates.ascx 内にある一連のレンダリング テンプレートの最初のものに過ぎず、実際に子モバイル コントロールを含むレンダリング テンプレートに到達するまで、それぞれのテンプレートが次のものを参照していく場合が少なくありません。ときには、最終的にレンダリングされるコントロールが、サイトの種類、ページの種類、リストの種類など、コンテキストの情報に基づいて動的に選択されることもあります。

通常、SharePoint Foundation ソリューションでカスタム コントロールを使用する際には、これと同じしくみを使用して、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATES\ControlTemplates にある ascx ファイル内のカスタム レンダリング テンプレートにカスタム コントロールを追加したうえで、そのカスタム レンダリング テンプレートが必要なページで使用されるように呼び出し側システムを変更します。

モバイル コントロールの開発の詳細については、「モバイル ページとリダイレクト システムの概要」、「モバイル ページのレンダリング システム」、「省略記号とレンダリングの制限」、「[方法] モバイル ホーム ページをカスタマイズする」、「[方法] モバイル リスト ビュー ページおよびフォーム ページをカスタマイズする」、および「[方法] モバイル ページでフィールド レンダリングをカスタマイズする」と、Microsoft SharePoint Foundation ソフトウェア開発キット (SDK) の「モバイル開発の方法およびウォークスルー」ノードにあるウォークスルー トピックを参照してください。

モバイル アダプター クラス

SharePoint Foundation は、コントロール アダプターの ASP.NET システムを使用して、モバイル ページ上にある Web パーツの機能を有効にします。すべての SharePoint Foundation モバイル アダプター クラスは WebPartMobileAdapter から派生しており、このクラス自体は ASP.NET の ControlAdapter クラスから派生しています。WebPartMobileAdapter クラスにおける ControlAdapter クラスからの主な変更内容は、Web パーツをレンダリングする HTML ライター オブジェクトへの直接アクセスをブロックするためのものです。こうした変更は、セキュリティ上必要なものです。

モバイル Web パーツ アダプターは、モバイル ページ上で参照されません。代わりに、そうした Web パーツ アダプターが構成ファイル内で適合する Web パーツにマッピングされます。ターゲットの非モバイル Web パーツ ページに対応したモバイル ページによるレンダリング時には、ランタイムがターゲット ページ内の各 Web パーツを参照して、アダプターが存在するかどうかを確認します。存在する場合は、そのアダプターがレンダリングされます。存在しない場合、その Web パーツはモバイル ページ上にはレンダリングされません。

SharePoint Foundation には、次の Web パーツ アダプターが組み込まれています。

カスタム Web パーツと、SharePoint Foundation に組み込まれている Web パーツのどちらに対しても、独自のカスタム モバイル Web パーツ アダプターを作成できます。

モバイル ページがセーフ モードで動作することはありませんが、Web パーツ アダプターは、Web パーツの場合と同様、セーフ コントロールとして登録する必要があります。これは、web.config ファイルに対する編集の権限を持たない人物がモバイル ページやモバイル アダプターを使用して安全でない Web パーツにアクセスすることを防ぐためです。

注意

SharePoint Foundation では、Web パーツ以外のコントロールに対するモバイル アダプターの作成をサポートしていません。

SharePoint Foundation 用のモバイル アダプターの開発の詳細については、「[方法] モバイル アダプターを作成する」と「[ウォークスルー] モバイル アダプターを作成する」を参照してください。

モバイル コンテキスト クラス

SPMobileContext クラスは、モバイル デバイス向けの開発時に特に役立つ、現在の HTTP コンテキストに関するプロパティをカプセル化した便利なクラスです。たとえば、MarkupLanguage プロパティは、モバイル デバイスのブラウザーで使用されるページ レンダリング言語の名前 ("html32"、"chtml10"、"xhtml-mp"、"wml11" など) を返します。

モバイル リダイレクト メンバー

UnsecuredLayoutsPageBase クラスは、モバイル デバイスからの要求を要求されているページのモバイル版にリダイレクトするしくみを実装した仮想メンバーを持ちます。ユーザー設定型のページを UnsecuredLayoutsPageBase (非モバイル ページに該当) から派生させて、そのページのインスタンスのモバイル版をモバイル デバイスにとって利用しやすいものにする必要があるものの、既定のリダイレクト ロジックがページの種類にとって適切なものでなければ、これらのメンバーをオーバーライドすることができます。

モバイル ユーティリティ クラス

SPMobileUtility クラスには、SharePoint Foundation でのモバイル開発で使用される数十の静的なメソッドとフィールドがあります。

モバイル ページ、モバイル コントロール、モバイル アダプター、およびモバイル ドキュメント ビューアーで使用される XML

ほとんどのリスト ビューは、モバイル デバイスの小さな画面での表示を考慮して適切に設計されているわけではありません。こうした理由から、既定では、モバイル ビューとして指定されているリスト ビューだけがモバイル ページに表示されます (ただし、この逆は成り立たず、モバイル ビューは非モバイル ページでも見ることができます)。また、コンピューターのブラウザーで表示される既定のビューとは異なる、モバイル デバイス向けのリストの既定ビューを用意することもできます。

リスト ビューをモバイル ビューとして指定するには、View 要素 (リスト) 要素の MobileView 属性を True に設定します。また、同じ要素の MobileDefaultView 属性を True に設定することで、モバイル ビューを既定のモバイル ビューとして指定できます。

指定された種類のドキュメントをモバイル デバイスで表示できるビューアーがソリューションに含まれている場合は、ドキュメントの形式がモバイル デバイスのブラウザーのレンダリング形式でなくても、そのビューアーをホストする特別なモバイル ページを作成したり、XML マークアップを使用してそのページを登録したり、オプションで、指定された形式に対応した独自のビューアーを含むデバイスにそのドキュメントを直接開かせたりすることができます。このマークアップの詳細については、「モバイル ドキュメント ビューアーの開発」を参照してください。

モバイル ページ、モバイル コントロール、およびモバイル アダプターの開発に関連する領域

[文書パーツ] ページとユーザー インターフェイス

構成要素: Web パーツ

モバイル ページ、モバイル コントロール、およびモバイル アダプターの開発に関する詳細

モバイル デバイス向けの SharePoint Foundation 開発に関する広範かつ詳細な情報については、この SDK 内の「SharePoint Foundation によるモバイルの開発」というノードを参照してください。