「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。 目次 †概要 †
XAML †WPF / Silverlightは、XAML based UIとも呼ばれ、 XAMLの書き方(1) †XAMLの書き方(2) †WPF †Windowsプラットフォームに限定される。 WPFの機能 †WPFのアーキテクチャ †WPFのコントロール †Silverlight †クロスプラットフォーム(アプレットのような) WPF / Silverlight以降 †特徴 †WPF / Silverlightは、高速なグラフィックスではなく、
を実現するUIサブシステムであるため、
などを使用して開発する3Dゲームや高品質なビデオ再生アプリの開発には向かないが、 開発環境 †
実行環境 †WPFは、.NET Framework 3.0以上でサポートされており、Windows XPでも動作可能である。ただし、Windows XPは、Windows Vistaとディスプレイ ドライバ モデルが異なるため、条件によっては、GPUによるハードウェア レンダリングが使用できず、ソフトウェア レンダリングになることでCPUへの負荷が増えたり、見え方が若干変わったりする場合もある。 WPF / SilverlightのOS要件
ハードウェア要件、追加のソフトウェア要件を含めた詳細は以下を参照
開発方法 †WPF / Silverlightアプリケーションの開発には以下のような特徴がある。
また、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の記述方法 †テキスト ベースの記述、デザイナを使用した記述が可能。
プログラムの実装方法 †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, :国際化対応 |