Windows 10 以降の Windows アプリ開発におけるプラットフォーム考察 (2)
前回の記事からの続きになります。
Windows アプリとしては「Universal Windows Platform (UWP)」
「Windows Presentation Foundation (WPF)」「Windows Forms」
の3つがあります。
様々な条件で比較してみたいと思います。
登場時期
UWP (2015年) > WPF (2008年) > Windows Forms (2002年)
アプリの普及
Windows Forms > WPF > UWP
歴史の長い Windows Forms がダントツです。WPF はあまり順調に普及していません。UWP はさらに普及していません。
クラス ライブラリ
Windows Forms = WPF > UWP
NuGet パッケージ
Windows Forms > WPF > UWP
MSDN / ドキュメント / サンプル
Windows Forms > WPF > UWP
UWP は クラス ライブラリの使い方を調べるのにも苦労します。
デザインの容易さ
Windows Forms >= WPF = UWP
WPF と UWP は XAML でデザインします。慣れれば問題ありませんが、慣れないのであれば コントロールを直観的に配置できる Windows Forms のほうがデザインは容易です。
高DPI サポート
UWP = WPF > Windows Forms
Windows Forms における高DPIの問題は「.NET Framework 4.7」によりサポートされるようになりました。
インストールの容易さ
Windows Forms = WPF >> UWP
Windows Forms と WPF の場合は、インストーラーによるインストールか、直接のEXE配布などでも動きます。
UWPアプリは、既定の状態では、Windows ストア経由でしかインストールできません。 正規のストアを経由しない場合には、サイドロードアプリとしてルート証明書で署名されたパッケージのみインストールすることができます。
MVVM の実装
UWP = WPF >> Windows Forms
UWP と WPF は データ バインディング (Data Binding) が考慮された構造になっており、MVVM アーキテクチャの実装が容易です。
Windows Forms は データ バインディング があまり考慮されておらず、MVVM の構築は非常に難しいです。 (不可能ではありません。)
非同期処理 (Async)
UWP = WPF >= Windows Forms
「.NET Framework 4.5」以上を使用することで、その差は少なくなります。
ここまでの整理
このように「UWP」「WPF」「Windows Forms」は、各々が長所と短所を持ち合わせており、2017年現在では三つ巴の状態にあります。
次の記事では、用途に応じた「UWP」「WPF」「Windows Forms」を考察します。
関連記事: