これの続きです。
Prism for Windows(UWP) って書いてるけど MVVM アプリって何で作ったらいいんだっていう感じのコメントがついてるので事実だけを淡々と
Prism は以下のプラットフォーム向けに提供されていた
- WPF
- Xamarin.Forms
- UWP
これがこうなった
- WPF
- Xamarin.Forms
以上
UWP...?
UI テクノロジーという意味では、今後開発リソースが注がれる Windows UI Library がメインストリームとなるという感じです。OSS で GitHub 上で開発されています。 ロードマップも出ています。
今まで Windows UI の機能強化は Windows 10 の一部として UWP をターゲットとして提供されてきていました。 つまり UI まわりの機能強化は UWP じゃないと使えないという状況がこれまででした。
Windows UI Library 2 系も UWP をターゲットにしていました。
Windows UI Library 3.0 は UWP 特化ではない
ロードマップに以下のような図がありますが、これが全てだと思います。
引用元:microsoft-ui-xaml/roadmap.md at master · microsoft/microsoft-ui-xaml · GitHub
つまり…?
今まで UWP が Windows 10 向けの UI 関連機能強化と裏側の機能強化のターゲットでしたが UI 部分は Win32 と UWP 両方をターゲットに開発される Windows UI Library がメインになります。恐らく UWP は、裏方の API は追加されていくと思います。この新しい API はWindows 10 APIs と表記されてたりしますね。
そして、アプリケーションのパッケージング方式として MSIX にパッケージングしてストアに出せる形のものと、そうでない従来の xcopy でのインストールや msi でのインストールなどになると思います。
まとめると…
アプリケーションモデル | インストール方法 | Windows 10 APIs | Win32 APIs | 備考 |
---|---|---|---|---|
UWP | msix | ◎ | ごくごく一部 | 多分 Windows UI Library 3.0 の UI は一番シームレスに乗ると思うんだけど…。Win UI Library 3.0 の出来が良かったら WPF とかにもシームレスに乗るかも。ここで動く悪質なウィルス作るのは超しんどそう |
Win32 | msix | ○ | ◎ | ウィルス作るのはしんどそう |
Win32 | msix 以外(xcopy や msi) | △ | ◎ | ほぼ全てのウィルスは、ここに属する |
Win32 アプリから呼び出せる Windows 10 APIs については以下のドキュメントを参考にしてください。
端的にいうと全部呼べるわけではないのと、msix で固めたほうが呼べる API は増えますが、セキュリティはちょっと厳しくなります。 ここら辺も読んでおくといいと思います。
まとめ
- UI フレームワークとしての UWP は機能強化はされない
- Windows UI Library の方にシフトしていって OSS で開発されていく
- Windows UI Library 3.0 は UWP 以外にも Win32 アプリ (WPF や WinForms など) もサポートする。
- UWP も Win32 アプリも UI 周りは、ほぼ同じ機能が使えるようになるようになっていくはず
- Windows 10 の最新の API は UWP が一番種類が多く呼べる
- Win32 アプリも msix 形式でインストールするようにすると呼べる Windows 10 の最新の API が増える
こんな感じかなぁ?間違ってたら修正していこう。