ページ

2006年3月30日木曜日

WPF と WPF/E

WPF、WPF/E の情報がいろいろとあったのでまとめて


Microsoft goes cross-platform with WPF/Everywhere
Tim Anderson 氏が Forest Key 氏 (Microsoft の Director of Developer Tools Product Management) と話したことをまとめた記事です。WPF と WPF/E の概論といった感じです。何箇所かで "great article" といった感じで紹介されてました。


XAML and IL
上の Tim Anderson 氏の記事のコメントが発端みたいですが MSDN Forum に 「XAML と IL の関係がはっきりしない」 と質問して、それに対する回答です。
XAML の持ち方としては、



  1. アセンブリにコンパイル
    .csproj/.vbproj ファイルに <Page Include="Page1.xaml" /> と含めるとアセンブリにコンパイルされて含まれる (.baml と関連する .g.cs/.g.vb)

  2. アセンブリにインクルード
    .csproj/.vbproj ファイルに <Resource Include="Page1.xaml" /> と含めるとアセンブリにインクルードされる (XAML はテキストファイルのまま)

  3. アプリと分離
    .csproj/.vbproj ファイルに <Content Include="Page1.xaml" /> と含めると exe とは分離される (ClickOnce 風。.exe.manifest にリストされる)

  4. その他
    .csproj/.vbproj に含めずにサーバ上やファイルシステム上に置く

といった種類があるみたいです。そして、WPF は A のパターンが基本、XPS はテキスト形式のままの XAML を持つ (XPS の中に IL を持つことはサポートしない。XPS はいろいろなデバイスやプリンタで使われるので扱いやすいようにテキスト形式のままにする)、WPF/E は XML ファイルのままの予定 (zip にすればサイズは小さくできる)、という感じみたいです。


XAML Language and XAML Formats
XAML 言語の種類を整理してくれてます (XAML の "L" は Language の "L" じゃないのかな?であれば、XAML Language っておかしいような気がするけど)。



  1. XAML Language - コア言語。XamlReader が XML 内のエレメント、アトリビュート、内容をオブジェクトのツリーとしてどう取り扱うかを定義する。XAML Language の仕様ままだ公開してない。Chuck の XAML の記事 がいいスタートになる。

  2. WPF XAML - WPF の内容 (ベクタグラフィックス、コントロール、3D、ドキュメントなど) を記述するエレメントのセット。WPF XAML のリファレンスは Windows SDK にある。

  3. XPS XAML - XPS のための WPF XAML のサブセット。XPF は XML Paper Specification のことで、独立したオープンな仕様である。この仕様は XPS ドキュメントファイルフォーマット (ページを持つ電子文書の XML ベースの表現) のアーキテクチャを記述する。仕様はこちら オーバービュー 仕様書

  4. WPF/E XAML - クロスプラットホームのための WPF XAML のサブセット。たとえば、現在の予定では 3D はなく、いくつかのコントロールがない。

  5. WF XAML - Windows Workflow のアクティビティなどの内容を記述する要素のシリーズ。More Info.

3 Coding Styles for Avalon Applications
WPF には 3種類の作り方があるそうです。



  1. 全部コードで書く。

  2. コード + XAML (実行時に XamlReader で読み込む)

  3. コード + コンパイルされた XAML (Microsoft の開発ツールはこのスタイルを推奨する)

リンク先にはサンプルコード + XAML も載ってます (1年ほど前の記事なので Avalon になってますが、後半に Feb 2006 CTP 用に修正したサンプルも載ってます)。


Dynamically load a Xaml file from a C++ app
C++/CLI で WPF してます。XamlReader を使ってるのはまだ C++/CLI 用の WPF 開発環境がないからでしょうね。


Short Video showing basic XAML and Databinding
XAML でのデータバインディングの紹介ビデオが紹介されています。

0 件のコメント:

コメントを投稿