本ページについて

マイクロソフトが提唱するXAML(eXtensible Application Markup Language)とWPF(Windows Presentation Foundation)について、自分への備忘録も兼ねて紹介する。
私自身プログラミングは素人であり、ここに掲載する内容の信憑性は保障できない。また現時点でWPF自体不安定要素が多いため、試行の際不具合が生じるかもしれないが一切責任を負わない。
一方でまだまだ情報が少ないWPFに関して、プログラマー、ウェブデザイナーの方など少しの手助けとなればと思っている。
このページが最新情報ではないので、最新情報は常にMicrosoftの公式の情報を参照していただきたい。本ページの現時点とは最終更新履歴時であることを確認いただきたい。
ページの作成指針としては、プログラマーだけではなく、ウェブデザイナーへも少しは有用になるように心がける予定である。

更新履歴

WPFとは?

WPF(Windows Presentation Foundation)とは、Microsoftが提唱する”華やかな表現(プレゼンテーション)ができるウェブおよびアプリケーションのプログラミング基盤”である。
これではよくわからないので、Microsoft WPFのページから引用する。

Windows Presentation Foundation (前のコード名「Avalon」) は、Windows 用のプレゼンテーション サブシステムで、WinFX を通じて公開されます。WinFX は、Microsoft .NET Framework を拡張する Windows Vista's のマネージ コードのプログラミング モデルです。Windows Presentation Foundation (WPF) は、最新のグラフィック ハードウェアを活用する表示エンジンと視覚的に優れたアプリケーションを作成できるマネージ クラスの拡張セットで構成されます。 WPF は XAML (Extensible Application Markup Language) も導入します。XAML を使用することにより、開発者およびデザイナは XML ベースのモデルを通じて、ユーザー インターフェイスの必要な動作を宣言的に指定できます。

これではよりわかりにくい。私の勝手な解釈を箇条書きで示す。

同じような内容が連呼されているが、こんな感じであろうか?
Windows Vistaはウインドウが半透明のアプリケーションだったり、3次元表現であったり、いろいろ華やかな表現ができるようになるようだ。
私は以前、”Vistaで動く派手な演出ができるプログラム”というイメージでほとんど興味を持たなかったのだが、最近になって調べてみると、
Vistaでのスタンドアロンアプリケーションだけでなく、XAMLブラウザ上で動作するXBAPというのが出てきていた。
更に興味深いのは、XBAPはWPF/EによりWindowsだけではなく、Mac OS Xなどでも動作が可能となるらしい。
つまりWPFは、現在Windows, Mac OS X, Linuxなどで動作するインタラクティブウェブの代名詞Flash + Flexとの競合技術といえる。
WPFが次世代のウェブのデファクトスタンダードとなるかは未知数であるが、Windowsのシェア、Microsoftの今までの戦略を考えると0ではない。

本ページにてウェブディレクター、ウェブデザイナー、ウェブプログラマーの方々が少しだけ先取りしてWPFウェブ開発の概念の理解に役立つことを願う。

このセクションの最終更新日:2006.10.31

WPFの実行環境を整える

WPFの実行環境を実現するためには、現在2つの方法がある。
ここで”実行環境”とはWPFおよびXAMLなどのコンテンツを実行、表示させるために必要な環境(ランタイム)であり、開発環境は後述のように、プログラマーサイド、デザイナーサイドでそれぞれ分けて構築する。

  1. Windows Vista (RC1)
  2. Windows XP SP2 + .NET Framework 3.0 (RC1)

現在は上記の2つだけであるが、マイクロソフトはWPFのサブセットであるWPF/E(Windows Presentation Foundation / Everywhere)によって、最新のWindowsだけではなくMac OS XやFirefoxブラウザなどでもWPFを実現できると発表している。
参考:【レポート】MIX 06 - XMLをWebプラットフォームに(1) -- WPF/EをFirefoxとMacでデモ (MYCOMジャーナル)

1. Windows Vista (RC1)

2007年初頭に発売が予定されているWindows Vistaには、WPFは最初から含まれている。というよりもWPFはVistaのウリのひとつである。
現在、RC1(Released Candidate 1)というほぼ製品版がMicrosoftから配布されているので、それを利用すれば発売前からVistaを体験できる。
ちなみに私は本業に差し支えがあるので、不安定要素がありうるVista RCは利用せず、WPFは後述するWindows XP上で構築している。

WPF実行環境構築作業:なし(標準付属)

2. Windows XP SP2 + .NET Framework 3.0 (RC)

私も含め多くの方が、Windows XP SP2(以下WinXP)を利用していると思う。WPF自体がVistaの製品版出荷とともに正式リリースとなるので、まだ不安定な要素はありうる。
気軽にWPF, XAMLなどを試すにはこちらの環境が良いと思われる。
Windows Vistaが今冬発表されるXPの時代もそろそろ終わるが、WPFを実現する.NET FrameworkはXPでデフォルトでインストールされることはなかった(Microsoft Updateのカスタムで.NET Frameworkはインストール可能)。つまりWPFが一般の人々が利用するようになるのは、Vistaがある程度シェアを持つ1,2年後かと思われる。
Googleの台頭により以前ほどMicrosoftの思うようにネット、IT業界が動かなくなってきている。WPFが本当に次世代のウェブのデファクトスタンダードになるかは、Vistaが世界中のPCに広がるころまでのMicrosoftの戦略で決まる。

WPF実行環境構築作業:

  1. Windows XPがSP2(Service Pack 2)であるかを確認する。確認方法はマイコンピュータを右クリックしてプロパティで表示される。SP2でない場合はMicrosoft Updateにてアップデート。
  2. .NET Framework 3.0 (RC)をインストールする。3.0はまだRCであるのでMicrosoft Updateのカスタムインストールでは選択できない。
    マイクロソフト プレリリース ソフトウェア Microsoft .NET Framework 3.0 - Release Candidate - 2006/09/01
  3. 以上で作業は終了。下のサンプルプログラムで動作確認してほしい。

このセクションの最終更新日:2006.10.31

WPF実行環境テストサンプル1:XAMLファイルの実行

このサンプルは、WPFによって構築されたXAMLブラウザで実行していることになる。見た目はInternet Explorerだが中でXAMLブラウザが動いている。
今までのウェブブラウザーは、XHTML(HTML)を実行(表示)されることが一般的であったが、MicrosoftはこのWPFによるXAMLブラウザで、
XHTMLよりもより表現力が高いXAMLを次世代のウェブ標準言語としてアピールしている。
MicrosoftはWPF/EによりWindowsだけではなく、Mac OS X(Linuxはまだ表明していない)などでも実行できるようにするらしい。

このセクションの最終更新日:2006.10.31

WPF実行環境テストサンプル2:Adobe IllustratorからエクスポートしたXAMLファイルの実行

WPFによるXAMLアプリケーションの魅力は、デザイナー(Webデザイナーだけではなく、Webは苦手だけどIllustratorは得意なデザイナーなど)がXAMLによってウェブのデザイン、アニメーションなどのプレゼンテーション部を記述し、
プログラマーが、その後ろで動くプログラム部をC#, VB言語などで分業して開発できる点にある。今までのXHTMLベースのウェブアプリケーションは、CSSである程度デザインが分けられるとは言え、やはりXHTMLを中心として、
デザイナーとプログラマが作業を取り合う開発であった。更にXAMLはこのサンプルのようにXHTMLとは比較にならない表現力を持っているので、デザイナーたちにとっては本格的に彼らのセンスをウェブに投入できるのではないだろうか?
プログラマーは、XAMLファイルにぶら下がるスクリプトを分業開発できるため”いろいろ”便利になる。ぶら下がるスクリプトとは、たとえばtest.xamlというファイルであればこのXAMLファイルをドライブするスクリプトはC#言語なら
test.xaml.csというXAMLとは別のC#言語ファイルで制御できる。

このセクションの最終更新日:2006.10.31

WPF実行環境テストサンプル3:XBAPアプリケーションサンプル(人工衛星軌道計算)

サンプル1,2は、XAMLを直接表示していただけのサンプルである。
一方でXAMLの後ろでC#言語などを用いて処理をしその結果を返すWPFのウェブアプリケーション版をXBAP(XAML Browser APplication)と呼ぶ。
このサンプル3では、本業の人工衛星関係のアプリケーションとして人工衛星の軌道計算を行うXBAPを作ってみた。

このセクションの最終更新日:2006.10.31

WPFのデザイン・開発環境を整える

これ以下は,XAML, WPFによるウェブアプリケーション・スタンドアプリケーションを作ってみたい方のみ参考にしてほしい。
WPFのデザイン環境・開発環境を構築する。
WPFはプレゼンテーション部のXAMLおよびバック処理のC#言語などのように分業開発が可能である。
そこで、デザイン・開発環境としてデザイナーサイドの環境とプログラマーサイドの環境を別個に紹介する。

デザイナーサイド環境

XAMLはサンプル1,2で示したように、2D、3D、アニメーションなどXHTMLに比べかなり多彩な表現力を持つ。
ここで注目すべきは、XAMLは、XHTMLの表現力が豊かになっただけではなく、ボタンアクションなどのインタラクション機能もXAMLだけで実現できる点である
このサンプルPostcard (XAML sample) @ windojitsu.comは、XAMLだけでボタンアクション+3Dアニメーションを実現している。

今後WPFが一般的になってくると仮定した場合、各社からXAMLデザインツールが発売されると考えられるが、現時点ではまだまだ少ない。そのいくつかを紹介する。

プログラマーサイド環境

WPFプログラミングができるのは、現在Microsoft Visual Studio 2005のみである。
環境構築に関しては、Microsoft公式のページを参照すると良い。
参考:Windows Vista, .NET Framework 3.0 Runtime and Windows SDK Downloads
この参考ページと同等の作業を以下に列挙する。
WPF開発環境構築作業:

  1. (当たり前だが)上のWPFランタイムは既にインストールされているものとする。
  2. Visual Studio 2005をインストールする。Visual Studio 2005 Express Editionは無償。
  3. Windows SDKをインストールする(非常に時間がかかる)。Microsoft Windows Software Development Kit (Web) for RC 1 of Windows Vista and .NET Framework 3.0 Runtime Components - 8/26/2006
  4. "Orcas" .NET Framework 3.0 Development Toolsをインストールする。Microsoft Visual Studio Code Name “Orcas” Community Technology Preview – Development Tools for .NET Framework 3.0 - 9/22/2006
  5. (WWF : Windows Workflow Foundationを利用するなら)Visual Studio 2005 Extensions for Windows Workflow Foundationをインストールする。Microsoft Visual Studio 2005 Extensions for Windows Workflow Foundation Release Candidate 5 - 9/1/2006

このセクションの最終更新日:2006.11.01

WBAP開発の仕方(簡単に解説)

WPFは、Windows ApplicationとXAML Browser Application(XBAP)の2種類のアプリケーション形式がある。ここでは後者のXBAPを紹介する。

未執筆

このセクションの最終更新日:2006.10.31

競合技術

競合技術を語るのは難しい。下に挙げてあるが技術的に同格ではない気もする。以下たわごと(信憑性0)
個人的にJSF + J2EEは好きではあるが、開発スピード、実行パフォーマンス、コストの面から今後厳しいのではないかと思っている
Flash + Flexはリッチクライアントの優であるFlashがシェアも高く良い気がするがFlexサーバの値段が高いのが難点ではないだろうか?
AJAXはGoogleを筆頭に現在かなり騒がれているが、JavaScriptにはやはり限界があるし第一にデバッグし難い(良いデバッグ環境がでてきているようだが・・)。
XAML on WPFマイクロソフト独自規格なのでこれがそのままデファクトになるかはわからないが、純粋にXAMLの表現力とXBAPの開発スピードは他の環境の比較にならない。エンジニアにとってはこれがデファクトになると仕事量が減るのでは?

このセクションの最終更新日:2006.10.31

付録1:Apache HTTP daemon (ウェブサーバ)によるXBAPの配信方法

XBAPはASP.NETによるウェブアプリケーションではないため、ウェブサーバはIISである必要はない。
実際に本ページのサンプルXBAPはApache on Linuxで配信している。
しかし少しhttpd.confを変更しないと配信できないため紹介する。

httpd.confに以下の記述を追加する。

AddType application/manifest manifest
AddType application/xaml+xml xaml
AddType application/x-ms-application application
AddType application/x-ms-xbap xbap
AddType application/octet-stream deploy

単純に、XBAP関係のアプリケーションタイプを追加するだけで配信可能である。
ちなみにConfiguring Apache to Serve Avalon at laurenlavoie.comを参考にした。

このセクションの最終更新日:2006.10.31

リンク(Microsoft公式:日本語)

このセクションの最終更新日:2006.10.31

リンク(英語)

このセクションの最終更新日:2006.10.31

リンク(日本語)

このセクションの最終更新日:2006.10.31

Site Information

Copyright ©, spacewalker.jp, 2006, All Rights Reserved.

Author: Naoki Miyashita
Blog : spacewalker Last Revised: Date: 2006/10/31

This site is validated by ...
Valid XHTML 1.1! Valid CSS!