Windowsデスクトップアプリ開発にWPF

Windowsデスクトップアプリケーション開発には、Windowsフォームのほか、WPF(Windows Presentation Foundation)プラットフォームの採用という選択肢があります。

WPFにはXAML(eXtensible Application Markup Language:ザムル)言語や、データバインディングといった、Windowsフォームには存在しない概念や、従来とは異なるグラフィック描画方式を採用しています。

このWPFの特性を理解し活用することで、Windowsフォームを超える開発生産性の高さで、柔軟な画面レイアウトが実現するアプリケーションが開発できます。

優れたグラフィック処理

WPFは3Dグラフィックスを描画するためのAPIである「Direct3D」を介してすべてのグラフィックの描画を行います。GPUによるハードウェアアクセラレーションも行われるので、Windowsフォームと比較してCPUの負担を軽減することができます。

柔軟なUIカスタマイズ

WPFは既定のテンプレートを編集したり独自のテンプレートを新たに定義したりすることで、コントロールの外観を自由に変えたり、複数のUI要素を統合したりと、Windowsフォームとは一線を画すUIカスタマイズの柔軟性を持ちます。

外観を定義するテンプレートやスタイルはXAMLにより定義し、複数のUI要素で共有できるほか、異なるアプリケーションでも流用できるため、開発工数の削減にも寄与します。

再利用性に優れたMVVM設計

ソフトウェアアーキテクチャパターンであるMVVM(Model-View-ViewModel 、モデル・ビュー・ビューモデル)は、ビジネスロジックとUIを分離して開発できることから、開発生産性や再利用性の高さが評価され採用されています。

UWP(Universal Windows Platform:ユニバーサル ウィンドウズ プラットフォーム)やXamarinもMVVM設計が可能で、また開発にはXAMLを使用するため、WPFでの資産を再利用でき、アプリケーション開発における保守性・開発生産性に寄与します。

関連技術情報

MVVMフレームワーク「Prism」上でSPREAD for WPFを使う

MVVMの実装をサポートするフレームワーク「Prism」上でSPREAD for WPFを使用する方法を紹介します。

GrapeCity.devlogで記事を見る
SPREAD for WPFでMVVMパターンのアプリケーションを作成する

CodeZineに掲載された記事です。
MVVMパターンを使用したアプリケーションを作成する方法を紹介しています。

CodeZineで記事を見る
実践WPF業務アプリケーションのアーキテクチャ

現役エンジニアがMVVMを採用した開発について解説しています。

GrapeCity.devlogで記事を見る
Excelと同様の操作性はWPFアプリでも求められる

利用者からの要望で実装したSPREAD for WPFの機能を解説しています。

GrapeCity.devlogで記事を見る
「GrapeCity ECHO 2017」レポート

XAMLをテーマに開催した技術カンファレンスの開催レポートです。資料も公開しています。

GrapeCity.devlogで記事を見る
WPF関連の技術記事

GrapeCity.devlogで公開している「WPF」カテゴリーの技術記事一覧です。

GrapeCity.devlogで記事を見る

導入事例・パートナー

ヤフー株式会社

200万行でも高速に表示!パフォーマンスにこだわり続けた広告入稿管理システム

導入事例を見る

三菱電機メカトロニクスソフトウエア株式会社

Microsoft Office 365に近い外観のシステムをWPFで実現

導入事例を見る

株式会社マーベリック

XAML関連開発も経験豊富な導入支援パートナー企業。「IT×デザイン」をコンセプトに、エンドユーザーが本当に喜ぶアプリケーションの提供を目指しています。

詳しく見る

この記事で解説したWPF用コンポーネント

SPREAD

[スプレッド]
Excelのような見た目と操作性に加え
自由レイアウトにも対応したグリッドコンポーネント

デモを試す
詳しく見る

ActiveReports

[アクティブレポート]
日本の帳票開発に必要なすべての機能を
搭載したコンポーネント

デモを試す
詳しく見る

InputMan

[インプットマン]
入力操作を楽にする機能を多数搭載した
入力用コントロールセット

デモを試す
詳しく見る

ComponentOne

[コンポーネントワン]
UIコントロールセット
多様な環境でアプリ開発を支援

デモを試す
詳しく見る