マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

  • WPFは、.NET Framework 3.0で新しく提供され、Windows Vistaで全面的に採用された、
    リッチでインタラクティブなUIアプリケーションを開発・実行するためのUIサブシステム

(クラス ライブラリ・UIコントロールのセットを含むランタイム・フレームワーク)。

  • Windows VistaのUIサブシステムにはWPFが全面的に採用されており、
    今後のWindowsのUIアプリケーション開発の標準技術として利用できる。

XAML

WPF/Silverlightは、XAML based UIとも呼ばれ、
XAMLというマークアップ言語によってデザインされる。

XAMLの書き方(1)

XAMLの書き方(2)

WPF

Windowsプラットフォーム。

WPFの機能

WPFのアーキテクチャ

WPFのコントロール

Silverlight

クロスプラットフォーム(アプレットのような)

追加

UWP

WPFと同様に、Windowsプラットフォーム。

Xamarin

クロスプラットフォーム(スマホ・ネイティブ)

特徴

WPF / Silverlightは、高速なグラフィックスではなく、

  • メディア リッチ:音声・動画の組み合わせ
  • インタラクティビティー:画像や音声などによって示される内容に応答する操作性

を実現するUIサブシステムであるため、

  • Direct3D
  • DirectShow?
  • Media Foundation

などを使用して開発する3Dゲームや高品質なビデオ再生アプリの開発には向かないが、
業務アプリケーション開発に必要な標準コントロールを備えており、
従来の業務アプリケーションにリッチでインタラクティブな効果を追加可能。

開発環境

  • WPF / Silverlight は、Visual Studio 2008以降や、Expression Blendを使用して開発が可能。
  • Expression Blendはデザイナ向けツールであり、VSに無い以下の機能を有している。
    • GUIを使用した図形オブジェクトの作成・編集
    • GUIを使用したグラデーションの作成・編集
    • GUIを使用したアニメーションの作成・編集
    • ,etc.

実行環境

WPFは、.NET Framework 3.0以上でサポートされており、Windows XPでも動作可能である。ただし、Windows XPは、Windows Vistaとディスプレイ ドライバ モデルが異なるため、条件によっては、GPUによるハードウェア レンダリングが使用できず、ソフトウェア レンダリングになることでCPUへの負荷が増えたり、見え方が若干変わったりする場合もある。

WPF/SilverlightのOS要件

項番OSWPF(.NET Framework)Silverlight 3Silverlight 4
3.03.54.0
1Windows 7
2Windows Server 2008 R2
3Windows Vista
4Windows Server 2008
5Windows XP
6Windows Server 2003
7Windows 2000 (SP4)
8Mac OS X 10.4.11 以上(Intelベース)

ハードウェア要件、追加のソフトウェア要件を含めた詳細は以下を参照

開発方法

WPF / Silverlightアプリケーションの開発には以下のような特徴がある。

  • WPF / Silverlightでは、P層のUI部分を(HTMLのようなXMLベースのマークアップ言語である)XAMLをVS・Expression Blendなどのツールを使用して記述し、イベントなどのプログラム部分はC#、VBを使用して開発する(Sliverlight 1.0はJavaScriptのみ対応)。UI部分とプログラム部分を分離して記述・実装できる。
  • ASP.NETアプリケーション(Webフォーム)のHTML + ASPタグのように、マークアップ言語であるXAMLから、UI要素が生成され、分離クラス(コードビハインド)にイベント処理などの業務処理を実装するという、従来からのイベント・ドリブン、UIコンポーネントベースのプログラミング・モデルを継承するUIテクノロジ。

また、XAMLは、XMLをベースとしており各要素からツリー構造のCLRオブジェクトをインスタンス化できる。このため、XAMLは、「ツリー構造のCLRオブジェクトをインスタンス化するためのマークアップ言語」と説明することも可能である 。XAMLによるCLRオブジェクト生成の例は、以下を参考にできる。

UI部分とプログラム部分を分離して記述・実装

UI部分にXAML、プログラム部分にCLR言語と、UI・プログラム部分を分離して記述・実装できるので、Webアプリケーションと同様に画面デザイン(画面モックアップ開発)とプログラム開発の分業が可能である。例えば、UI開発ツールに特化したExpression Blendで、VSソリューション(プロジェクト)ファイルをそのまま開き、XAMLを直接作成・編集することもできる。

WPFにおける分離コードを実現するためには、従来のWindowsフォームや、ASP.NETアプリケーション(Webフォーム)と同様に、分離クラス(コードビハインド)と、.NET Framework 2.0からサポートされたパーシャル クラスが使用される。XAMLファイルから分離クラス(コードビハインド)ファイルを関連付けるためには、XAML上で「x:Class」、「x:Subclass」、「x:ClassModifier?」などのディレクティブを定義する。なお、「x:Code」ディレクティブを定義すればXAML上にインラインでコードを実装することもできる。また、分離クラス(コードビハインド)ファイルから、XAMLファイルで生成したCLRオブジェクトにアクセスするには、「x:Name」ディレクティブ、または、Name属性を付与する必要がある。これらのディレクティブについては、「ディレクティブ」を参照のこと。

WPFにおけるビルド アクション

中間生成物であるパーシャル クラスは、ビルド アクション = Pageに設定されている(WindowやPageの)XAMLから生成され、分離クラス(コードビハインド)と統合されてビルドされる。

プログラム部分は、VB・C#を使用して実装

XAMLの記述方法

テキスト ベースの記述、デザイナを使用した記述が可能。

  • Expression Blendを使用して
    • テキスト ベースの記述(IntelliSense?を活用)
    • デザイナを使用した記述

が可能。

  • 従来のWindows Formsと同様にVSを使用して、
    • テキスト ベースの記述(IntelliSense?を活用)
    • デザイナを使用した記述

が可能 。

通常は、VSを利用すればIDE機能としては事足りるが、Expression Blendでしかできない「デザイナ向け機能?」を使用する場合は、Expression Blendを使用する。

プログラムの実装方法

WPF / Silverlightアプリケーション開発は、C#、VBなどの、標準的なプログラム言語を使用できるため開発要員を確保しやすい。また、VSデザイナを使用すれば、Windowsフォーム、ASP.NETアプリケーション(Webフォーム)と同様な開発が可能であることが分かる。また、WPF / Silverlightの双方で、ランタイムは異なるもののUIサブシステムのフレームワークの基本的な構造については同じものを共用できる。このUIサブシステムのフレームワークを習得すれば、双方の開発が可能となる(ただし、双方の違いは理解しておく必要がある。「Silverlight」を参照)。ただし、高度な処理を実装する場合や、トラブルシュートを行う場合は、UIサブシステムのフレームワーク、XAMLの読み方・書き方をある程度は知っておく必要がある。しかし、これらの仕様は大きく、複雑で把握するのに時間がかかる。この点に関して、WPF / Silverlightアプリケーションの開発は、敷居が高いと言える。

国際化対応

WPFの場合

Silverlightの場合

参考

CodeZine?

@IT > Insider.NET

WPF/E

WPF/Silverlight UIフレームワーク入門

http://www.atmarkit.co.jp/fdotnet/vblab/uiframework_index/index.html


Tags: :.NET開発, :UIサブシステム, :WPF/Silverlight, XAML, :国際化対応


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-08-23 (金) 14:57:32 (90d)