開発者の観点から見ると、Windows 10の主なセールスポイントは、その新しい niversal * Windows Platform(UWP) です。
*「ユニバーサル」は「Windows 10を実行するすべてのデバイスに共通」を意味し、「Windows 10だけでなくWindows 8.1およびも実行するデバイスに共通」を意味しますWindows 7 "。したがって、UWPアプリを構築する場合は、実際には「Windows 10アプリ」を構築するだけです。 UWPアプリは、Windows 8.1およびWindows Phone 8.1デバイスでも実行できません。つまり、下位互換性はまったくありません。
2015年第3四半期以降、Windows 10は PCs および IoTデバイス で利用できます。 Windows 10 Mobileが一般にリリースされるまでには少なくとも数か月かかりますが、おそらく1年以内です。これは、Windows Phone 8.1がしばらくの間存続することを意味します。
これからWindows Phoneアプリの開発を開始しますが、かなりシンプルなアプリなので、来月中には公開する予定です。 Windows 10 Mobileはすぐには届かないため、世界中のデバイスはもちろん、アップグレードされる予定なので、今のところWindows Phone 8.1をターゲットにする必要があります。ただし、Windows 10 Mobileがロールアウトされる前にになることはないため、ソリューションを準備するのが賢明かどうか疑問に思っていますWindows 10 UWPへの展開およびWindows Phone 8.1(これにより、必要な限り8.1をサポートし続けることができます)。
UWPプロジェクトと8.1プロジェクトを同じソリューションにグループ化し、Visual StudioのWindows 8.1 Universalテンプレートで行ったように、共有プロジェクトを介してソースファイルとアセットを共有できることがわかりました。私は正しい軌道に乗っていますか?もしそうなら、すべて(理想的には両方のプラットフォームで同じまたは少なくとも類似したUIを持ちたいのでXAMLを含む)が実際に不整合を説明する両方のプラットフォームで正しく機能することを確実にするために従うべき追加のガイドラインはありますか?
または、今のところWindows 10 Mobileについて心配する必要はなく、8.1プロジェクトから始めて、後で WPに移行 しますが、私はアプリの両方のバージョンを維持する必要があります8.1ユーザーをすぐに捨てるつもりはありません。この場合でも、機能/ XAMLのパリティについて心配する必要があります。
あなたのコメントの1つで言っているように、これに取り組む最善の方法は、共有プロジェクトを使用して、それにいくつかのヘッドを追加することです。あなたの場合、Windows Phone 8.1ヘッドとUWPヘッド。このポジションは、ジェリーニクソンとアンディウィグリーによるMVAでも表現されました(私は this だと思いますが、それ以降更新されています)。8.1アプリのuwpへの移植に関するセクションで。
共有プロジェクトでは、条件付きコンパイルディレクティブを使用して、uwpと電話8.1で実行されるコードを区別する必要がある場合があります。 (ユニバーサルWindows 8.1 /電話8.1アプリを作成するときのように)
アプリが必要とするWindowsの機能に応じて、 Xamarin のようなプラットフォームを使用できます。これにより、Windowsだけでなく、iOSおよびAndroidでも記述できます。同じコードベース。
私の経験から:いくつかのヘルパー/ロジック/ etcをPCLライブラリに配置する価値があります。次に、変更なしでPCLを利用できる2つのプロジェクト(それぞれUWPおよびWP8用)を作成できます。また、サービスを共有したり、モデルやモデルを表示したりできます(#if条件付きコンパイル行はほとんどありません)。
共有する価値のない唯一のことは、UI関連のスタッフです。あまりにも多くのものが切り替え/調整する必要があるためです(そのため、UWPとWP8のそれぞれに実質的に同じレイアウトを用意する方がはるかに簡単です)。
追伸UWPとWP8.1 Silverlightでそれを行いました