MVVMパターンを実現できるWPF。
現在、どこまで使えるのでしょうか
WPFは、Windows Vistaが搭載するアプリケーション
開発・実行環境「.NET Framework 3.0」が備える
機能の一つです。
高度なユーザー・インタフェースを実現するための
グラフィックサブシステムで、.NET Framework 3.0 が
インストールされていれば実行可能であるため、
Windows XPでも動作する。
レンダリングにGPUを利用しているため、CPUよりも
高速になります。
(GPUがない場合は、CPUを利用する。)
ただし、ハードを直接扱うDirect3Dと違って、
WPFはソフト部分を扱うため、アプリケーションの実行に
要する負荷が高くなる。
また、WPFはDirectX 9 対応ですので、DirectX 10対応の
グラフィックボードであってもパフォーマンスが向上する
ことはない。
では、メリット、デメリットを見て使えるか判断してみましょう
【メリット】
・XAMLで表示と動作のコードを分離できる
(デザイナとプログラマの分業)
・視覚的に優れたアプリケーションを作成できる
・3D表現などの表現力に優れる
・WMV、MPEG、AVIフォーマットの動画をサポート
・ベクトルグラフィックスをサポート
・Direct3Dを通して描画することによるCPUの負荷軽減
・C#だけでフロントエンド、バックグラウンドすべてを開発できる
・強力なBindingによる開発効率の向上
・Windowsのみ対象のため、開発対象OSをVistaとXPに絞れる
・1度の開発でウェブアプリとデスクトップアプリ(XBAP)の2つ
・.NETというOSネイティブの開発環境を活かせる
【デメリット】
・非現実的な実行速度とメモリ消費量
・MDI直接利用できない
・Viewport3D使用時のCPU負荷の急上
・GUIコンポーネントの互換性がない
・コントロールがWinFormと比べて少ない
・Windows XPのサポート期限が、2014年4月になったため、
シェアの多いXPでは、WPFのよさを活かしにくい
【パフォーマンス】
・プログラム開始が遅い
・WinFormと比べて実行速度が遅い
・コントロール数が増えていくと遅くなる
■参考サイト
・WPFに移行すべきか否か
・第2回 「WPF(Windows Presentation Foundation)」で出来ること,出来ないこと
・第 1 回 Windows アプリケーション開発の概要