WindowsとPhoneでロジックを切り分けるには?[ユニバーサルWindowsアプリ開発]

別途公開のサンプルコードを実行しているところ(VS2013)左は、Visual Studio 2013 Update 2に付属のWindows 8.1シミュレーター。右は、USBケーブルで接続したWindows Phone 8.1の実機の画面を映している「Windows Phoneの画面出力アプリ」(英語名は「Project My Screen App for Windows Phone」)。 「Windowsで実行」/「Phoneで実行」と表示されているテキストブロックは「App」クラスに定義した同じ文字列リソースにデータバインドされており、それを共有プロジェクトに置いたコードで書き換えている。 「共通のイベントハンドラー」と表示されているボタンは、XAMLコードによるボタンの定義はそれぞれのプロジェクトに書かれているが、イベントハンドラーのメソッドは共有プロジェクトに置かれている。このボタンをタップするとメッセージダイアログが出てきて、WindowsとPhoneのどちらで実行しているかを表示する。その文字列を生成するコードは、共有プロジェクトとPCL(=ポータブルクラスライブラリ)に置かれている。 いずれも、共通部分に置いたコードでWindowsとPhoneに応じて処理を切り分けているのである。

別途公開のサンプルコードを実行しているところ(VS2013)左は、Visual Studio 2013 Update 2に付属のWindows 8.1シミュレーター。右は、USBケーブルで接続したWindows Phone 8.1の実機の画面を映している「Windows Phoneの画面出力アプリ」(英語名は「Project My Screen App for Windows Phone」)。 「Windowsで実行」/「Phoneで実行」と表示されているテキストブロックは「App」クラスに定義した同じ文字列リソースにデータバインドされており、それを共有プロジェクトに置いたコードで書き換えている。 「共通のイベントハンドラー」と表示されているボタンは、XAMLコードによるボタンの定義はそれぞれのプロジェクトに書かれているが、イベントハンドラーのメソッドは共有プロジェクトに置かれている。このボタンをタップするとメッセージダイアログが出てきて、WindowsとPhoneのどちらで実行しているかを表示する。その文字列を生成するコードは、共有プロジェクトとPCL(=ポータブルクラスライブラリ)に置かれている。 いずれも、共通部分に置いたコードでWindowsとPhoneに応じて処理を切り分けているのである。