SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Vista時代のプログラミングモデル .NET Framework 3.0入門

WPF(Windows Presentation Foundation)+XAML入門 前編

Vista時代のプログラミングモデル .NET Framework 3.0入門(1)


  • X ポスト
  • このエントリーをはてなブックマークに追加

WPFのアプリケーション形態

 WPFは以下の2種類のアプリケーション形態で使用することができます。

  1. スタンドアロンWindowsアプリケーション
  2. XAMLブラウザアプリケーション

 その他、WPFの名前が使われている技術としてWPF/Eがあります。

スタンドアロンWindowsアプリケーション

 通常のWindows Formsアプリケーションと同様の、スタンドアロン型のアプリケーションです。これまで敷居が高かった3Dなどの技術を用いたアプリケーション開発に活用できます。また、通常のWindows Formsで実装できるアプリケーションであっても、前述のように、XAMLファイルを作成するデザイナとプログラム部を実装する開発者が上手に協働しながら、見栄えの良いアプリケーション開発を行うことができます。

XAMLブラウザアプリケーション(XBAP)

 Webブラウザ上で動作する、XAMLを使用したプログラムです。ただ、WPFを使用している関係上、すべてのWebブラウザで動作するわけではなく、.NET Framework 3.0をインストールしたWindows上で動作するInternet Explorer 6.0以降のWebブラウザ(およびInternet Explorerと互換性を持つブラウザ)でしか使用することができません。従ってXAMLブラウザアプリケーションはFlashやAjaxのように汎用的に使用できる仕組みではありません。汎用的な用途には後述するWPF/Eを使用してください。

 XAMLブラウザアプリケーションは、これまでノータッチデプロイメント(.NET Framework 1.0/1.1)・ClickOnce(.NET Framework 2.0)などの技術を用いて開発していた、リッチクライアント開発に適していると言えるでしょう。

ClickOnceとの関係
 XAMLブラウザアプリケーションはClickOnceを置き換える技術というわけではなく、実際にはClickOnceのフレームワークで実行されています。ただし通常のClickOnceアプリケーションがオフライン時でも動作するのに対し、XAMLブラウザアプリケーションはオンライン専用となっています。

WPF/E

 WPF/E(Windows Presentation Foundation/Everywhere)とは、名称からも分かる通り、WPFをさまざまな環境で動作させるためのフレームワークです。具体的には、Windows以外のOS(現在のところMac OS Xのみ)、Internet Explorer以外のWebブラウザ(Firefox/Safariなど)でXAMLをベースとしたWPF/Eアプリケーションを動作させることができます。ActiveX・Firefoxプラグインなどで提供されるWPF/EのランタイムをWebブラウザにインストールすることで、WPF/Eアプリケーションに対応します。

 WPFアプリケーションと大きく異なるのは、実装言語として、C#/VB.NET以外にJavaScriptを使用することができる点です。JavaScriptへ対応する関係上、WPFアプリケーションとは異なるプログラミングモデルを持っており、XAMLという共通部分はありますが、WPFとは異なるテクノロジとして位置づけるのが適切でしょう。

 WPF/Eは対応するクライアントの範囲が広いため、Flashの代替ソリューションとして、アニメーションやWebアプリケーションと連携する部分などで活用可能です。その場合、使い慣れた.NET言語を開発に使用できる点などがメリットとなります。

WPFで提供されるコントロール群

 WPFはWindows Formsのスーパーセットであり、その他多数のコントロールを提供しています。ここではコントロールが所属する名前空間および所属するコントロールのうち代表的なものを紹介します。詳細についてはWindows SDKのドキュメントを参照してください。

WPFが提供する名前空間
名前空間概要
System.Windowsアプリケーションやウィンドウなど、WPFのベースとなるコントロールが含まれる
System.Windows.Controlsボタンやテキストボックスなど、ウィンドウ上に配置するコントロールおよびコントロールのコンテナであるパネルが含まれる
System.Windows.Shapes図形描画コントロールが含まれる
System.Windows.Mediaベクタグラフィック・オーディオ・ビデオ・テキストなどのメディアを扱うコントロールが含まれる
System.Windows.Media.Animationタイムラインベースでのアニメーションを扱うコントロールが含まれる
System.Windows.Media.Media3D3D機能を扱うコントロールが含まれる
System.Windows名前空間のコントロール
コントロール名概要
ApplicationWPFアプリケーションを表すコントロール
Clipboardクリップボードに関連した機能を提供するコントロール
ContentElementXAMLコントロールの基底クラス
TextDecorationテキスト修飾機能を提供するコントロール
WindowWPFのウィンドウ・ダイアログを表すコントロール
System.Windows.Controls名前空間のコントロール
コントロール名概要
Border他のコントロールの境界線を描画するコントロール
Buttonボタンコントロール
Canvasコントロールの相対座標を指定して配置するパネル
CheckBoxチェックボックスコントロール
DockPanelコントロールの位置を上下左右で指定して配置するパネル
Grid行と列で構成されるグリッド形式でコントロールを配置するパネル
System.Windows.Shapes名前空間のコントロール
コントロール名概要
Ellipse楕円描画コントロール
Line線描画コントロール
Polygon多角形描画コントロール
Rectangle矩形描画コントロール
System.Windows.Media名前空間のコントロール
コントロール名概要
Brush描画ブラシの基底クラス
GradientBrushグラデーションブラシコントロール
GradientStopグラデーションポイントを指定するコントロール
MediaPlayerメディア再生コントロール
RotateTransform回転コントロール
ScaleTransform拡大縮小コントロール
System.Windows.Media.Animation名前空間のコントロール
コントロール名概要
Storyboardアニメーションの内容を指定するコントロール
Clockタイムライン上のタイミングを指定するコントロール
ColorAnimation他のコントロールの色プロパティを変化させるコントロール
DoubleAnimation他のコントロールの実数値プロパティを変化させるコントロール
System.Windows.Media.Media3D名前空間のコントロール
コントロール名概要
Camera3D空間上のカメラを表すコントロール
GeometryModel3D3Dオブジェクトモデルを表すコントロール
Light3D空間上の光源を表すコントロール
Material3Dオブジェクトのマテリアルの基底クラス

次のページ
各種ソフトウェアのインストール方法

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Vista時代のプログラミングモデル .NET Framework 3.0入門連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 土井 毅(ドイ ツヨシ)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/910 2007/02/05 10:10

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング