エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Windows Phone 8 と Windows 8 の間で最大限にコードを再利用する

2014/06/18

対象: Windows Phone 8 および Windows Phone Silverlight 8.1 | Windows 8

ここでは、アプリのコードを最大限に再利用できるようにするためのヒントを示します。開発者は、開発を合理化し、アプリの保守をできるだけ効率的に行えるようにしたいと考えます。スマートに作業すれば、より多くのアプリを、より多くの時間をかけて開発することが可能となり、Marketplace に多数の作品を提供できます。 Windows Phone 8 および Windows 8 用のアプリを構築する場合は、投資回収率を最大化するために、コード、デザイン、およびアセットを可能な限り共有する方法を考える必要があります。ここでは、両方のプラットフォーム用のアプリを構築するときに利用できる共有テクニックについて説明します。

次の表に、Windows Phone 8 アプリと Windows 8 アプリの間でコードを共有するために利用できるテクニックをいくつか示します。各テクニックについては、リンク先のトピックで詳しく説明しています。この表では、テクニックがマネージ コード、C# または VB、ネイティブ (C++) コードのいずれに適用されるかを示しています。これらのテクニックのいずれかを選択するか、組み合わせて使用することができます。

共有テクニック

使用する状況

Model-View-ViewModel パターンを使用した UI とアプリ ロジックの分離

このガイドは、さまざまな種類のアプリに適用されますが、特に XAML UI を備えるアプリに適しています。UI とアプリ ロジックを分離することで、アプリ ロジックの記述とは独立して、ユーザー エクスペリエンスのデザインに専念することができます。また、アプリ ロジックは両方のプラットフォームのアプリで共通する可能性が高く、ここで説明する他のテクニックを使用したコード共有の有力な候補となります。Model-View-ViewModel (MVVM) は、こうした分離を実現するためのすばらしい方法です。

ポータブル クラス ライブラリを使用して機能を共有する

Windows Phone 8 と Windows 8 では、同じ .NET Framework エンジンを共有します。XAML アプリでは、アプリ ロジックのほとんどをマネージ コードで記述します。MVVM デザイン パターンを使用している場合、ViewModel を共有し、さらには Model も共有できる可能性があります。なお、ポータブル クラス ライブラリは .NET Framework の概念であり、C++ をサポートしていません。

[リンクとして追加] を使用してコードを共有する

このテクニックは、移植可能ではなく、したがってポータブル クラス ライブラリで実装できないコードに使用します。たとえば、Windows Phone 8 とWindows 8 では、共通の Windows Runtime API サーフェイスを使用して、ネットワーク、近接通信、アプリ内での購入などのさまざまな機能に各プラットフォームの能力を利用することができます。ポータブル クラス ライブラリは Windows Runtime API をサポートしていません。代わりに、両方のプラットフォームによくある、これらの移植不可能なコードを、Visual Studio の [リンクとして追加] を使用して共有できるクラスに抽象化することができます。C++ プロジェクトでは、ファイルは既定でリンク ファイルとしてプロジェクトに追加されます。

Windows ランタイム コンポーネントを使用して共有する

両方のプラットフォームで使用できる共通の Windows Runtime API を利用することに加えて、独自の Windows ランタイム コンポーネントを記述して、すべてのサポート対象言語で機能を使用できるようにすることも可能です。このコンポーネントは、C++ で記述し、C# または VB で利用できます。このテクニックは、言語間の相互運用性を実現する場合や、計算集約型のコードを C++ で記述し、そのコードをすべての言語で使用できるようにする場合に、きわめて有効です。

XAML UI の共有

Windows Phone 8 および Windows 8 の UI は、XAML で記述されます。この XAML 実装は、プラットフォーム間で移植できません。ただし、独自の基本 UI 構成要素の一部を UserControl に分離し、それらのクラスを各プラットフォーム用にコンパイルされるリンク ファイルとして共有することができます。このテクニックは限定的なものであり、UI の単純で再利用可能な部分にのみ使用する必要があります。UI の中心的な部分は、プラットフォームごとに構築および調整する必要があります。

プリプロセッサ ディレクティブによる条件付きコンパイル

Windows Phone 8 と Windows 8 で実装が異なる機能がある場合、条件付きコンパイルを使用して、各プラットフォームに適するようにコードをコンパイルすることができます。ポータブル クラス ライブラリで条件付きコンパイルを使用することはできません。このテクニックをどの程度採用するかは、アプリの複雑さによって決まりますが、このテクニックを広範に使用すると、コードの保守が難しくなる可能性があります。

表示:
© 2014 Microsoft