ASP.NET と SharePoint: モバイル アダプターの開発
最終更新日: 2010年3月19日
適用対象: SharePoint Foundation 2010
このトピックでは、Microsoft ASP.NET 3.5 でのモバイル コントロール アダプターの開発と Microsoft SharePoint Foundation でのモバイル Web パーツ アダプターの開発の相違について説明します。
SharePoint Foundation モバイル アダプター フレームワークのプログラミング
モバイル アダプターの SharePoint Foundation フレームワークでの開発は、Microsoft ASP.NET 3.5 モバイル アダプター システムでの開発より実際に簡単です。SharePoint Foundation では、Microsoft ASP.NET 3.5 システムと同様、モバイル デバイスからアクセスできるすべての Web パーツのモバイル アダプター コントロールを作成できます。compat.browser ファイル内で、そのアダプターと、レンダリングが適合される Web パーツをマップします。
ただし、SharePoint Foundation フレームワークでの開発と Microsoft ASP.NET 3.5 でのモバイル アダプター開発には、いくつかの相違があります。ほとんどの場合、SharePoint Foundation のセキュリティ モデルに準拠するために、このような相違が必要になります。
SharePoint Foundation のモバイル アダプター フレームワークは、Web パーツの適合のみを目的として使用されるものであり、他の種類のコントロールは対象外です。モバイル ページで他の種類のコントロールを使用する必要がある場合は、Microsoft.SharePoint.WebControls からコントロールを適合するのではなく、Microsoft.SharePoint.MobileControls 名前空間内のコントロールを参照してください。
アダプター クラスは、System.Web.UI.Adapters.ControlAdapter クラスから直接ではなく、Microsoft.SharePoint.WebPartPages.WebPartMobileAdapter クラスから派生します。
アダプター クラスは、安全なコントロールとして登録する必要があります。手順の詳細については、「Web.config ファイルを使用して作業する」を参照してください。
ControlAdapter クラスから継承される Render(HtmlTextWriter) メソッドはオーバーライドしないでください。代わりに、CreateControlsForSummaryView() と CreateControlsForDetailView() のどちらかまたは両方のメソッドをオーバーライドします。
WebPartMobileAdapter が ControlAdapter から継承する OnLoad(EventArgs) メソッド、OnInit(EventArgs) メソッド、OnPreRender(EventArgs) メソッド、および OnUnload(EventArgs) メソッドはオーバーライドしないでください。代わりに、これらのいずれかのイベントに対して別のロジックが必要な場合は、WebPartMobileAdapter における SharePoint 対応の代替の特定のメソッドである OnLoadForMobile(EventArgs)、OnInitForMobile(EventArgs)、OnPreRenderForMobile(EventArgs)、および OnUnloadForMobile(EventArgs) のうちの 1 つまたは複数をオーバーライドします。
重要 これらのメソッドをオーバーライドする際の重要な注意点については、この 4 つのメソッドに関するリファレンス トピックを参照してください。
モバイルでアクセス可能な Web パーツ ページは WebPartMobilePage クラスのオブジェクトですが、これを直接作成することはありません。モバイル デバイス ユーザーがモバイル デバイス用に適合された Web パーツが含まれている Web ページに移動すると、実行時に WebPartMobilePage オブジェクトが作成され、モバイル デバイスに返されます。
モバイル デバイス用に適合された Web パーツを含む各 Web パーツ ページには、対応するアプリケーション ページがあり、ユーザーはここで、適合された Web パーツの表示や順序を設定できます。これらのページは非表示型のオブジェクトなので、プログラムでこれらのプロパティに影響を与えることはできません。