WPF概要

WPF(Windows Presentation Foundation)とは

一言で言えば、Windows用アプリケーション開発のためのGUIライブラリ。細かい事を言えば.NET Framework上で動作するため、ターゲット環境はWindowsに限るわけではないし、GUIライブラリというよりは、GUIアプリ開発のためのフレームワークと呼べるかもしれない。

いずれにしてもWindowsで、しかも.Net Frameworkを使ったGUIアプリ開発をする際にはWindows Formsと並んで選択肢の一つとなる存在。WPFの方が後発である分、先進的な設計思想に基づいて作られている。Windows Formsの後継というほどではないが、Microsoftとしては今後はWindows FormからWPFの開発へ注力してくらしい。

WPFの特徴

Windows FormsやVisual C++におけるMFCなどと比較して、特記すべき事項は
  1. ロジックとインターフェースの分離が可能
  2. ただでさえ動作の重い.Net Frameworkだが、それに輪をかけて重い
  3. 描画はDirect3Dを用いるためGPUの恩恵を受けれる
  4. データドリブンなアプリケーションを作成できる(データバインディング)
1.は、WebにおけるHTMLとJavaScriptの関係に似てるのかもしれない。WPFではUI部分をXAMLと呼ばれるXMLで記述し、処理の部分をC#やVisual Basicで記述する。UI部分のXML記述する方式はAdobe AirやSilverlightのようなRIAにもよく見られる。XAMLの仕様も膨大なものになっているので私も触りしか把握できていないが、HTMLとCSSの関係のようにUIの構造と見栄えも分離できれば良いと思うのが、見栄えも今のところXAMLで定義するようだ。複雑な見栄えはExpression Blend等の外部ツールで定義することをMicrosoftは想定しているようだ。

2. フレームワークの多用は開発が容易になる反面、実行速度が犠牲になりがちだがWPFも例外ではない。とはいえ起動は遅いものの体感では問題になるほどではなかった。対象ユーザを考慮して、非力なPCが想定される場合は、WPFの選択には注意が必要。

3. マルチメディア・グラフィック周りの対応が充実しているので、特に意識せずコードを書いてもGPUを活用してくれるのは有り難いだろう。私はこの辺りを意識しないといけないアプリを書いたことが無いので、あまり書けることがないです。

4. WPFでの開発において肝となる部分であり、同時に慣れない者にとっては最大の壁となる概念。要はデータとUIコントロールを文字通り結びつけて(バインド)して、データが更新されればそれは即座にUIコントロールに反映される。逆にUIコントロールから編集作業をすればそのままデータが更新される。データが更新されてもユーザーが更新操作をしなければ反映できなかったイベントドリブンに比べれば、容易かつ直感的なアプローチで開発できる。が、どのコントロールにどんなデータがバインドできるのか、どのような方法でバインドするのかといった情報が乏しい。DataBaseのデータも直接バインドできるため、これが主な用途と思われるが情報もこれに偏っているおり私は非常に困っている最中です。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2011年02月23日 18:47