Windows 10 以降の Windows アプリ開発におけるプラットフォーム考察 (2)

前回の記事からの続きになります。

Windows アプリとしては「Universal Windows Platform (UWP)」
「Windows Presentation Foundation (WPF)」「Windows Forms」
の3つがあります。

Windows 10 アプリ

様々な条件で比較してみたいと思います。

登場時期

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」を考察します。

関連記事:

 |