【WPF入門】デスクトップアプリケーションが作成できるUI「WPF」とは

WPFはWindows Presentation Foundationの略で、GUI(グラフィカルユーザーインターフェイス)を作成することが出来るUIサブシステムです。フレームワークは.NET Frameworkを利用しているため、同じフレームワークを利用するASP.NETやWindows Formsなどと共通した部分を持っています。
- システム
エンジニア - WPFってどんなことができるんですか?
- プロジェクト
マネージャー - フォームやボタンを含んだWindowsアプリケーションが開発できます。Windows Formsなどとは似て非なるものなので、さっそくどんなものかを見ていきましょう。
WPFの概要
WPFはXAML(Extensible Application Markup Language)という言語を用いて外観をデザインします。XMLと形式が同じなので、HTML になじみがあれば感覚的には近いものを感じるでしょう。
処理部分の実装はC#で記述して、フォーム部分とのデータバインディングを行います。このように、外観と処理部分を分けて開発することになるので、プロジェクト形式での開発の切り分けにおいて、デザイン部分と処理部分の役割分担もしやすいです。
WPFの特徴
WPFでは、BindingとMVVMパターンという2つの特徴を持っています。Bindingは外観部分にデータを表示する場合などに、「データをここに表示する」という目印をつけておき、データそのものは別のファイルから引っ張ってくるやり方です。
MVVMパターンは、Model-View-ViewModelパターンの略で、データ部とのやり取りや整合チェックをするモデル、外観部分のビュー、データ部とビューの伝達を行うビューモデルによって切り分けられています。
WPFの使い方
WPFを実際に使う場合には、主にVisual Studioを利用することが多いでしょう。データの整合チェックなどはもちろんのこと、外観のデザイン作成が容易に行えるので、コードを直接打っていくやり方よりは、格段にエラーが少なくなります。
Visual Studioでは、新規作成タブからプロジェクト選択時に空のWPFアプリケーションを自動で作成することが出来るので、あとは外観と処理部分を実装していくだけです。
おおまかなコード作成の流れは、「外観部分のデザイン→データ部のクラスを作成→データ部のクラスをコンストラクタでインスタンス化して表示」といった具合です。
- システム
エンジニア - 少しコード同士の連携の仕方がわかりづらい印象ですね。
- プロジェクト
マネージャー - 慣れるまでは少し時間が掛かるかもですが、Windows Formsよりもできることも多いので、概念をつかんでいくと良いですよ。
WPFは慣れれば開発が容易
WPFの開発の流れは、従来のコード開発と比べると少し複雑な側面を持っています。しかし、慣れてしまえば逆にデータ部と外観部との切り分けがされているため、開発が容易にできるのが特徴です。また、応用の幅や可能性も広がるので、より柔軟なプログラムを作りたいならばマスターしておくと良いでしょう。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。


新着案件New Job
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅) -
PMO/東京都豊島区/【WEB面談可】/在宅勤務
月給55万~55万円東京都豊島区(池袋駅)