次の方法で共有


アプリケーション開発の概要 (デバイス)

更新 : 2007 年 11 月

スマート デバイス アプリケーションの開発は、デスクトップ アプリケーションの開発と大幅に異なっているわけではありません。このトピックでは、スマート デバイス アプリケーションを開発するための主な手順について概要を説明し、デスクトップ アプリケーションとスマート デバイス アプリケーションの開発におけるいくつかの相違点を示します。

  • デザイン時の考慮事項

  • デバイスとエミュレータの使用

  • アプリケーションのビルド

  • セキュリティの考慮事項

  • アプリケーションのパッケージ化と配置

  • デバイスとデスクトップ

デザイン時の考慮事項

スマート デバイス ソリューションと Windows CE

Windows CE、Pocket PC、Smartphone、Windows Mobile™ の各ソフトウェアの関係については、Windows Mobile Developer Center の「Learn Windows Mobile」を参照してください。詳細については、「スマート デバイス開発のデザイン」を参照してください。

バージョンの互換性

デバイス アプリケーションを開発するときに連携するツールのバージョンやテクノロジを特定するには、「Windows Mobile ベースのデバイス向け開発ツールの紹介」を参照してください。マネージ プロジェクトは、.NET Compact Framework のバージョン 2.0 または 3.5 を対象にする必要があります。

デザイン ガイドライン

デバイス アプリケーションのデザインによって、ユーザーがタスクをどれだけ簡単に、すばやく、効率的に完了できるかが決まります。さまざまなデバイスの機能を活用するようにアプリケーションを最適化することで、利用価値があり、統一性が取れ、応答性に優れ、使いやすいアプリケーションをユーザーに提供できます。特定のインターフェイス機能についての詳細なデザイン ガイドラインについては、各デバイスのソフトウェア開発キット (SDK: Software Development Kit) と、該当するスマート デバイスの項を参照してください。

スマート デバイスとエミュレータの使用

デバイス エミュレータ

デバイス エミュレータは、Visual Studio デバイス プロジェクトに特化して設計されています。ARM 命令セット向けにコンパイルされたアプリケーションが、ユーザー モード プロセスとして実行されます。Visual Studio には、エミュレータと通信するダイレクト メモリ アクセス (DMA: direct memory access) のトランスポートが用意されています。DMA のトランスポートは、従来の TCP/IP のトランスポートよりも高速で、ネットワークの接続性など外部の要因に左右されません。また、確定的な接続と接続解除の機能があります。

Visual Studio は、Windows Mobile 5.0 と Windows Mobile 2003 用のエミュレータ イメージを含みます。Windows Mobile 6 などの SDK を追加でインストールすると、別のエミュレータがインストールされます。

エミュレータを開くには、[ツール] メニューの [デバイスへの接続] をクリックします。開くエミュレータを選択し、[接続] をクリックします。

デバイスへの接続

Visual Studio は、コア コネクティビリティ フレームワークを使用して、開発用コンピュータと対象デバイスとの間に安全で信頼できる接続を確立します。Visual Studio はこの接続を使用して、ファイルを配置し、デバイスまたはエミュレータのアプリケーションをデバッグします。詳細については、「スマート デバイスを開発用コンピュータに接続する」を参照してください。

デバイス アプリケーションのビルド、デバッグ、およびテスト

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

Visual Studio では、Visual C# または Visual Basic プログラミング言語のいずれかを使用して、.NET Compact Framework のバージョン 2.0 または 3.5 を対象とするアプリケーションを記述できます。スマート デバイス アプリケーションは、.NET Compact Framework のアセンブリを参照し、.NET Compact Framework の共通言語ランタイムによってデバイス上で実行されます。

開発を支援するために、Visual Studio には、次の機能が用意されています。

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

Visual Studio では、Visual C++ プログラミング言語を使用して、デバイスでネイティブに実行されるスマート デバイス アプリケーションを記述できます。詳細については、「Visual C++ を使用したデバイスのプログラミング」を参照してください。

セキュリティ

Windows Mobile アプリケーションのセキュリティ

スマート デバイス開発者は、セキュリティ構成の違いがアプリケーションの実行にどのように影響するかを考慮する必要があります。無署名のアプリケーション、またはユーザーのデバイス上に存在しない証明書を使用して署名されたアプリケーションは、実行できない場合があります。詳細については、「デバイス プロジェクトにおけるセキュリティ」を参照してください。

セキュリティに関するその他の考慮事項

デバイス アプリケーションのリモート接続には、新たなセキュリティ問題があります。詳細については、「.NET Compact Framework のセキュリティ」および「ネイティブ コードと .NET Framework コードのセキュリティ」を参照してください。

配置するためのアプリケーションのパッケージ化

Visual Studio には、開発したスマート デバイス アプリケーションを CAB ファイルまたはデスクトップ MSI インストーラにパッケージ化するためのツールが用意されています。詳細については、「配置用のデバイス ソリューションのパッケージ化」を参照してください。

デバイスとデスクトップの比較

デバイス アプリケーションの開発には、デスクトップ アプリケーションの開発に使用する Visual Studio 統合開発環境 (IDE: Integrated Development Environment) と同じ環境を使用しますが、いくつかの違いもあります。

  • Visual Studio IDE では、デバイスに接続したり、デバイス上でデバッグを行ったりするためのツールが用意されています。

  • プロジェクト作成時にプロジェクトの種類とテンプレートを選択することに加え、アプリケーションの実行およびデバッグに使用するデバイスを選択する必要があります。選択できるデバイスは、開発用コンピュータに接続された物理デバイス、ネットワーク接続されたデバイス、開発用コンピュータ上で実行されるデバイス エミュレータのいずれかです。

  • クラスの数とメンバは、デスクトップ アプリケーションの開発に使用できるものとは異なります。.NET Compact Framework を使用するマネージ プロジェクトの場合、デバイスに使用できるクラス数は少なくなります。また、クラスの補数は一般にプラットフォームによって異なります。ネイティブ プロジェクトの場合も同様であり、一部の Windows API、MFC クラス、ATL コンポーネントのみを使用できます。クラスが使用できるかどうかを調べる方法として、ドキュメントを調べる、IntelliSense を使用する、プロジェクトがアクティブなときに Visual Studio オブジェクト ブラウザを使用する方法があります。

  • ネイティブ コードには、デスクトップ アプリケーションと同様、プラットフォーム呼び出しによりアクセスできます。.NET Compact Framework での COM 相互運用のサポートは限定されています。マネージ コード内に COM オブジェクトを作成すること、および ActiveX コントロールとの相互運用はサポートしません。

  • 言語項目に関しても相違点があります。たとえば、デスクトップ開発に使用する Visual Basic キーワードには、デバイス開発でサポートされていないものがあります。

  • Visual Studio ドキュメントでデスクトップ プロジェクト用に用意されているコード スニペットと例をデバイス プロジェクトで使用すると、ビルド エラーが発生する場合があります。

  • デバイス開発では、デバイスのフォーム ファクタ、使用電力、メモリ制約など、デスクトップ開発では考慮する必要のないデザイン上の考慮事項があります。

その他のリソース

詳細については、「Mobile Developer Center」を参照してください。

参照

その他の技術情報

スマート デバイス プロジェクトの概要