WPF(Windows Presentation Foundation)とはマイクロソフト社が開発する主にソフトウェアのユーザインターフェース(表示、操作処理など)を開発するためのツールです。
ユーザインタフェースとロジックを明確に区別するプログラミングモデルを提供しております。この記事ではWPFを理解するために初心者でも分かる使用環境、特徴、基礎知識などを簡単に解説していきます。
WPF(Windows Presentation Foundation)とはマイクロソフト社が開発する、.NET Framework 3.0以降に含まれるユーザインタフェースサブシステムです。主にソフトウェアのユーザインターフェース(表示、操作処理など)を開発するための機能が用意されております。以前より同社が提供しているWindowsFormsに馴染みのある方は立ち上がり早く利用できるようです。
.NETのデスクトップ向けUI開発環境としてはWindows Formsの他にUWP(Universal Windows Platform)があります。WPFの特徴は「グラフィックス(Direct3D)」「Rendering Tier」「柔軟なUIカスタマイズ」などが挙げられます。XAML(ザムル)と呼ばれる XMLベースのマークアップ言語を用いて従来よりも高い操作性、表現力を持つアプリケーションの外観や動作を効率的に定義することができます。
WPFの読み方は『ダブリューピーエフ』が一般的となっております。正式名称は『Windows Presentation Foundation』であり、それぞれの頭文字を取ってWPFと呼ばれております。開発段階での呼び名は「Avalon」だったことが明かされております。
WPFを使用する環境を見ていきましょう。
.NET Frameworkとはマイクロソフト社が開発・提供するアプリケーション開発・実行環境用フレームワークです。主にVisual Studioで開発したプログラムをWindows上で動作させる
ためのに使用されます。Windowsアプリケーションのみならず、WebサービスやWebアプリケーションなどの開発をすることが出来ます。.NET Frameworkは『共通言語ランタイム』『基本クラスライブラリ』『フレームワーク』の3つで構成されております。また最大の特徴として『複数の言語で開発出来る』ということが挙げられます。
.NET Frameworkの基本情報や特徴などを解説している記事はこちら>>
Visual Studioとはマイクロソフト社が開発・提供するC#やVisual Basic(VB)向けの統合開発環境(IDE)です。統合開発環境とはソフトウェアの開発において必要な機能を豊富に取り揃えたプログラム環境用パッケージのことです。Visual Studioには開発をする上で必要な全て「コードエディタ」「コンパイラ」「デバッガ」などの様々なツールが集約されております。
1997年に初版がリリースされて以降、数々のアップデートを繰り返し2020年時点で『Visual Studio 2019』が最新バージョンとなっております。Visual Studioでは様々な種類が提供されており『Visual Studio Community』『Visual Studio Code』『Visual Studio Online』などが挙げられます。主な対応プログラミング言語としてC#、Visual Basic(VB)、C++が挙げられます。
Visual Studioの基本情報や特徴などを解説している記事はこちら>>
C#とはマイクロソフト社のアンダース・ヘルスバーグ氏が設計したプログラミング言語です。C#という言語はマイクロソフト社が開発した『.NET Framework(ドットネットフレームワーク)』と共に2000年に誕生しました。C#はマルチパラダイムと呼ばれる複数のスタイルから構成されており中でも、オブジェクト指向が主のスタイルです。言語名にも含まれている通り、C系の言語としてCやC++の影響を受けております。尚、設計者のアンダース・ヘルスバーグ氏が以前設計に携わったDelphiの影響も少なからずあるようです。C#の特徴として『マルチパラダイムでオブジェクト指向が主』、『.NET Framework』、『Windowsアプリの開発に向いている』などが挙げられます。C#はマイクロソフト社が開発・提供していることもありWindowsアプリケーションの開発に非常に向いております。
C#の基本情報やメリットなどを解説している記事はこちら>>
WPFはコアの部分にグラフィックス・ハードウェアを活用したレンダリング・エンジンを採用しています。レンダリング・エンジンはベクター・ベースのため、UI要素にスムーズな拡大・縮小/回転を掛けることができます。またハードウェア・アクセラレーションにより、CPUへの負担を最小限に抑えています。さらに全てのグラフィックスはDirect3Dを介して描画されます。Direct3Dを通して描画することにより、グラフィックスハードウェア上のGPUに描画処理の一部を任せることが可能になっております。
WPFはグラフィックスレンダリング層(Rendering Tier)というWPFアプリケーションを実行するデバイスのグラフィックハードウェア機能とパフォーマンスのレベルを定義しております。WPF3.5まで及び4.0以降は下記の表のように定義されております。
Rendering Tier 0(WPF3.5) | ・GPUアクセラレーション無し ・DirectX 7.0未満 |
Rendering Tier 1(WPF3.5) | ・一部GPUアクセラレーション有り ・DirectX 7.0以上、DirectX 9.0未満 |
Rendering Tier 2(WPF3.5) | ・ほとんどの機能がGPUアクセラレーションを使用 ・DirectX 9.0以上 |
Rendering Tier 0(WPF4.0) | ・GPUアクセラレーションなし ・DirectX 9.0未満 |
Rendering Tier 1(WPF4.0) | ・いくつかの機能はGPUアクセラレーションを使う ・DirectX 9.0以上 |
Rendering Tier 2(WPF4.0) | ・ほとんどの機能がGPUアクセラレーションを使う ・DirectX 9.0以上 |
WPFはUIカスタマイズのために用意されたライブラリが非常に豊富です。ボタン、メニュー、リストボックスなどといった基本的な組み込みコントロールが提供されているだけでなく、UI要素の機能拡張や外観のカスタマイズがWindows Formsと比較しても優れております。
WPFとWindows Formsの違いについて簡単に解説します。まず一言で違いを表すとWPFは『一から組み立てが可能』でありWindows Formsは『Windows 標準コントロールの上のレイヤー』となります。UIやグラフィック関連の機能拡張がWPFの方が優れていると言われております。その他の要素で比較した表は以下をご覧ください。
WPF | Windows Forms | |
機能拡張 | ◎ | ○ |
自由度 | ◎ | △ |
更新頻度 (サポート) |
◎ | △ |
学習コスト | ○ (Windows Formsに馴染みがあると良し) |
◎ |
WPFを理解するために初心者でも分かる使用環境、特徴、基礎知識などを簡単に解説させてしたいただきました。WPFを一言で表すと『ユーザインターフェース(表示、操作処理など)を開発するためツール』です。特徴として「グラフィックス(Direct3D)」「Rendering Tier」「柔軟なUIカスタマイズ」などが挙げられます。WPFについてこの記事に記載されている最低限理解をしておくようにしましょう。