はじめに
デスクトップコンピュータのブラウザ用に設計されたWebアプリケーションでは、既にしばらく前から、スクリプトを利用することで使い勝手のよいユーザーインターフェースを実現するという試みが実践されています。その上にAJAXサポートを追加することで、従来のデスクトップアプリケーションとほとんど変わらない充実した機能を実現できるようになりつつあります。しかし、世の中ではモバイル化がますます進行しており、ユーザーはWebアプリケーションを携帯電話から利用するようになってきています。
携帯電話で使用できるブラウザは以前はかなり制限されていたので、高度なスクリプト機能を使用するのは困難でした。しかし、MicrosoftのWindows Mobileプラットフォームには、PocketまたはMobile Internet Explorerブラウザ(通常はPIEまたはWMIEと略記)が含まれており、このブラウザの最近のバージョンはAJAXをサポートしています。AJAXサポートは限定的ながらWindows Mobile 5.0の頃から既に利用できましたが、6.0バージョンにはAJAXアプリケーションに対する優れたサポートが含まれています。これによってアプリケーション開発者に多くの可能性が開かれます。
この記事では、Visual Studio 2008(今のところVisual Studio 2010のベータリリースではWindows Mobile開発はできません)とC#を使って、Windows Mobile Professional 6.0 phone(またはそれ以降)で動作する単純なAJAX対応Webアプリケーションを開発します。また、テスト用に電話エミュレータを使用します。これを使用すれば、実際の電話機をすぐに用意する必要がないので、少なくとも初期のテストは簡単になります。
WM 6.0用Webアプリケーションを開発するための準備
数年前にVisual Studio 2008を利用できるようになったとき、このツールが直接サポートしていたメインモバイルプラットフォームはWindows Mobile 5でした。つまり、Windows Mobile 6.0用のアプリケーションを開発するのであれば、Windows Mobile 6.0 SDKパッケージを別にダウンロードして、Visual Studio 2008 SP1の上にインストールする必要があるということです。
Visual StudioのSP1(Service Pack 1)は、この記事のコードをテストするのにも必要です。Visual Studio 2008 SP1とWindows Mobile 6.0 SDKをダウンロードできる場所については、この記事の終わりにある「リソース」セクションを参照ください。
Mobile SDKとVisual StudioのSP1をインストールするのは簡単ですが、SP1のインストールには特に時間がかかります。高速のコンピュータでさえも、1時間以上かかることがあります。ただし、このプロセスは高度に自動化されているので、ユーザーがやらなければならないことは、基本的にインストールプロセスの起動または再ブート後のログインだけです。
インストールが完了したら、Visual Studioを起動し(更新をインストールするには、Visual Studioを閉じる必要があります)、Webアプリケーション用の新しいプロジェクトを作成できます。この記事の目的は、ASP.NET WebアプリケーションにAJAX機能を追加することなので、Visual Studio Smart Device(Windows Mobile)プロジェクトを開始する必要はありませんが、代わりに通常のWebプロジェクトを開始する必要があります。
この記事では、Webアプリケーション開発用にASP.NET MVCの使い方を示しますが、より伝統的なWebFormsモデルを使用してもかまいません。とはいえ、この新しいMVCモデルにはAJAXに対する優れたサポートが含まれているので、この新しいテクノロジをまだ詳しく調べていない方には、この機会にそうすることをお勧めします。なお、ASP.NET MVCはVisual Studio 2008の一部ではないので、ASP.NET MVC用の小さなインストールパッケージを別にダウンロードする必要があります。
単純なMVCアプリケーションのスケルトンを作成する
開発を始めるには、まずASP.NET MVCプロジェクトを作成するか開きます。それから、そのプロジェクトのControllersフォルダに新しいコントローラクラスを追加し、「MobileAJAXController」などの適切な名前を付けます。このコントローラの名前は、それが相対パス/mobileAJAXへの要求を処理することを示しています。この情報は後で役に立ちます。
Windows Mobile phoneから間違いなくASP.NET MVCアプリケーションに接続できるようにする必要があるので、最初は携帯電話にコンテンツを供給するための非常に単純なコントローラアクションメソッドを作成するのが最善策です。この最も単純なシナリオでは、ASP.NET MVCは単なる文字列を返すアクションメソッドをサポートします。その後、テスト用に次のメソッドを追加できます。後でこれに手を加えて、実際的な機能を持たせることができます。
public string Hello() { return "Hello, World!"; }
もしそうしたければ、MVCアプリケーションが期待どおりに動作するかテストできます。それには、Visual Studioで[F5]キーを押し(またはメニューから[デバッグ開始]を選択し)、追加したコントローラアクションを自分のコンピュータのブラウザでテストします。アドレスはhttp://localhost:1234/mobileAJAX/hello
などになります。ポート番号は動的に変わりますが、Visual Studioは自動的に正しいURLを使ってブラウザを起動します。
テストが成功したら、次にアプリケーションが実際のWebサーバ(IIS)で動作することを確認します。アプリケーションを実際に携帯電話でテストするためにはIISが必要です。Visual Studioに含まれている開発用Webサーバでは、localhostの外部からネットワーク接続を行うことができません。
この制限により、IISを実行しているサーバを見つける必要があります。IIS 7.0または7.5が動作するWindows Server 2008システムが望ましいでしょう。これらのバージョンには、ASP.NET MVCアプリケーションに対する最良のサポートが含まれているからです。
この記事では、IISをMVCアプリケーション用に設定する方法は説明しませんが、MVCのドキュメントを見れば詳細な手順が分かります。以降の説明では、IISがインストールされていて、次のようなURLを使ってアプリケーションにアクセスできることを前提にしています。
http://myserver/mobileAJAX/hello
当然ですが、実際のURLはこれとは異なるので、テストの際にはURLを適切に変更してください。