Windows Mobile 6 の開発者向け新機能

Jim Wilson

JW Hedgehog, Inc.

2007 年 3 月 9 日

要約: この Windows Mobile® 6 開発者プラットフォーム リリースの主要な目標は、基幹業務 (LOB) アプリケーションの開発および展開の簡素化、Windows Mobile ファミリのさまざまなデバイスで正しく動作する単一アプリケーション構築の簡素化、ユーザー エクスペリエンスの向上です。ここでは、開発者の視点から見た Windows Mobile 6 の新機能とその目的について説明します。また、Windows Mobile 6 Software Development Kit (SDK) に含まれる各種の新規ツールについての説明のほか、Windows Mobile 6 アプリケーションの開発ガイドも記載しています。

このドキュメントは次の製品に適用されます。

   Windows Mobile 6 Professional

   Windows Mobile 6 Standard

   Windows Mobile 6 Classic

目次

はじめに はじめに
Windows Mobile 6 の名前付け規則について Windows Mobile 6 の名前付け規則について
Windows Mobile 5.0 との強力な互換性 Windows Mobile 5.0 との強力な互換性
アプリケーション開発の簡素化 アプリケーション開発の簡素化
サンプル サンプル
アプリケーション展開の簡素化 アプリケーション展開の簡素化
各種デバイスで動作する単一アプリケーションの構築 各種デバイスで動作する単一アプリケーションの構築
ユーザー エクスペリエンスの向上 ユーザー エクスペリエンスの向上
Windows Mobile 6 アプリケーション構築に必要なもの Windows Mobile 6 アプリケーション構築に必要なもの
必要なソフトウェア 必要なソフトウェア
既存スキルの活用 既存スキルの活用
ガイダンス ガイダンス
結び 結び
関連情報 関連情報

はじめに

この Windows Mobile 6 開発者プラットフォーム リリースの主要な目標は、LOB アプリケーションの開発および展開の簡素化、Windows Mobile ファミリのさまざまなデバイスで正しく動作する単一アプリケーション構築の簡素化、およびユーザー エクスペリエンスの向上です。

これらの目標を実現するため、Windows Mobile 6 は以前のバージョンの Windows Mobile をベースに構築されています。その中でも特に利用されているのが Windows Mobile 5.0 であり、Windows Mobile 5.0 のさまざまなプラットフォームおよびツールの強化機能は Windows Mobile 6 アプリケーション開発の基盤となっています。

Windows Mobile 5.0 をよく知らない場合や、Windows Mobile 5.0 に関する知識を再確認する場合は、「What's New for Developers in Windows Mobile 5.0 (英語)」を参照してください。「What's New for Developers in Windows Mobile 5.0」で扱っている機能、ツール、および API に関する説明は Windows Mobile 6 にもあてはまります。

ここでは、開発者の視点から見た Windows Mobile 6 の新機能とその目的について説明します。また、Windows Mobile 6 Software Development Kit (SDK) に含まれる各種の新規ツールについての説明のほか、Windows Mobile 6 アプリケーションの開発ガイドも記載しています。

Windows Mobile 6 と Windows Mobile 6 SDK

の開発関連機能で最も重要な機能を以下に紹介します。

基幹業務 (LOB) アプリケーションの開発および展開の簡素化

  • すべての Windows Mobile 6 デバイスの ROM に .NET Compact Framework 2.0 Service Pack 1 (SP1) と Microsoft SQL Server™ 2005 Compact Edition が含まれているため、ユーザーのデバイスにこれらの製品を配布またはインストールしなくても、アプリケーション側から .NET Compact Framework 2.0 と SQL Server 2005 Compact Edition を使用することができます。これによってアプリケーション展開の時間とコストが削減され、それが金銭的節約に直接つながってきます。

  • 高機能の Device Emulator は忠実なエミュレーションが可能で、AC 電源とバッテリ電源間の移行やバッテリ充電レベルの変化など、新しいエミュレーション状態を用意しています。

  • 新しい GPS (グローバル ポジショニング システム) テスト ユーティリティの FakeGPS を使用すると、GPS デバイスにアクセスすることなく、位置対応のアプリケーションをテストすることができます。

  • Device Emulator と連動する新しい Cellular Emulator を使用すると、着信通話、着信 SMS メッセージ、通話の中断、データ接続の中断など、さまざまな携帯電話シナリオでアプリケーションの動作をテストできます。

各種デバイスで動作する単一アプリケーションの構築の簡素化

  • 多数の新機能が備わった Device Emulator を使用すると、広範囲のデバイス フォーム ファクタでアプリケーションをテストできるためデバイスを購入する必要がありません。

  • API が Windows Mobile ファミリ全体で統一されているため、デバイスの製造元や携帯通信事業者を気にすることなく、さまざまな Windows Mobile デバイスで適正に動作する単一アプリケーションを作成することができます。

  • 100 を超えるサンプル アプリケーションを記載した開発者ガイドが Windows Mobile 6 SDK に含まれています。サンプルは、さまざまなデバイスで動作する単一アプリケーションを構築するためのベスト プラクティスなど、広範囲のトピックに対して用意されています。

ユーザー エクスペリエンスの向上

  • Windows Mobile 6 の新しいルック アンド フィールは、ユーザーの生産性とエクスペリエンスが向上するように設計されています。この再設計が施されたユーザー インターフェイスは連絡先の選択ダイアログ ボックスなど標準の Windows Mobile フォームに自動的に適用されるため、このようなフォームを利用するアプリケーションはそのままで新しいインターフェイスを利用できるというメリットがあります。

  • 今回追加された軽量バージョンの Tablet PC のインク API である Windows Ink Services for Pen (WISP) を使用すると、Windows Mobile 6 Professional デバイスや Windows Mobile 6 Classic デバイスで動作するアプリケーションにインク ベースの機能を組み込むことができます。

  • 新しいサウンド API を使用することにより、Windows Mobile 6 アプリケーションから MID、WMA、MP3、WAV など各種のサウンド形式のファイルを再生できます。

Windows Mobile 6 の名前付け規則について

>Pocket PC デバイスの登場から長い年月が経ち、モバイル デバイスは大きな進歩を遂げました。現在、さまざまなデバイス タイプとフォーム ファクタが利用できるだけでなく、それぞれに独自の強みを持っています。かつてはデバイス タイプが違えば機能に明確な違いがありましたが、今ではデバイスを分類する境界線が次第にあいまいになってきています。Pocket PC、Smartphone、Pocket PC Phone Edition など従来使用されてきた用語では、十分にデバイスを説明できなくなっており、場合によっては混乱を招くことがあります。 そこでマイクロソフトでは、機能やデバイス間の関係を一層明確にするために Windows Mobile 6 オペレーティング システムのすべてのバージョンに新しい名前付け規則を導入することにしました。表 1 に、Windows Mobile 5.0 と Windows Mobile 6 の名前付け規則の関係を示します。

表 1. Windows Mobile 5.0 と Windows Mobile 6 の名前付け規則の関係

Windows Mobile 5.0 の名前付け

Windows Mobile 6 の名前付け

Windows Mobile 5.0 for Smartphone

Windows Mobile 6 Standard

Windows Mobile 5.0 for Pocket PC Phone Edition

Windows Mobile 6 Professional

Windows Mobile 5.0 for Pocket PC

Windows Mobile 6 Classic

新しい名前付け規則は、デバイス ハードウェアを基にするのではなく、アプリケーションから見た各バージョンの機能を基にしています。

Windows Mobile アプリケーションを開発したことがあるなら、Windows Mobile ファミリのデバイス間で開発者エクスペリエンスの一貫性が極めて高いことに気付いているはずです。つまり、Windows Mobile ファミリのどれに対しても共通の API、ツール、ユーティリティのセットが使用できるのです。たった一つですが、Windows Mobile デバイス間で異なっている機能があります。それはタッチ スクリーンのサポートです。Pocket PC と Pocket PC Phone Edition のデバイスにはタッチ スクリーンがあるため、スクリーンへの直接入力をサポートしています。Smartphone にはタッチ スクリーンがないため、スクリーンへの直接入力をサポートしていません。

この重要な違いをなくして一貫性を高めるため、Windows Mobile SDK ではこれまでの Windows Mobile SDK と違って特定のデバイス タイプをターゲットとしてはいません。特定のデバイス タイプをターゲットとするのではなく、タッチ スクリーンがあるデバイス用とタッチ スクリーンがないデバイス用の 2 種類の Windows Mobile 6 SDK が用意されています。タッチ スクリーンがあるデバイス (Pocket PC または Pocket PC Phone Edition) 用アプリケーションを開発する場合は、Windows Mobile 6 Professional SDK を使用します。タッチ スクリーンがないデバイス (Smartphone) 用アプリケーションを開発する場合は、Windows Mobile 6 Standard SDK を使用します。Windows Mobile 6 SDK と Windows Mobile 6 デバイスの関係を表 2 に示します。

2. Windows Mobile 6 オペレーティング   システムと Windows Mobile 6 SDK の関係  

Windows Mobile 6 オペレーティング システム

対応する Windows Mobile 6 SDK

Windows Mobile 6 Standard

Windows Mobile 6 Standard SDK

Windows Mobile 6 Professional

Windows Mobile 6 Professional SDK

Windows Mobile 6 Classic

Windows Mobile 6 Professional SDK

Windows Mobile 6 Classic デバイスと Windows Mobile 6 Professional デバイスにはタッチ スクリーンがあるため、どちらも Windows Mobile 6 Professional SDK を使用します。一方、Windows Mobile 6 Standard デバイスにはタッチ スクリーンがないため、Windows Mobile 6 Standard SDK を使用します。

Windows Mobile 5.0 との強力な互換性

Windows Mobile 6 には、Windows Mobile 5.0 アプリケーションと強力な互換性があります。Windows Mobile 5.0 との互換性は Windows Mobile 6 の明示的な目標であり、Windows Mobile 6 の開発プロセス全体を通じて厳しくテストされています。そのため、圧倒的多数の Windows Mobile 5.0 アプリケーションは Windows Mobile 6 デバイスでも修正なしで動作します。ただし、この互換性はアプリケーションでサポート対象 API が使用されていることが前提になっていることに注意してください。マニュアルに記載されていない API や、サポートされていない API を Windows Mobile 5.0 アプリケーションが使用している場合、サポートされている API を使用しているアプリケーションでは発生しないような互換性の問題が発生する可能性があります。

Windows Mobile 6 が提供する Windows Mobile 5.0 との互換性は極めて強力であるため、Windows Mobile 5.0 SDK と Windows Mobile 6 SDK のどちらを選択しても、Windows Mobile 5.0 デバイスと Windows Mobile 6 デバイスの両方をターゲットとする単一の実行可能ファイルを構築することができます。このようにして作成されたアプリケーションは、Windows Mobile 5.0 でも適正に動作しますが、Windows Mobile 6.0 の場合には .NET Compact Framework 2.0 や SQL Server Compact Edition の ROM への組み込みなど多くの Windows Mobile 6 機能強化が施されているためにより一層適正に動作することができます。

アプリケーション開発の簡素化

Windows Mobile 6 SDK には、Microsoft Visual Studio® 2005 で Windows Mobile 6 アプリケーションの開発をするのに必要なツールとライブラリが含まれています。Visual Studio 2005 と Windows Mobile 6 SDK との組み合わせによって、強力なモバイル デバイス開発プラットフォームとなり、Windows Mobile アプリケーションの開発をこれまでよりも簡単にするツールと機能を提供しています。

ツール

ここでは、Windows Mobile 6 SDK で新たに提供された開発ツールと各ツールがアプリケーション開発プロセスで担う役割について説明します。

Device Emulator 2.0

実際に物理デバイスにアクセスすることなしでアプリケーションをテストできるエミュレータは、常にモバイル アプリケーション開発において重要な役割を持っています。実際にデバイスを使用せずにエミュレータで実行できるテストが多ければ多いほど、テスト作業が迅速かつ簡単になり、コストも削減されます。Windows Mobile 6 SDK に含まれている Device Emulator 2.0 は、旧バージョンの Device Emulator 1.0 が基になっており、以前は使用できなかった新しいデバイス状態や機能をエミュレートすることで実際のデバイス エクスペリエンスを極めて忠実に再現できるようになっています。Device Emulator 1.0 と同様、Device Emulator 2.0 は純粋な ARM エミュレータです。ARM エミュレータである Device Emulator 2.0 では、実際のデバイスと同じ実行可能ファイルを実行します。そのため、実際のデバイスで使用するアプリケーション実行可能ファイルとは別に Device Emulator 用に実行可能ファイルを作成および管理する必要がありません。Device Emulator 2.0 を使えば、エミュレータと実際のデバイスの両方で使える実行可能ファイル 1 セットだけで済みます。

Windows Mobile 6 SDK をインストールする際、Visual Studio 2005 によってインストール済みの Device Emulator 1.0 は自動的に Device Emulator 2.0 に置き換えられます。その結果、どの Visual Studio 2005 Windows Mobile プロジェクトでも Device Emulator 2.0 が使用されるようになり、Device Emulator 2.0 の新機能と強化機能が利用できることになります。

高速になった実行速度

アプリケーション テストで最もいらいらさせられるのは、アプリケーションの起動と実行に時間がかかることです。エミュレータの動作が引き起こす遅延を減らすため、Device Emulator 2.0 には大幅な最適化が施されています。アプリケーションはどれも同じではないため、エミュレータの最適化が個々のアプリケーションにどの程度影響を与えているかは示しにくいのですが、Device Emulator 2.0 のパフォーマンスは Device Emulator 1.0 と比べて最大 40% 向上しています。

広がったエミュレート可能デバイス

Device Emulator 2.0 では新しいデバイス フォーム ファクタが多数追加されているため、デバイスが市場に出る前でも、多彩な最新デバイス フォーム ファクタでアプリケーションの動作をテストすることができます。図 1 は、Device Emulator の新しい 320 x 320 表示のフォーム ファクタを示しています。320 x 320 表示は、Windows Mobile 6 で使用できる新しいデバイス フォーム ファクタの 1 つです。

Bb278115_aa63e23f-cdae-417c-b160-88cc0eb4198f(en-us,MSDN_10).gif

1. 新しい Windows Mobile 6 320 x 320 表示のフォーム   ファクタをエミュレートしている Device Emulator

多くの新しい Windows Mobile 6 デバイスに加えて、Device Emulator 2.0 は Pocket PC 2003SE、Smartphone 2003SE、Windows Mobile 5.0 Pocket PC および Windows Mobile 5.0 Smartphone デバイス エミュレータを引き続き提供します。図 2 は、Device Emulator での Pocket PC 2003SE と Windows Mobile 5.0 Smartphone を示しています。

Bb278115_ef364ae6-4ce8-4482-99cc-498c98bf60c6(en-us,MSDN_10).gif

2. Pocket PC 2003SE Windows Mobile 5.0 Smartphone をエミュレートしている Device Emulator

新しい Windows Mobile 6 デバイスをエミュレートしている場合でも、古いデバイスをエミュレートしている場合でも、Device Emulator 2.0 ではここで説明しているすべての新機能が使用できます。

電源状態のエミュレーション

モバイル デバイスは、長時間バッテリ電源で使用されるのがその性質上一般的で、AC 電源が使用されるのはごくまれです。バッテリの充電レベルが非常に低くなったとき、万一バッテリ全体が充電切れしてデータ損失に陥らないようアプリケーション側で適切な処理を行う必要があります。Device Emulator 2.0 では電源状態のエミュレーションが導入されており、電源状態が変化した場合のアプリケーションの対応をテストできるようになっています。

3. Device Emulator の電源状態構成コントロール  

図 3 に示すように、エミュレータ構成ダイアログ ボックスの [Battery] チェック ボックスをオンまたはオフにして、エミュレータの状態 (バッテリ電源と AC 電源) を切り替えることができます。バッテリ電源にした場合、バッテリ充電レベルも設定できます。エミュレータは指定された電源状態と充電レベルになったときのデバイスとまったく同じように反応します。Device Emulator は、該当するアイコンとメッセージを表示するほか、状態および通知ブローカ イベントを発行します。

電話プロファイルのエミュレーション

Device Emulator 2.0 では、新たにヘッドセット、スピーカーフォン、カー キットの 3 つの電話プロファイルをサポートしています。図 4 に示すように、エミュレータ構成ダイアログ ボックスで該当するチェック ボックスをオンにすることで、これらのプロファイルを有効にすることができます。プロファイルのチェック ボックスがオンに設定されていると、Device Emulator は実際にヘッドセットを差し込んだ、スピーカーフォンを有効にした、カー キットを接続したときとまったく同じように反応し、該当するすべての状態および通知ブローカ イベントの発行などを行います。

4. Device Emulator のプロファイル構成コントロール  

Cellular Emulator

現在市販されている Windows Mobile デバイスには、通常、電話およびその他の無線通信機能が備わっています。アプリケーションとこれらの通信機能との連携についてはさまざまなケースが考えられます。電話が鳴ったとき、アプリケーション側では再生中の音楽の音量を下げるだけの処理しかしない場合もあれば、通信ハードウェアと緊密に連携する高度な機能を持っていなければならない場合もあります。どちらにしても、このようなアプリケーションの構築を阻んできた大きな原因は、アプリケーションをテストすることが難しかったためです。

このようなアプリケーションのテストの難しさに対応するため、Windows Mobile 6 SDK には Cellular Emulator が含まれています。Cellular Emulator を使用すれば、Device Emulator 内からさまざまな移動体通信状況のアプリケーションをテストできます。図 5 に Cellular Emulator を示しています。

Bb278115_5c0ac702-35c3-439a-afc1-db6c5e70f334.gif

5. Cellular Emulator を使用すると Device Emulator 内から電話および通信動作をテストできる  

Cellular Emulator は、移動体通信の状態が変化したときのアプリケーションの動作をテストできる強力なツールです。Cellular Emulator では、エミュレータから発信通話を行う、着信通話を受ける、通話を中断するなどの簡単なテストを実行できます。また、SMS メッセージに対しても同様の機能を持っています。さらに複雑な機能のテストを行う開発者のために、Cellular Emulator では SIM 設定の変更および 2G ネットワークと 3G ネットワーク間のネットワーク ハンドオフのシミュレーションがサポートされています。このようなテストがすべて、実際にデバイスを使わずに行えます。

Device Emulator で Cellular Emulator を使用するには、まず、Cellular Emulator を Device Emulator と関連付ける必要があります。関連付けはとても簡単です。

  1. Cellular Emulator の左上隅に表示されている COM ポート番号を書き留めます。図 5 では COM4 です。

  2. [Emulator Properties] ダイアログ ボックスを開くには、[Device Emulator] メニューの [File] をクリックし、[Configure] をクリックします。

  3. [Emulator Properties] ダイアログ ボックスの [Peripherals] タブをクリックします。

  4. 図 6 に示すように、Cellular Emulator の COM ポート番号を [Serial Port 0] に入力します。ドロップダウン リストに COM ポート番号が表示されていない場合は、入力できます。

  5. [Emulator Properties] ダイアログ ボックスを閉じるには、[OK] をクリックします。

  6. ソフト リセットを実行するには、[File] メニューの [Reset] をクリックし、[Soft] をクリックします。

エミュレータのリセット処理が完了すると、移動体サービスが使用可能であることが表示されます。

6. Cellular Emulator COM ポート番号を入力して Device Emulator の移動体サービス   エミュレーションを有効にする  

FakeGPS

広く利用されている安価なグローバル ポジショニング システム (GPS) 装置と Windows Mobile 5.0 で導入された使いやすい GPS Intermediate Driver を組み合わすことによって、位置対応アプリケーションを簡単に開発できます。これまで、位置対応アプリケーションの開発で難しかったのが適切なテスト方法を見つけることでした。この問題も Windows Mobile 6.0 の FakeGPS ユーティリティで解決することができます。

FakeGPS ユーティリティを使用すると、アクティブな GPS デバイスまたは GPS フィードにアクセスしなくても、位置対応アプリケーションを簡単にテストすることができます。テストするには、GPS NMEA メッセージを含む簡単なテキスト ファイルを作成し、テキスト ファイルをデバイスの \Program Files\FakeGPS\GPS フォルダにコピーし、FakeGPS を有効にします。以下は、サンプルの FakeGPS 入力ファイルの一部です。

$GPGLL,4738.0173,N,12211.1874,W,191934.767,A*21
$GPGSA,A,3,08,27,10,28,13,19,,,,,,,2.6,1.4,2.3*3E
$GPGSV,3,1,9,8,71,307,43,27,78,59,41,3,21,47,0,10,26,283,40*77
$GPGSV,3,2,9,29,13,317,0,28,37,226,37,13,32,155,36,19,37,79,42*42
$GPGSV,3,3,9,134,0,0,0*46
$GPRMC,191934.767,A,4738.0173,N,12211.1874,W,0.109623,12.14,291004,,*21
$GPGGA,191935.767,4738.0172,N,12211.1874,W,1,06,1.4,32.9,M,-17.2,M,0.0,0000*75
$GPGLL,4738.0172,N,12211.1874,W,191935.767,A*21
$GPGSA,A,3,08,27,10,28,13,19,,,,,,,2.6,1.4,2.3*3E
$GPRMC,191935.767,A,4738.0172,N,12211.1874,W,0.081611,15.81,291004,,*2A

GPS Intermediate Driver と連動しながら、FakeGPS は GPS フィードを読み取る任意のアプリケーションにテキスト ファイル内のメッセージをルーティングします。FakeGPS ユーティリティは GPS Intermediate Driver と直接動作するため、プログラムを変更することなく、実際のデバイスによるアプリケーション テストと Device Emulator によるアプリケーション テストのどちらにも使用できます。FakeGPS データ フィードをアクティブにするには、FakeGPS ユーティリティで目的の入力ファイルを選択し、図 7 に示すように [Enable] オプションを選択します。

Bb278115_83b52362-ea52-4910-8212-941380164c2d.gif

7. 位置対応のアプリケーションのテストを有効にするように FakeGS フィードをセットアップする  

Security Configuration Manager

苦労して開発したアプリケーションがユーザーのデバイスへのインストールしたとたんに機能しなくなることほどつらいことはありません。エンド ユーザーのデバイスと同じセキュリティ設定でアプリケーションの実行をテストしていないのであれば、残念ながらこの状況は起こり得ます。セキュリティ関連の問題を回避する一番良い方法は、アプリケーション設計、開発、テスト プロセスの中心にセキュリティ計画を置くことです。これが Security Configuration Manager の目的です。

Device Security Manager はデスクトップ上で動作し、2 つの基本サービスを提供します。1 つ目は、Windows XP の Microsoft ActiveSync® または Windows Vista の Windows Mobile Device Center (WMDC) を介してデスクトップに現在接続されているデバイスまたはエミュレータの現在のセキュリティ設定を表示することです。表示される情報には、デバイスのセキュリティ ポリシー、セキュリティ設定の一覧、デバイスの各証明書ストアにインストールされている証明書の一覧などがあります。

もう 1 つの基本サービスは、一般的なセキュリティ ポリシーを使ってエミュレータを構成することです。これにより、実際のデバイスを使用しなくても、アプリケーションでのさまざまなセキュリティ ポリシーの効果を十分にテストすることができます。図 8 は、1 層のプロンプト セキュリティ ポリシーを使用するようにエミュレータを構成した直後の Device Security Manager を示しています。

8. エミュレータ   セキュリティ   ポリシーが更新された Security Configuration Manager

Device Security Manager を使用すると、エミュレータによるアプリケーション テストが容易になるという利点が得られるほか、さまざまなセキュリティ ポリシーでアプリケーションが期待どおりに動作することが保証されます。

Bb278115_note(en-us,MSDN_10).gif 注:

Windows Mobile セキュリティの詳細については、 「Windows Mobile Developer Center (英語)」 または 「Mobile2Market Frequently Asked Questions (英語)」を参照してください。

CabSignTool

アプリケーションの配布に先立ち、適切な証明書を使用してアプリケーションの実行可能ファイルとインストール ファイルに署名し、貴社をアプリケーション発行元として特定できるようにしておくのが一般的です。セキュリティ上の理由から、アプリケーションの実行可能ファイル (*.dll および *.exe) とアプリケーションをインストールする CAB ファイルのすべてに署名する必要があります。個々の実行可能ファイルへの署名、CAB ファイルの構築とその CAB ファイルへの署名は時間がかかる作業であり、アプリケーションが複数の実行可能ファイルで構成されている場合はさらに時間がかかります。CabSignTool ユーティリティを使えば、このように個別に署名する手間が省けるため、アプリケーションの署名プロセスを簡素化することができます。

CabSignTool ユーティリティでは、CAB ファイルとそのファイルに含まれているすべての実行可能ファイルの署名が一度で済みます。このため、ファイルへの署名を気にすることなくに、アプリケーションの実行可能ファイルを構築し、CAB ファイルを作成することができます。CabSignTool ユーティリティは、作成された CAB ファイルの内容を展開し、各実行可能ファイルに署名し、署名が付けられた実行可能ファイルを組み込んで CAB ファイルを再構築し、CAB ファイルに署名します。CabSignTool ユーティリティでは、CAB ファイルと実行可能ファイルの両方に同一の証明書を使って署名する方法と、実行可能ファイルと CAB ファイルに別々の証明書を使って署名する方法のどちらかを選択することができます。

Hopper

モバイル アプリケーションは、デバイス上で数週間または数か月間実行されたままになることがよくあります。アプリケーションがこのように長期にわたって使用されると、従来のアプリケーション テストでは検出困難な問題が発生する可能性があります。これらの問題を検出するには、アプリケーションが展開されたときに受けるストレスと同じ種類のストレスをかけてテストする必要があります。Hopper ユーティリティを使えば、このようなテストを実施することができます。

Hopper は、アプリケーション内のランダムな場所で高速にクリックするユーザーをシミュレートします。これにより、アプリケーションには多大なストレスがかかると共にアプリケーションが非構造的に使われることになり、その結果従来のアプリケーション機能テストでは容易に検出できないようなアプリケーション エラーでもあらわにしてくれます。 Hopper は単一アプリケーションのストレス テストのほか、複数のアプリケーションのストレス テストを一括して実施することができます。複数のアプリケーションをテストする場合には、各アプリケーション内でのランダム クリックに加えて、アプリケーション間をランダムに切り替えることでランダム性が強くなっています。すべてのアプリケーション テストに Hopper によるテストを含めることをお勧めします。Windows Mobile デバイスの動作が安定しているかのテストには、この Hopper が使用されています。Hopper によるテストを行うことにより、アプリケーションの安全性が確認できるだけでなく、アプリケーションによってデバイスが不安定にならないことも確認できます。

Local Server Framework

Local Server Framework は、複数のリモート サーバーと通信するモバイル アプリケーションのテストを簡素化するように設計されたツールとクラスの集まりです。モバイル アプリケーションの開発を簡素化するため、Local Server Framework では仮想ネットワークとサーバーをセットアップできるようになっており、これによってアプリケーションから発行されるネットワーク呼び出しを受信し、プログラムが期待する結果を送り返すことができます。ローカル サーバー環境を適切に制御することにより、モバイル アプリケーションの問題が社外のネットワークやサーバーの問題、あるいはプログラム内の問題のどちらに起因するかを容易に特定することができます。

サンプル

Windows Mobile 6 SDK には、便利なサンプルが用意されています。サンプルは、Windows Mobile 6 アプリケーション開発で発生する可能性のあるほとんどのトピックを網羅しており、時間を大幅に節約できる学習ツールとして役に立ちます。以下に重要なサンプルをいくつか紹介します。

UILayout

このサンプルでは、デバイス フォーム ファクタ間の違いに動的に適応するネイティブ アプリケーションの構築方法を示しています。ここでは、ドッキング、アンカー、その他の表示管理機能を組み込む方法を取り上げています。また、この表示ロジックの大半をカプセル化している ScreenLib クラスについて説明しています。ScreenLib クラスは再利用できるため、ユーザー独自のアプリケーションに容易に適応させることができます。

RingtoneManager

このサンプルでは、新しい Windows Mobile 6 サウンド API の使い方を示しています。

BasicRecognition、InkNotes、InkSerialization

これらのサンプルでは、WISP Lite API の各種使用方法を示しています。取り上げているトピックには、インク ベースで入力されたテキストを認識する、アプリケーション内でインク ベースの入力を使用する、インクをファイルとして保存する、などがあります。

GPS

このサンプルでは、マネージ アプリケーション内から GPS Intermediate Driver にアクセスする方法を示しています。サンプルには、マネージ アプリケーションからのネイティブ呼び出しを抽象化するのに必要なラッパー メソッドがすべて含まれています。

.NET Compact Framework 2.0

すべての Windows Mobile 6.0 デバイスの ROM には .NET Compact Framework 2.0 SP1 が含まれています。このため、アプリケーションと一緒に .NET Compact Framework 2.0 ランタイムを展開しなくても、.NET Compact Framework 2.0 が提供する豊富な機能および .NET Compact Framework 1.0 からさらに進化した多数の機能をフルに活用することができます。.NET Compact Framework 1.0 アプリケーションも Windows Mobile 6 デバイスの方が今まで以上に適切に動作できます。これは、.NET Compact Framework 1.0 アプリケーションが .NET Compact Framework 2.0 と完全な互換性があり、プログラムを変更しなくても Windows Mobile 6 デバイスで動作し、したがって .NET Compact Framework 2.0 で強化された機能をフルに活用できるからです。.NET Compact Framework 2.0 で強化された機能は多数ありますが、特に開発者の生産性の向上、完全な .NET Framework との忠実性の向上、およびデバイス機能のサポートの強化に重点が置かれています。以下に .NET Compact Framework 2.0 の重要な機能をいくつか紹介します。

強化されたユーザー インターフェイス機能

.NET Compact Framework 2.0 では全体にわたってさまざまな強化が行われていますが、最も気付きやすいのはユーザー インターフェイス関連の機能です。

Windows フォーム コントロール

コントロールは、アプリケーション インターフェイスを構築するブロックです。アプリケーションの使い勝手は、そのアプリケーションで使用可能なコントロールが適切に利用されているかどうかで大きく変わってきます。.NET Compact Framework 2.0 には新しいコントロールが多数用意されています。この新しいコントロールは、アプリケーションのユーザー インターフェイス設計を簡素化し、ユーザー エクスペリエンスを向上させるのに役立ちます。

MonthCalendar コントロールと DateTimePicker コントロール

.NET Compact Framework 2.0 の新しいコントロールとして、データ ベースの情報を表示および入力するためのコントロールとして MonthCalendar コントロールと DateTimePicker コントロールが導入されています。図 9 に両コントロールを示します。MonthCalendar コントロールは、アプリケーションにカレンダーの外観を含めておき、フォーム上に常に表示させる場合に便利です。DateTimePicker コントロールは、モバイル デバイスの小さいディスプレイ サイズで表示するのに適しています。この場合、日付と時刻の情報は TextBox コントロールと同様に表示されますが、ユーザーがデータを入力する必要があるときはカレンダー全体が表示されます。

Bb278115_7b76f767-854c-493c-a95b-ba0f3e564cf3_en-us_MSDN_10.gif

9. MonthCalendar コントロールと DateTimePicker コントロール  

WebBrowser コントロール

多彩な HTML ベースの表示機能を組み込むアプリケーション向けとして、.NET Compact Framework 2.0 には図 10 に示している WebBrowser コントロールがあります。WebBrowser コントロールが提供する多数のイベントにより、アプリケーションはユーザーと WebBrowser コントロールのコンテンツ間のやり取りを追跡することができます。必要ならば、アプリケーションはユーザーのやり取りが発生したときにカスタム動作を実行することも可能です。

Bb278115_ce06f501-ce7f-47ba-b9c5-be8d348aae1a.gif

10. Windows Live モバイル検索ページを表示している WebBrowser コントロール  

Notification コントロール

新しいコントロールの中でも一番興味を引くのが Notification コントロールです。この Notification コントロールを使用すると、ユーザーの現在のアクティビティのコンテキストを変更することなく、ユーザーへのメッセージを表示できます。Notification コントロールでは、Windows Mobile デバイスで低バッテリ メッセージが表示されるときと同じようなポップアップ形式バルーンを使用してメッセージを表示します。

その他のコントロール

ここでは、.NET Compact Framework 2.0 のコントロールのほんの一部しかまだ紹介していません。.NET Compact Framework 2.0 には、StatusBar コントロール、Smartphone 用の DataGrid コントロール、UserControl から派生したカスタム コントロールなど、ここで紹介したコントロール以外にも数多くのコントロールが用意されています。

デバイス フォーム ファクタの違いのサポート

Windows Mobile デバイスにはさまざまなフォーム ファクタがあり、常に新しいフォーム ファクタが登場しています。アプリケーションが Windows Mobile デバイス ファミリのどのデバイス上でも正しく動作するには、デバイス ディスプレイのサイズ、形状、解像度の違いに適応するようにアプリケーション ユーザー インターフェイスを設計する必要があります。このようなデバイスの違いに対応するには細々とした作業が必要になりますが、.NET Compact Framework 2.0 には簡単に適応可能なアプリケーション ユーザー インターフェイスを作成できる新機能が用意されています。

これらの新機能のうち、最も重要なのがコントロールのドッキングとコントロールのアンカーです。コントロールのドッキングとコントロールのアンカーは、表示領域が変化するとコントロール側ではどのように動作すべきかについて既定動作を提供できるため、アプリケーション ユーザー インターフェイスの適応性がさらに広がります。

コントロールのドッキングは、コントロールをその親コントロールの端に揃えます。たとえば、親の左端とドッキングするようにコントロールを構成した場合、図 11 に示すように、コントロールは親コントロールの左端に配置され、親コントロールの左端に沿った領域全体を埋めます。デバイス フォーム ファクタの違いによって親コントロールのサイズが変化すると、ドッキングされたコントロールのサイズは自動的に変更され、親コントロールの左端に揃うように保たれます。

Bb278115_67755234-cbab-4d75-a60b-2cf2d6d9cf9c.gif

11. 親コントロールの上端にドッキングされたコントロールが縦と横方向のディスプレイに表示されているところ  

アンカーされたコントロールの 1 つ以上の端は、親コントロールの対応する端から一定の距離を保ちます。デバイス ディスプレイのサイズが変化すると、コントロールのサイズに応じて (かつ必要ならば) 位置が自動的に調整され、アンカーされた端は親コントロールの端から指定された距離を保ちます。図 12 は、親コントロールの左、右、下の端にアンカーされた TextBox コントロールです。

Bb278115_6115dd90-b1c5-429f-8daf-2c22e77f83a0.gif

12. 親コントロールの左、右、下の端にアンカーされたコントロールが縦と横方向のディスプレイに表示されているところ  

場合によっては、アプリケーションがデバイスの表示領域のサイズの違いに対応してコントロールのサイズや位置を変更するのが現実的ではない場合もあります。現実的でないのは、アプリケーションに多数のコントロールがあり、サイズを変更すると小さくなりすぎてユーザーが適切に操作できなくなる可能性がある場合です。この場合には、ユーザーがアプリケーションの表示領域をスクロールして、表示領域の外側にあるコントロールを表示できるようにするのが適切な解決策です。.NET Compact Framework 2.0 では、アプリケーションにスクロールを組み込むために特別な処理を行う必要がありません。.NET Compact Framework 2.0 では、アプリケーションが表示される際にディスプレイ サイズが小さいために表示領域から外れてしまっているコントロールがあるかどうかを自動的に検出し、必要に応じてアプリケーション フォームにスクロール バーを追加します。また、.NET Compact Framework 2.0 ではすべてのスクロールバー処理が提供されるため、アプリケーション側で特別な処理をする必要がなく、ユーザーはフォームをスクロールして表示されていなかったコントロールを表示させることができます。

デバイスには、ディスプレイ サイズの違いのほかにも、ディスプレイの解像度の違いがあります。ディスプレイの解像度の違いが考慮されていないと、96 dpi 用に設計されたアプリケーションが 192 dpi デバイスで表示されるととても小さくつぶれたように見えます。アプリケーションのコントロールを適切に表示するには、新しいディスプレイ解像度に合わせてコントロールをスケーリングする必要があります。.NET Compact Framework 2.0 では、設計上の解像度とランタイムの解像度の違いに対応してすべてのコントロールをスケーリングするため解像度の違いに関連する処理がとても簡単にできます。

キーボードとのやり取りとキーボード ベースのナビゲーション

.NET Compact Framework 2.0 で重要な機能強化点の 1 つに、キーパッドまたはキーボードを持つデバイスのサポートがあります。.NET Compact Framework 2.0 では、すべてのコントロールが KeyUp、KeyDown、KeyPress イベントを受け取れるようになったため、アプリケーションにカスタム キーボード処理を組み込むことができます。新たに追加された Form.KeyPreview プロパティを使用することにより、キーボード イベントをそれぞれのコントロールに送信するかどうか、またはコントロールを構成するフォームにすべてのコントロール キーボード イベントを送信するかどうかを選択することもできます。

.NET Compact Framework 2.0 では、コントロールをタブ ストップとして設定することや、コントロールをタブ オーダーとして設定できるようになっています。これにより、キーボード対応デバイスを使用するユーザーは、スタイラスを使用しなくても、タブ キーを使用してアプリケーション コントロール間を移動することができます。

強化されたデータ機能

LOB アプリケーションは、本質的にデータの管理と操作に多大な時間を必要とします。LOB アプリケーション開発者にとって、効率的で使いやすいデータ クラスは必須です。Windows Mobile 6 では、SQL Server Compact Edition が ROM に組み込まれており、LOB アプリケーション開発者が必要とするすべてのリレーショナル データベース サポート機能を備えています。ROM に SQL Server Compact Edition が組み込まれているため、アプリケーションの展開時にデータベース インストール コンポーネントを含める必要がなく、ローカルにインストールされたリレーショナル データベース SQL Server Compact Edition の機能を活用することができます。

DataSet クラスと SQL Server Compact Edition を使用してリレーショナル データを操作する場合でも、また XML クラスを使用して階層データを操作する場合でも、.NET Compact Framework 2.0 の使いやすくて効率的で機能満載のクラスによってプログラミング作業が削減され、同時にアプリケーションのパフォーマンスを向上できます。

BB278115_NOTE.GIF 注:

ここで説明しているさまざまな優れた新機能に加え、強化されたデータ クラスの実行時パフォーマンスについては、「向上したパフォーマンスとリソース管理の効率性」を参照してください。

リレーショナル データ

.NET Compact Framework 2.0 が提供するリレーショナル データ クラスのうち、アプリケーションに最も影響するのは SqlCeResultSet クラスです。SqlCeResultSet クラスでは、SQL Server Compact Edition データベースに対して更新可能でスクロール可能なカーソルが直接使えます。SqlCeResultSet クラスは、DataSet クラスのように大容量のデータベース データをメモリ内に複製するのではなく、SQL Server Compact Edition データベース エンジンに直接作用するため、データを複製することなくデータの更新やカーソル スクロールが可能です。

SqlCeResultSet クラスのアーキテクチャでは、アプリケーションに消費されるメモリ量が Dataset クラスと比較して大幅に少なくなります。通常、SqlCeResultSet を使用した場合にはアプリケーションに必要なメモリ容量が数 MB 削減できます。メモリ消費が削減されるだけでなく、SqlCeResultSet クラスは DataSet クラスよりはるかに高速です。一般に、SqlCeResultSet のパフォーマンスは、DataSet クラスの 4 倍~6 倍になります。

XML

.NET Compact Framework 2.0 では、XML ベースのデータの操作についても機能拡張が行われています。この機能拡張により、XML API の操作が簡素化され、XML API と完全な .NET Framework の機能との整合性が向上しています。これらの機能拡張の一環として、.NET Compact Framework 2.0 では、XML クエリ言語である XPath のサポートが追加されています。XPath により、XML データ内の移動に必要なプログラミングの量が大幅に削減され、ほとんどの場合、明示的なナビゲーション API を使用するよりも効率的に XML データ内を移動できます。XmlSchema クラスおよびそれに関連するクラスも追加されており、XML スキーマをプログラムから操作および作成することができます。

ユーザーから頻繁に要求されていた機能に XML シリアル化がありましたが、これも使用できるようになりました。.NET Compact Framework 2.0 には、XmlSerializer クラスのほかに、XmlElement クラスや XmlAttribute クラスなどの関連クラスが含まれています。これらのクラスが追加されたため、アプリケーション オブジェクトを XML として保存したり、復元することが簡単にできます。

この新しい XmlSerializer クラスは、.NET Compact Framework 1.0 で使用されていた Web サービス XML シリアル化実装に置き換わる機能です。すべての Web サービス XML シリアル化と逆シリアル化が、新しい XmlSerializer クラスを使って実行されるようになりました。新しい XmlSerializer クラスは、.NET Compact Framework 1.0 の Web サービス XML シリアル化実装より常に 2 ~ 3 倍高速です。この新しい XmlSerializer クラスのおかげで、.NET Compact Framework 2.0 アプリケーションから Web サービス呼び出しにかかる時間が、.NET Compact Framework 1.0 アプリケーションからの呼び出し時間に比べて大幅に短縮されます。

向上したパフォーマンスとリソース管理の効率性

Windows Mobile 6 では、ROM に .NET Compact Framework 2.0 を組み込まれているため、マネージ アプリケーションのパフォーマンスが向上しています。.NET Compact Framework 2.0 のパフォーマンスは .NET Compact Framework 1.0 のパフォーマンスに比べて大幅に向上しています。このパフォーマンスの向上は、アプリケーション リソースの回復を含め、実質上アプリケーション実行に関連するすべての領域に影響しています。

パフォーマンスの向上を目指し、.NET Compact Framework 2.0 ランタイムに対して徹底的な調査が行われ、作り直しが施されました。この作業は期待どおりの効果を上げることができました。パフォーマンスの向上が特定のアプリケーションにどのように影響するかを見極めるのは困難なことですが、.NET Compact Framework 2.0 ランタイムの多くの領域で、動作速度が .NET Compact Framework 1.0 の約 1.5 倍になりました。その他の領域ではさらに動作速度が向上しており、メソッドのディスパッチ (仮想および非仮想) は .NET Compact Framework 1.0 の約 2.5 倍になっています。

ランタイム全体のパフォーマンスの向上に加え、データ クラスのパフォーマンスの向上にも特別な注意が払われました。.NET Compact Framework 2.0 の DataSet クラスは、.NET Compact Framework 1.0 バージョンより 3 ~ 4 倍速くデータを読み込みます。XmlTextReader クラスでも同様の拡張が施されており、.NET Compact Framework 1.0 より約 3 倍速く XML ファイルのコンテンツを読み取ることができます。

いろいろなランタイム パフォーマンスの向上のほかに、.NET Compact Framework 2.0 ではガベージ コレクタ内のパフォーマンスが大幅に向上しています。一般に、.NET Compact Framework 2.0 のガベージ コレクタは、.NET Compact Framework 1.0 の 7 倍以上の速度でメモリを回復します。大きなオブジェクトの割り当ては通常のメモリ割り当てとは別に管理および回復されるため、.NET Compact Framework 2.0 ガーベジ コレクタは、十分高速だった .NET Compact Framework 1.0 ガーベジ コレクタよりも 4 倍以上も高速になっています。表 3 は、.NET Compact Framework 2.0 で向上したパフォーマンスを示しています。

3. 強化された .NET Compact Framework 2.0 のパフォーマンスの .NET Compact Framework 1.0 との比較  

タスク

.NET CF 2.0 と .NET CF 1.0 とのパフォーマンスの比較

全体的なランタイム実行

1.5 倍高速 (平均)

メソッドのディスパッチ

2.5 倍高速

DataSet の読み込み

3 ~ 4 倍高速

XmlTextReader の読み取り

3 倍高速

ガーベジ コレクタのメモリ回復

7 倍高速

ガーベジ コレクタの大きなオブジェクトの回復

4 倍高速

.NET Compact Framework 2.0 アプリケーションは .NET Compact Framework 1.0 アプリケーションよりもパフォーマンスが向上しますが、さらに Windows Mobile 6 デバイスで実行すると以前の Windows Mobile デバイスで実行する場合に比べて 25% も速く起動します。Windows Mobile 6 で起動時間が短縮されるのは、.NET Compact Framework 2.0 がデバイスの ROM にインストールされているためです。デバイスの ROM に .NET Compact Framework 2.0 が組み込まれているだけで、デバイスの RAM に .NET Compact Framework 2.0 をインストールした場合よりアプリケーションの起動時間が 25% も短縮されます。

これらのパフォーマンスの向上はいずれも高速で応答性のよいアプリケーションでユーザーを喜ばせますがそれだけではありません。待つ時間が減るため、アプリケーション開発が迅速に行えるようにもなるのです。アプリケーションは高速に起動し、高速に実行し、アプリケーション テストの結果も高速に得られます。

再設計されたネイティブ コードの相互運用性

.NET Compact Framework 2.0 には、.NET Compact Framework 1.0 よりも多くの新機能が追加されています。多くの機能が追加されているため、.NET Compact Framework 2.0 アプリケーションは .NET Compact Framework 1.0 アプリケーションに比べてはるかに多くの作業をマネージ コードだけで行うことができます。新しい機能が多く追加されてはいますが、マネージ アプリケーションがネイティブ コードとやり取りすることが必要になることもあります。.NET Compact Framework 2.0 では、.NET Compact Framework 1.0 に比べてネイティブ コードとの相互運用性が大幅に強化されているため、マネージ アプリケーションのネイティブ コードとのやり取りが簡素化され、分かりやすくなっています。

.NET Compact Framework 2.0 ではコンポーネント オブジェクト モデル (COM) のサポートが追加されており、マネージ アプリケーションから COM コンポーネントを直接呼び出せるようになっています。.NET Compact Framework 1.0 の場合とは異なり、COM オブジェクトをアクセス可能にするカスタム ネイティブ ライブラリを作成する必要がありません。

ネイティブ コード マーシャリング層がさまざまなデータ型をサポートするよう強化されています。.NET Compact Framework 1.0 にはデータ マーシャルに関して制限がありましたが、そのほとんどがなくなっています。特別なプログラミング作業をしなくても、ほとんどのパラメータがマネージ アプリケーションからネイティブ コードに直接渡せます。たとえば、文字列や配列などの埋め込み型を含むクラスや構造体などがパラメータとして渡せます。また、.NET Compact Framework 2.0 では MarshalAs 属性を使用してパラメータのマーシャリングをカスタマイズすることも可能です。

ウィンドウ ハンドルが必要なネイティブ関数を扱う開発者のために、すべての .NET Compact FrameWork 2.0 Windows フォーム コントロールに Handle プロパティが用意されています。Handle プロパティは、コントロールの基になっているウィンドウのネイティブ ウィンドウ ハンドルを表し、ウィンドウ ハンドルを要求するネイティブ メソッドに渡すことができます。

SQL Server 2005 Compact Edition

すべての Windows Mobile 6 デバイスの ROM に、エンタープライズ級のリレーショナル データベースである SQL Server Compact Edition が組み込まれています。これは Pocket PC デバイスと Smartphone デバイスのどちらにも当てはまります。ROM に SQL Server Compact Edition がインストールされているため、アプリケーション展開にデータベース インストール コンポーネントを含める必要がなく、アプリケーションはローカルの完全なリレーショナル データベースである SQL Server Compact Edition をフルに活用することができます。この結果、展開に関わるサポート時間とコストが削減されます。

注意

SQL Server 2005 Mobile Edition を使って作成されてた既存のデータベース ファイルは、SQL Server 2005 Compact Edition と完全な互換性があるため変更なしで使用することができます。

豊富な機能

SQL Server Compact Edition は豊富な機能を備えたリレーショナル データベースであり、内部結合、外部結合、サブクエリなどの完全な SQL 構文が使用できます。SQL Server Compact Edition ではトランザクション レベルで完全な整合性が保証されるため、アプリケーション クラッシュやデバイス電源が完全に断たれるような事態になってもデータベースは矛盾のない状態に維持されています。SQL Server Compact Edition にはレコード レベル、ページ レベル、データベース レベルのロック機能があり、複数のスレッドまたはアプリケーションから同時にアクセスあるいは更新されてもデータベースの整合性が保証されます。LOB アプリケーション向けの重要な機能として、SQL Server Compact Edition には最大 4 GB のデータベース サポートを提供しています。

今までのスキルが使える

SQL Server Compact Edition では SQL Server 2005 SQL の多彩な機能のサブセットが実装されているため、既存の SQL Server スキルをフルに活用することができます。また、SQL Server Compact Edition にはマネージ アプリケーション用の ADO.NET ライブラリとネイティブ アプリケーション用の OLEDB ライブラリが用意されているため、既存のデータベース プログラミング スキルもフルに活用できます。どちらのライブラリも、SQL Server 2005 に含まれている ADO.NET ライブラリと OLEDB ライブラリとそれぞれ整合性が保たれています。

SQL Server Compact Edition は、SQL Server Management Studio と Visual Studio 2005 と完全に統合されています。SQL Server Management Studio では、新しい SQL Server Compact Edition データベースの作成、データベース オブジェクトの表示、テーブルの作成、テーブルの変更、対話型クエリの実行を行うことができます。図 13 は、SQL Server Compact Edition データベースのテーブル、テーブル列、テーブル インデックスの一覧を表示している SQL Server Management Studio を示しています。

Bb278115_34627489-beed-465d-b55a-31fc17ae0b0f.gif

13. SQL Server Compact Edition のデータベース   テーブル、テーブル列、テーブル   インデックスを表示している SQL Server Management Studio

Visual Studio 2005 は SQL Server Compact Edition を完全にサポートしており、SQL Server Compact Edition 以外のデータベースでも使えるデータ指向機能を備えています。Visual Studio 2005 を使用すると、データ ソースとして SQL Server Compact Edition データベースをプロジェクトに追加することができます。SQL Server Compact Edition をデータ ソースとして追加した場合の Visual Studio 2005 の動作は、SQL Server 2005 データベースをデータ ソースとして追加した場合と同じです。つまり、厳密に型指定された DataSet 派生クラスを生成し、そのデータベース テーブルを Visual Studio 2005 データ ソース ウィンドウに追加します。SQL Server 2005 の場合と同様、データ ソース ウィンドウのテーブルや列はアプリケーション フォームにドラッグすることが可能で、ドラッグすると適切なコントロールとデータ バインド コードが自動的に生成されます。図 14 は、SQL Server Compact Edition データベースのテーブルを表示しているデータ ソース ウィンドウを示しています。

Bb278115_da950bf0-72a7-4a19-9b7b-478c10632a54.gif

14. SQL Server Compact Edition データベースのテーブルを表示している Visual Studio 2005 のデータ   ソース   ウィンドウ  

Visual Studio 2005 サーバー エクスプローラを使って Sql Server Compact Edition データベースを開けば、データベース コンテンツを対話的に参照することができます。また、サーバー エクスプローラでデータベース テーブルを開き、レコードを表示、追加、変更、削除することもできます。

データ同期のビルトイン サポート

モバイル LOB アプリケーション設計で最も重要な問題がデータ同期の方法です。エンタープライズ データベースからデータをモバイル デバイスに初めてコピーしたときには、デバイスとエンタープライズ データベースは同じ情報を持っています。しかし、まもなく 2 つのデータベースの情報には差異が生じます。ユーザー側の操作により、デバイスのデータが変更されることがあります。同様に、エンタープライズ側での操作により、エンタープライズ データベースが変更される可能性があります。アプリケーションでデバイス データベースとエンタープライズ データベースを同期し、2 つのデータベースを同じ状態に戻す方法を決定する必要があります。

すべてのアプリケーションに適している方法はありません。そのため、SQL Server Compact Edition ではすぐに使えるデータ同期メカニズムを複数サポートしています。SQL Server Compact Edition では、情報収集ユーティリティである メーター リーダーのようにデータ変更のほとんどがデータのデバイス コピーに適用されるアプリケーション向けにリモート データ アクセス (RDA) を用意しています。RDA は、デバイス データベースに適用された変更を追跡し、後で同じ変更をエンタープライズ データベースに適用することで同期を行う軽量のデータ同期ユーティリティです。これよりもっと複雑なシナリオのために、SQL Server Compact Edition ではマージ レプリケーションを用意しています。マージ レプリケーションは、データのデバイス コピーとエンタープライズ コピーに加えられる変更を追跡する協調型のデータ同期ユーティリティです。データの同期は、デバイス データベースとエンタープライズ データベースがそれぞれのデータ変更履歴を交換することで行われます。マージ レプリケーションにはデータ同期プロセスの一部として変更調停フェーズがあり、このフェーズでデバイス データベースとエンタープライズ データベースの変更が確認され、交換すべきデータが明確に特定されます。変更調停フェーズでは、競合した可能性のあるデータ変更が自動的に検出され、適切な対処が施されます。マージ レプリケーションの場合、競合している変更に対する処理は完全に構成可能でカスタマイズもできます。マージ レプリケーションには、バックグラウンドでのデータ同期 (非同期レプリケーションとも呼ばれます)、進捗イベントなど、RDA では使用できない一部の高度なデータ同期機能も備えています。バックグラウンドでのデータ同期機能を使うと、マージ レプリケーション プロセスをバックグラウンド スレッド上で実行することができます。これによりメイン アプリケーション スレッドが使用されないため、応答性の高いユーザー インターフェイスを維持することができます。進捗イベントを使うことにより、アプリケーションは各テーブルの変更を交換するタイミングや変更調停フェーズの進捗状況などデータ同期プロセスの状態を定期的に更新することができます。

RDA とマージ レプリケーションはどちらも、Web サーバーでデータ同期プロセスを実行します。データ変更は HTTP (Hyptertext Transfer Protocol) または HTTP (Hypertext Transfer Protocol Secure) で送信されます。Web サーバーでデータ同期を実行するため、接続が WiFi のように高速であっても、また移動体通信接続のように低速であっても、デバイスがインターネットに接続さえできればいつでも SQL Server Compact Edition データベースとエンタープライズ データベースを同期させることができるため、柔軟性が大幅に向上しています。

データがエンタープライズ データベースではなくユーザーのデスクトップ コンピュータ上の個々のデータベースに格納されているアプリケーション環境向けとして、SQL Server Compact Edition では SQL Server Compact Edition Access Database Synchronizer (ADS) が用意されています。ADS を使用すると、ユーザーのデスクトップにある Access データベースのデータをデバイス上の SQL Server Compact Edition データベースに読み込むことができます。SQL Server Compact Edition データベースは、デバイス データベースの変更を自動的に追跡します。変更が発生した後にデバイスにクレードルを接続すると、SQL Server Compact Edition はデバイス データベースの変更内容を ADS を使用して Access データベースに適用します。

セキュリティ

モバイル デバイスをいろいろな場所で使用するには、各種セキュリティ保護策を実践し、重要な情報が危険にさらされないようにする必要があります。SQL Server Compact Edition データベースのデータをセキュリティ保護するため、SQL Server Compact Edition ではデータベースのパスワードによる保護とデータベース コンテンツの暗号化をサポートしています。パスワードによる保護とデータベースの暗号化は、データベースの作成時に簡単に行えます。以下は、C ドライブに SafeData.sdf というデータベースを作成し、パスワードを P@ssw0rd に設定し、すべてのデータを暗号化するようにデータベースを構成する SQL ステートメントです。

Create Database "c:\SafeData.sdf" databasepassword 'P@ssw0rd' encryption on

データベースに格納されるデータはすべて暗号化されます。データベース コンテンツにアクセスするには、正しいパスワードを入力してデータベースを開く必要があります。次の例は、C# プログラムでパスワード保護および暗号化されたデータベース ファイルを作成する方法を示しています。

SqlCeEngine dbEngine = 
  new SqlCeEngine(@"data source=\My Documents\SafeData.sdf;password=P@ssw0rd;encrypt database=TRUE");
dbEngine.CreateDatabase();

データベース コンテンツをセキュリティ保護するほか、SQL Server Compact Edition では RDA またはマージ レプリケーションでエンタープライズ データベースと同期する際のデータ交換もセキュリティで保護されます。RDA とマージ レプリケーションのどちらを使用する場合でも、インターネット経由でバックエンド データベースとの間で交換する変更履歴データを HTTPS で暗号化することができます。

AJAX

Windows Mobile 6 には、ベーシックな AJAX アプリケーションの実行に必要な XML DOM と JavaScript をサポートしている Microsoft Internet Explorer® Mobile の最新バージョンが含まれています。これにより、ユーザー自身の ASP.NET、XML、JavaScript に関するスキルを活用すれば、Windows Mobile 6 デバイスで動作するブラウザ ベースのリッチなアプリケーションを構築できます。

BB278115_NOTE.GIF 注:

Windows Mobile 6 SDK Refresh (2007 年 5 月 1 日リリース予定) には、ベーシックな AJAX アプリケーションをサポートする Windows Mobile 6 エミュレータ イメージが含まれます。

アプリケーション展開の簡素化

アプリケーションは、エンド ユーザーに展開してもらって初めて成功したといえます。アプリケーションの展開と展開のサポートには長い時間がかかるのが普通であり、そのために新機能やアプリケーション開発に割ける時間に多大な影響を与えることがあります。Windows Mobile 6 にはアプリケーション展開の管理とサポートに必要な時間と労力を削減する機能拡張が多数組み込まれています。これらの機能拡張により、アプリケーション展開全般のコストが削減されます。アプリケーション展開の管理とサポートにかかる時間が減るため、アプリケーションへの新機能の追加や新しいアプリケーションの作成により多くの時間を割り当てることができます。

インストールするソフトウェアが少なくて済む

すべての Windows Mobile 6 デバイスの ROM に .NET Compact Framework 2.0 SP1 と SQL Server 2005 Compact Edition が組み込まれているため、Windows Mobile 6 ではマネージ アプリケーションとネイティブ アプリケーションのどちらを展開する場合も簡単です。.NET Compact Framework 2.0 SP1 と SQL Server Compact Edition が ROM にインストールされていることでアプリケーション展開が大幅に簡素化され、ユーザー サポートのレベルを下げてもエンド ユーザーはアプリケーションを適切にインストールできます。

ROM に .NET Compact Framework 2.0 SP1 と SQL Server Compact Edition を組み込むことで多数のメリットが得られます。具体的には、これらのコア ソフトウェア コンポーネントが常にあり、常に正しくインストールされていることが保証されている、適切に定義済みのターゲット プラットフォームが得られます。アプリケーション インストール パッケージにはアプリケーション コンポーネントしか含まれないため、全体のサイズが小さくて済みます。インストール パッケージが小さいため、ダウンロード時間やインストール時間が短くなり、アプリケーションの配布やアプリケーション更新の配布が簡素化されます。インストール時間とダウンロード時間が短縮されるため、ユーザー エクスペリエンスも向上することになります。

ユーザー、展開、サポート エクスペリエンスの向上に加え、.NET Compact Framework 2.0 SP1 と SQL Server Compact Edition をデバイス ROM にインストールすることで、アプリケーションのランタイム環境も向上しています。.NET Compact Framework 2.0 SP1 と SQL Server Compact Edition がデバイス ROM に含まれるため、デバイス RAM が占有されません。RAM にインストールされるソフトウェアが少なくなることで、アプリケーションがデータ格納に使用できる RAM 容量が増えています。

URL ベースでの展開をサポート

Windows Mobile 6 の Internet Explorer にベーシックな AJAX のサポートが追加されたことにより、アプリケーションの配布に関して新たな可能性が生まれました。AJAX ベースのソリューションが最適となるアプリケーション シナリオでは、電子メールで適切な URL をユーザーに送信するだけでアプリケーションを展開することができます。メールを受け取ったユーザーは、Internet Explorer Mobile を使用して送られてきた URL を参照するだけです。Internet Explorer Mobile にはベーシックな AJAX プログラムの実行に必要なものがすべて含まれているため、デバイスに別途ソフトウェアをインストールする必要がありません。

簡素化されたコード署名

Windows Mobile のセキュリティ戦略の主な特徴は、アプリケーション実行可能ファイルとインストール ファイルの署名に証明書が使用されることです。大規模なアプリケーションでは、アプリケーションおよび実行可能ファイルとインストール ファイルに適切に署名するプロセスは単調でつまらない作業となる場合があります。既に説明した新しい CodeSignTool ユーティリティを使用すれば、必要なファイルすべての署名が単一コマンドで実行できるため、アプリケーション インストール ファイルへの署名に必要な労力が大幅に削減されます。

各種デバイスで動作する単一アプリケーションの構築

Windows Mobile デバイスには高い柔軟性と強力なプログラマビリティがあるため、多数のユーザーがさまざまな目的のために使用するようになりました。多様な使い方があるため、すべてのユーザーに適するようなデバイス フォーム ファクタはありません。Windows Mobile デバイスでは、このように広範囲のユーザーに対応するため、さまざまなフォーム ファクタが使用できるようになっています。表 4 は、一般的に使用されている Windows Mobile デバイス フォーム ファクタです。

4. 一般的な Windows Mobile デバイス   フォーム   ファクタ  

サイズ

解像度

タッチ スクリーン

176 x 220

96 dpi

なし

240 x 320

131 dpi

なし

320 x 240

131 dpi

なし

320 x 320*

128 dpi

あり

240 x 320 / 320x240

96 dpi

あり

480 x 640/640 x 480

192 dpi

あり

240 x 240

96 dpi

あり

480 x 480

192 dpi

あり

*Windows Mobile 6 で新しく追加されたサイズ

さまざまなフォーム ファクタが使用できるため、アプリケーションを構築する際にはデバイス フォーム ファクタの違いに適応できるようにする必要があります。Windows Mobile デバイスがサポートするフォーム ファクタは常に拡張されているので注意してください。Windows Mobile 6 の新機能およびリソースには、フォーム ファクタの違いに容易に適応するアプリケーションの構築作業を削減するものが多数含まれています。Windows Mobile 6 を使用すると、各デバイスの特定の機能を活用しながら、さまざまなデバイス フォーム ファクタ上で正常に動作する単一アプリケーションをこれまでよりも簡単に構築することができます。

BB278115_NOTE.GIF 注:

320 x 320 表示のフォーム ファクタには、新しい解像度のほかに、以前のフォーム ファクタとはわずかに異なる表示領域が導入されています。アプリケーション テストには、この新しいフォーム ファクタを必ず含めるようにしてください。テストしていない場合、このフォーム ファクタを採用しているデバイスではほかのフォーム ファクタと違っているためにアプリケーションの表示に問題が発生する可能性があります。

セキュリティに関するベスト プラクティスを実施

最初の Windows Mobile Pocket PC デバイスには、デバイス セキュリティがほとんど実装されていませんでした。プラットフォームが成長するにつれ、プラットフォームは次第にセキュリティで保護されるようになってきました。Windows Mobile プラットフォームのセキュリティを強化する傾向は、今後も続きます。将来の Windows Mobile バージョンとの互換性の問題を最小限に抑えるため、現在のアプリケーションに組み込んでおくべきセキュリティに関するベスト プラクティスを紹介します。

  • アプリケーションは、アプリケーション実行可能ファイルが配置されているフォルダまたは [マイ ドキュメント] フォルダ以外には書き込みを行いません。将来、これら以外のフォルダに書き込むのに特別な権限が必要になるかもしれません。

  • レジストリに書き込む際は、HKEY_CURRENT_USER ハイブ以外には書き込みを行いません。ファイル システムと同様、レジストリの HKEY_CURRENT_USER ハイブ以外の領域で、将来特別な権限が必要となるかもしれません。

デバイスが違っても使用できる API セット

Windows Mobile デバイスには、すべての Windows Mobile デバイスで一様に使用できる API セットがあります。この API セットは、すべての Windows Mobile デバイスで動作する単一のアプリケーション実行可能ファイル構築を実現するために欠かせない要素です。Win32® API と .NET Compact Framework 2.0 は、どちらもすべての Windows Mobile デバイス間で使用できる包括的な API セットです。一様な API セットがあるため、デバイス タイプごとに個別に実行可能ファイルを管理および配布する必要性が軽減されます。

唯一考慮しなければならないのが、デバイス ディスプレイです。以降は、デバイス ディスプレイに焦点を当てながら説明していきます。

デバイス エミュレーション

Device Emulator は、さまざまなデバイス フォーム ファクタで正しく動作するアプリケーションを開発する上で最も重要なツールの 1 つです。Device Emulator を使えば、デバイス フォーム ファクタを持つ物理デバイスにアクセスしなくても、さまざまなデバイス フォーム ファクタについてアプリケーションをテストすることができます。Visual Studio 2005 と Windows Mobile 6 SDK には合計で 25 以上のエミュレータ イメージが用意されているため、さまざまなデバイス フォーム ファクタでのアプリケーションの動作を完全にテストできます。Device Emulator がサポートしているデバイス フォーム ファクタの例については、図 15 を参照してください。

15. Device Emulator のフォーム   ファクタの例  

Visual Studio 2005 デザインタイム サポート

Visual Studio 2005 フォーム デザイナには、アプリケーション ユーザー インターフェイスを迅速かつ簡単に構築するためのメカニズムがあります。Visual Studio 2005 フォーム デザイナを使用すると、フォームの外観の作成および変更が可能であるほか、作成または変更した結果を直ちに確認することができます。このデザインタイムでの WYSIWIG エクスペリエンスは、静的ユーザー インターフェイスのアプリケーションにとどまりません。Visual Studio 2005 フォーム デザイナは、フォーム ファクタに対応しているため、アプリケーション フォームの外観をさまざまなフォーム ファクタで表示することができます。さまざまなフォーム ファクタの影響を確認するのにアプリケーションを実行する必要がないため、確認時間が大幅に短縮されます。

縦向きから横向きに回転したときにフォームがどのようにレンダリングされるかを確認するには、フォームを右クリックし、右または左に 90 度回転するだけです。再びフォームをクリックしてフォームを回転すれば縦向きに戻すことができます。図 16 は、Visual Studio 2005 フォーム デザイナ内で縦向きから横向きに回転しているフォームを示しています。

16. Visual Studio 2005 フォーム   デザイナを使用してフォームを縦向きから横向きに回転したときのレイアウトの変化を確認する  

ディスプレイ サイズやディスプレイの解像度の変更による影響を確認できるように、Visual Studio 2005 にはデザインタイム専用の Form Factor プロパティが用意されています。

Form Factor の値を別の値に変更すると、Visual Studio 2005 フォーム デザイナは、選択したフォーム ファクタ内で表示されているかのようにフォームを表示します。図 17 は、Windows Mobile 6 Professional の Square フォーム ファクタが選択されているときの図 16 のフォームを示しています。フォーム下部のコントロールを表示するためのスクロール バーが追加されていることに注目してください。

Bb278115_40d52bc4-718b-41af-92f6-5cbbd4e8eff3.gif

17. Visual Studio 2005 フォーム   デザイナを使って、 Square フォーム   ファクタ内に図 16 のフォームを表示しているところ  

ランタイムと API のサポート

デバイス フォーム ファクタの違いに対応することは、Windows Mobile アプリケーション開発の基本です。開発者がデバイス フォーム ファクタの違いに対応できるよう支援するため、.NET Compact Framework 2.0 クラスとランタイムではデバイス フォーム ファクタの変更に動的に反応する機能が組み込まれています。同様に、ネイティブ開発者も同様のサポートを提供する API を持っています。

マネージ アプリケーション

マネージ アプリケーション用として、.NET Compact Framework 2.0 にはコントロールのドッキング、コントロールのアンカー、スクロール機能の自動設定、自動的な拡大縮小など、ランタイムがコントロールのサイズと位置を自動的に調整するための新機能があります。ドッキングされたコントロールは、親コントロールの一方の端に合わせて配置され、その端に沿った領域全体を埋めます。コントロールは、ディスプレイ サイズの違いに対応して自動的にサイズを調整し、常に親コントロールの端全体を埋めるようにします。ドッキングされたコントロールの例については、前出の図 11 を参照してください。

アンカーされたコントロールは、コントロールの 1 つ以上の端と親コントロールの端と距離を一定に保ちます。アンカーされたコントロールは、ディスプレイ サイズの違いに対応してサイズを自動的に調整し、コントロールのアンカーされた端と親コントロールの端とを適切な距離に保ちます。前出の図 12 にアンカーされたコントロールを示しています。

.NET Compact Framework 2.0 では、Form コントロールの AutoScrool プロパティと AutoScaleMode プロパティを使って自動スクロールと自動拡大縮小が有効または無効にできます。フォームの AutoScroll プロパティを True に設定すると、ディスプレイ サイズの変更によってフォームの一部のコントロールが表示されなくなると、フォームにスクロール バーが自動的に追加されます。デバイス フォーム ファクタの違いは、サイズの違いだけではありません。デバイス フォーム ファクタが異なれば解像度が異なっている可能性があります。デバイス解像度が違うと、アプリケーション フォームのコントロールが非常に小さく、または非常に大きく表示されることがあります。フォームの AutoScaleMode プロパティを AutoScaleMode.Dpi に設定すると、フォームのコントロールは変更されたディスプレイ解像度で適切にレンダリングされるようにそのサイズを自動的に拡大縮小します。

ネイティブ アプリケーション

Windows Mobile 6 の新機能ではありませんが、Microsoft C++ には、デバイス ディスプレイの違いに適応するために一般的に実行される作業に必要な関数やマクロが 20 個以上用意されています。これらは %Program Files%\Microsoft Visual Studio 8\VC\ce\atlmfc\include フォルダ内の DeviceResolutionAware.h ヘッダー ファイルに記載されています。表 5 に、これらの関数およびマクロのほんの一部を紹介しています。

5. デバイス   ディスプレイの違いに適応するためのネイティブ関数とマクロ ( 一部 )

関数またはマクロ

説明

GetDisplayMode

現在のディスプレイが縦向き、横向き、正方形のいずれかを示す値を返します。

SCALEX、 SCALEY、 SCALERECT、 SCALEPT

現在のディスプレイ解像度に応じた値に調整します。

StretchIcon

現在の表示領域に適合するようにアイコンのサイズを調整します。

RelayoutDialog

ダイアログ ボックス間でデータをコピーします。ダイアログ ボックスの表示中にユーザーがデバイスの表示方向を変更したときに役に立ちます。これにより、アプリケーションは、元のダイアログ ボックスと同じコントロールを持ちながら、現在の解像度に合わせて適切にサイズが変更された別のダイアログ ボックスを表示することができます。

FixupDialogItem

アプリケーションがダイアログ ボックスのサイズを変更したときに発生する一般的な問題に対処します。たとえば、ListBox コントロールまたは ComboBox コントロールの一覧が表示領域から外れてしまった場合にはスクロールして一覧を表示します。

サポート リソース

アプリケーションにフォーム ファクタへの適応性を組み込むのにかかる時間を短縮するため、マイクロソフトは開発に役立つ各種リソースを提供しています。これらのリソースでは、アプリケーションの実装時に従うべきベスト プラクティスを紹介しています。また、デバイスの違いに関する各種問題全般を解決する実用的なコードも提供しています。このコードは、デバイス フォーム ファクタの違いに対応する方法の例として使用するだけでなく、アプリケーションに組み込み、直ちに利用することも可能です。

マネージ開発者向けのリソース

Microsoft Patterns and Practices グループは、マネージ開発者向けとして Mobile Client Software Factory (英語) を提供しています。Mobile Client Software Factory は、モバイル開発者が直面する最も一般的な状況に対応するためのベスト プラクティス、ソース コード、コンポーネント、サンプルの集まりです。デバイス フォーム ファクタの違いの処理に関する問題に対処するため、Mobile Client Software Factory には OrientationAwareControl が用意されています。OrientationAwareControl と Visual Studio 2005 が連動することにより、1 つ以上の子コントロールを含むコントロールがグラフィカルにレイアウトできます。たとえば、コントロール レイアウトの一部として、フォーム ファクタごとに異なるレイアウトを定義することが可能です。

OrientationAwareControl を使用って、まず、ある特定のフォーム ファクタの表示に応じてコントロール レイアウトを定義します。次に、このフォーム ファクタを Visual Studio 2005 内で変更し、新しいフォーム ファクタを使用して表示したときにこのコントロールがどのように表示されるか確認します。新しいフォーム ファクタでのコントロールの表示が気に入らない場合は、元のフォーム ファクタのコントロール レイアウトに影響を与えることなく、新しいフォーム ファクタのコントロール レイアウトを調整することができます。このコントロールは、ライタイムで使用できるよう、さまざまなフォーム ファクタのレイアウト情報を個別に保持しています。アプリケーションが実行されると、OrientationAwareControl は、現在のフォーム ファクタに適切なレイアウトにレンダリングします。たとえば、ディスプレイのサイズが 240 x 320、解像度が 96 dpi、ディスプレイの向きが縦方向のデバイスでアプリケーションを実行する場合、OrientationAwareControl はディスプレイのサイズが 240 x 320、解像度が 96 dpi、ディスプレイの向きが縦方向に定義されているレイアウトを使用します。ユーザーがデバイスの向きを横に回転すると、OrientationAwareControl はディスプレイの サイズが 320 x 240、解像度が 96 dpi、ディスプレイの向きが横方向に定義されているレイアウトを使って表示します。OrientationAwareControl は、ディスプレイの解像度やサイズが変化したときの同様に動作します。

マネージ開発者向けに用意されたもう 1 つの重要なリソースは、Mobile Line of Business Solution Accelerator kit (英語) です。このキットは、LOB 開発者に Windows LOB アプリケーションの構築方法を示すリソースです。ここには、広範囲にわたるコメント、サンプル データベース、100 ページ以上のドキュメントが含まれています。また、顧客サービス、ウェアハウス ワーカー、配送運転手を含め、さまざまな役割のユーザーをターゲットとするアプリケーション コンポーネントも含まれています。さらに、アプリケーションに関するガイダンスに加え、エンタープライズ規模でモバイル LOB アプリケーションを正しく展開するためのベスト プラクティスも含まれています。

ネイティブ開発者向けのリソース

Windows Mobile 6 SDK にはネイティブ開発者向けとして UILayout サンプルが含まれています。このサンプルは、インターフェイスがデバイス ディスプレイの違いに合わせてユーザー インターフェイスが自動的に調整されるネイティブ アプリケーションの実装方法を示しています。サンプルの ScreenLib クラスにはコントロールをドッキングする、アンカーする、位置を揃える、アプリケーション コントロールのレイアウトを最適化するなどさまざまなメソッドがあり、ユーザー インターフェイス関連のほとんどの作業を行ってくれます。ScreenLib クラスは再利用できるように設計されているため、独自のアプリケーションに直接組み込めば、このクラスが提供するさまざまな機能を利用することができます。

汎用リソース

Windows Mobile デバイス フォーム ファクタのファミリ全体で効率的に動作するアプリケーションの構築に関する最新情報については、「Windows Mobile Adapt Your App (英語)」を参照してください。Windows Mobile Adapt Your App ページには、ホワイト ペーパー、Web キャスト、発表内容など、Windows Mobile アプリケーションに関連するすべてのリソースが集められています。

ユーザー エクスペリエンスの向上

Windows Mobile 6 には、ユーザー エクスペリエンスの向上に重点を置いた新しい機能があります。この機能は開発者にデバイスの状態の変化に対応するための新しい方法をもたらし、開発者はアプリケーションのユーザビリティを向上させることが可能になりました。

ルック アンド フィールドの向上

Windows Mobile 6 では、デバイスのルック アンド フィールが完全に再設計されました。表示の鮮明さが大幅に向上しています。ルック アンド フィールが最も大きく変更されている領域の 1 つが Pocket Outlook 画面です。画面の表示が一層鮮明になっただけでなく、情報の表示とナビゲーションが簡素化されています。Windows Mobile 6 デバイス上でアプリケーションを実行させるだけで、これらのメリットを活用することができます。何も変更する必要がありません。

Windows Mobile には、連絡先の選択ダイアログやメッセージング フォームなどの標準ダイアログ フォームが多数あります。アプリケーションで使用するこれらの標準ダイアログは、Pocket Outlook で使用されているのと同じフォームであるため、アプリケーションから表示したときに、Pocket Outlook で直接使用したときと同じ洗練された外観が表示されます。同様に、ピクチャ選択ダイアログの表示も向上しています。これは、ユーザーがファイルを検索して開くときに .NET Compact Framework 2.0 の DocumentList クラスを使用するアプリケーションにも当てはまります。図 18 に、Windows Mobile 6 の新しいピクチャ選択ダイアログを示しています。

Bb278115_742af9e9-9f2c-4fcf-9f1f-0d80cb8ff258.gif

18. Windows Mobile 6 の新しいピクチャ選択ダイアログ  

同様に、ピクチャ選択ダイアログの表示も向上しています。これは、ユーザーがファイルを検索して開くときに .NET Compact Framework 2.0 の DocumentList クラスを使用するアプリケーションにも当てはまります。

新しいインク API による新しい入力オプション

Windows Mobile 6 には WISP Lite と呼ばれる Tablet PC の WISP インク API の軽量バージョンが含まれています。すべての Windows Mobile 6 Classic デバイスと Windows Mobile 6 Professional デバイスで WISP Lite の優れたインク機能と柔軟性を活用することができます。WISP Lite は Tablet PC のインク データと完全な互換性があり、インクの収集、認識、レンダリング、インク データ管理用の API が使用できます。また、以前の RichInk コントロールに比べて忠実性が大幅に向上しています。

新しいサウンド API によるオーディオ エクスペリエンスの拡張

Windows Mobile 6 には、以前はサポートされていなかった多くのサウンド ファイル形式を再生できる新しいサウンド API のセットが含まれています。新しいサウンド API は、MP3、MID、WMA、WAV ファイルを再生できます。開発者からの要望に応え、新しいサウンド API にはデバイス プロファイルを取り入れるオプションが含まれているため、デバイスが無音または振動するように設定されている場合にはサウンドが再生されません。

新しいサウンド API には、既知の発信者からの着信音やローミング着信音などの一般的なイベントに関連付けられたサウンド ファイルを取得するための関数が含まれています。これらのイベントに関連付けられたサウンド ファイルは変更することが可能です。サウンド ファイルは同期または非同期で再生することができます。非同期再生が完了した時に API からアプリケーションに通知させることもできます。また、新しい API には、RAM、ROM、インストールされているストレージ カードにあるサウンド ファイルを検索する関数が含まれています。

新しいデバイス状態情報

状態および通知ブローカによってデバイス状態が変更されたことがアプリケーションに通知されるため、アプリケーションはこれらの状態変更に適切に対応することができます。Windows Mobile 5.0 でサポートされている 100 を超える状態および通知ブローカの状態値に加え、Windows Mobile 6 には電話番号やオペレータ名など、VoIP (Voice over Internet Protocol) 通話の通話状態情報が追加されています。また、Windows Mobile 6 にはデバイス ロック用の状態情報も追加されています。キーパッドのロック状態、デバイスのロック状態、SIM のロック状態の変更に対しても状態情報が使用できるようになっています。

Windows Mobile 6 アプリケーション構築に必要なもの

Windows Mobile 6 用のアプリケーション開発を開始するのは簡単です。既に必要なもののほとんどすべてが揃っているからです。

必要なソフトウェア

Windows Mobile 6 アプリケーションを初めて開発する場合には、ソフトウェアをいくつかインストールする必要があります。ここでは、必要と思われるソフトウェアの一覧を紹介し、各ソフトウェアが必須なのか、推奨されるソフトウェアなのか、省略可能なのかを示しています。また、各ソフトウェアの目的についても簡単に説明しています。

必要なソフトウェア

必須/省略可能

説明

Visual Studio 2005 Standard Edition、 Professional Edition、または Team System

必須

Visual Studio 2005 は、Windows Mobile アプリケーションを作成するために使用する開発環境です。

Windows Mobile 6 Professional SDK または Windows Mobile 6 Standard SDK

必須

Windows Mobile 6 アプリケーションを開発するためのツール、ヘッダー ファイル、エミュレータ イメージ、および Visual Studio 2005 のプロジェクトの種類を提供します。

ActiveSync 4.5 以上 (XP) または Windows Mobile Device Center (Vista)

必須

Windows Mobile 6 エミュレータ イメージまたはデバイスをクレードル接続するために必要な接続を提供します。

Visual Studio 2005 Service Pack 1

省略可能 (Windows XP)

必須 (Windows Vista™)

マイナーな修正プログラムを組み込み、SQL Server Compact Edition 製品名を表示するように Visual Studio 2005 のすべてのデータ指向ダイアログを更新します。Windows Vista ユーザーの場合、Visual Studio 2005 が Windows Vista で実行するためには、この Service Pack が必要です。

.NET Compact Framework 2.0 Service Pack 1

推奨

この Service Pack により、アプリケーションが展開されるたびに、Visual Studio 2005 は .NET Compact Framework 2.0 を Windows Mobile 6 デバイスに展開します。また、コマンド ライン デバッグのサポートが追加され、.NET Compact Framework 2.0 ランタイムが提供するパフォーマンス データを確認するための新しいユーティリティが提供されます。

SQL Server 2005 Compact Edition Tools for Visual Studio 2005

省略可能

SQL Server 2005 Compact Edition を使用する Windows Mobile 6 アプリケーションを開発するために必要なツールおよびアセンブリを提供します。このツールをインストールする前に、まず Visual Studio 2005 SP1 をインストールする必要があります。

既存スキルの活用

Windows デスクトップ コンピュータ アプリケーションまたはサーバー アプリケーションを構築したことがあるなら、Windows Mobile アプリケーションを構築したことがなくても Windows Mobile 6 アプリケーションを開発するのに必要なスキルは既に持ち合わせていることになります。Windows Mobile 6 アプリケーションの構築を容易にしている要素の 1 つが、Visual Studio 2005 です。Visual Studio 2005 での Windows Mobile 6 アプリケーションの作成は、デスクトップ Windows フォーム アプリケーションの構築と非常に似ています。Visual Studio 2005 は、Windows Mobile 6 アプリケーションでもデスクトップ アプリケーションに対するのと同じように動作し、デスクトップ アプリケーションに提供するのと同じ機能を Windows Mobile 6 アプリケーションにも提供します。

マネージ アプリケーション開発

マネージ開発者に対し、.NET Compact Framework 2.0 では、デスクトップ アプリケーションを作成するときに使用するクラスと同じクラスが提供されています。これらのクラスは、.NET Framework の完全なクラスのリッチなサブセットです。.NET Compact Framework 2.0 には、デスクトップ アプリケーションを構築するときに使用するのと同じ Windows フォーム コントロールも多数用意されています。これらのコントロールは、開発者の皆さんにもデスクトップ アプリケーションの開発を通して馴染みがあるエクスペリエンスを提供します。

ネイティブ アプリケーション開発

Windows Mobile 6 用のコア API は Win32 で、サブセットながらデスクトップ上の Win32 と整合しています。同様に、Active Template Library (ATL) と Microsoft Foundation Classes (MFC) が使用可能で、どちらも対応するデスクトップ版のリッチなサブセットです。デスクトップ アプリケーション用として作成した C/C++ コードのほとんどが Windows Mobile 6 と互換性があります。互換性がこのように高い理由は、Visual Studio 2005 がデスクトップ アプリケーションと Windows Mobile デバイス アプリケーションに対して同じフロントエンド C/C++ コンパイラを使用しているためです。

データベース アプリケーション開発

また、SQL Server 2000 および SQL Server 2005 向けのデータベース アプリケーションの開発で築いたスキルや経験は SQL Server Compact Edition アプリケーションの開発に活用することができます。SQL Server Compact Edition の SQL 構文は SQL Server 2005 と完全な互換性があります。同様に、SQL Server Compact Edition 用の ADO.NET および OLEDB プログラミング インターフェイスは、SQL Server 2005 のそれぞれ対応するプログラミング インターフェイスと整合しています。SQL Server Compact Edition データベースの作成と管理さえも馴染みがあるはずです。それは、SQL Server Compact Edition データベースの作成と管理が SQL Server 2005 データベースの作成と管理に使用される SQL Server Management Studio ツールを使用して行われるからです。

ガイダンス

マイクロソフトでは、Windows Mobile 6 プラットフォームで質の高いアプリケーションを構築するために必要なガイダンスを提供するリソースを多数用意しています。製品マニュアルのほかに、Windows Mobile アプリケーション開発に関する情報や Windows Mobile プラットフォームでの開発を成功させるためのベスト プラクティスをさまざまな場所で提供しています。

MSDN® の Windows Mobile ページ (英語)」から始めるのがいいと思います。ここには、Windows Mobile 開発に関する最新情報が掲載されています。MSDN の Windows Mobile ページには、ホワイト ペーパー、役に立つブログ、Web キャストなどの他のリソースへのリンクも含まれています。

Microsoft Patterns and Practices グループは、Mobile Client Software Factory (英語) で Windows Mobile 開発者向けの優れたガイダンスを提供しています。Mobile Client Software Factory は、Windows Mobile 開発者向けのベスト プラクティス、サンプル、ソース コード、およびツールを包括的にまとめたものです。デバイス フォーム ファクタ、オフライン データ管理、データの同期、大規模アプリケーションの管理といったトピックに対応しています。

Windows Mobile Wiki (英語) は、MSDN の Channel 9 サイトにある、コミュニティに密着したプロジェクトです。Windows Mobile Wiki は、他の開発者の知識や経験を活用するのにうってつけの方法です。最も一般的な質問の多くが Wiki で解決されています。

Windows Mobile Newsgroup (英語) は、Windows Mobile 開発に関する質問を投稿し、多くの Windows Mobile Microsoft Valued Professional (MVP) を含む業界内の仲間に回答してもらえるコミュニティ サポート型のリソースです。

Windows Mobile Adapt Your App ページ (英語)」には、Windows Mobile デバイスの全ファミリで動作するアプリケーション開発に関連する問題についての最新情報が掲載されています。掲載されているニュース、発表内容、Web キャストへのリンク、ホワイト ペーパーへのリンクは、いずれもアプリケーション開発に関するものばかりです。

結び

Windows Mobile 6 には、強力なモバイル基幹業務 (LOB) アプリケーションを開発および展開するのに必要なツールと機能が用意されています。ROM に .NET Compact Framework 2.0 SP1 と SQL Server 2005 Compact Edition が組み込まれている Windows Mobile 6 デバイスは、アプリケーション展開も簡素化する強力なアプリケーション プラットフォームです。Windows Mobile 6 SDK に含まれている Device Emulator 2.0 およびその他のツールにはアプリケーションをさまざまな Windows Mobile デバイス機能やフォーム ファクタで簡単にテストできる機能があるため、さまざまな種類のデバイスで動作できるアプリケーションの開発プロセスが簡素化されます。Windows Mobile 6 SDK には 100 を超えるサンプルや、Patterns & Practices Mobile Client Software Factory、Mobile Line of Business Solution Accelerator Kit が含まれており、いずれも LOB アプリケーション開発を直ちに始めるためのガイドとして役に立ちます。

経験豊かな Windows Mobile 開発者にとっても、初めて Windows Mobile プロジェクトを準備する開発者にとっても、Windows Mobile 6 は LOB アプリケーションに最適な Windows Mobile プラットフォームです。

関連情報

その他のリソース

What’s New for Developers in Windows Mobile 5.0 (英語)

Windows Mobile Developer Center: Security, Deployment, and Management (英語)

Mobile2Market Frequently Asked Questions (英語)

Mobile Client Software Factory (英語)

Mobile Line of Business Solution Accelerator Kit (英語)

Windows Mobile Adapt Your App Page (英語)

MSDN Windows Mobile Page (英語)

Windows Mobile Wiki (英語)

Windows Mobile Developer Newsgroup (英語)