せろひきの練習NEO

パソコン&スマートデバイス&サーバーテクノロジー

.NET Framework 3.0インストールしてみました

今週、Winodws Vistaが Launchされましたが、それに伴って市場では.NET Framework 3.0を使用するアプリケーションやWebサイトがぽつぽつ出始めています。

Windows VistaではこれまでのGDI(やGDI+)という画面描画APIに加えて、WPF(Widnows Presentation Foundation)という新しい画面描画の仕組みが導入されています。WPFでは画面の構成要素(たとえばボタンとかダイアログとか、果てはDirect3D表示とかも)はXAMLというUI記述言語で記述され、それを実際の画面表示に落とす描画エンジンとともに利用されることになります。また、主な記述言語は.NET Framework 3.0 (で動くいずれかの言語)としてまとめられました。

これは次のことも意味します。つまり、WPFを使っているところでは裏で必ず.NET Framwork 3.0が動いているということを。

ここで思い起こすのは次のような関係です。つまり、(単体アプリにせよ、プラグインにせよ) Java アプリケーションを動かす場合には裏で必ず Java VMが動いていて、これがメモリ的にも結構な負荷になるということを。Windows Vistaでは電卓・ソリテアーから始まってあらゆるアプリがWPFを使うように改められているのですが、その裏では.NET Frameworkインスタンスがそのつど起動され実行されることになるのです。

さて、WPFアプリケーションは.NET Framework 3.0ランタイムをインストールすることで、Windows XPで動作させることができます。また、上記環境ではWPFアプリケーションを(Javaアプレットみたいに)ブラウザー内でプラグインとして動作させることもできます。先日のVista 発表会ではそのようないくつかのサイトが紹介されました。

マイクロソフト、個人向けWindows Vista/Office 2007を発売

http://pc.watch.impress.co.jp/docs/2007/0130/ms.htm

さて、Windows XP SP2に .NET Framework 3.0(と日本語ランゲージパック)をインストールして、いくつかのサイトを眺めてみました。

ついに姿をあらわしたVista--パッケージで振り返るWindowsとOfficeの歴史

http://japan.cnet.com/wpf/photo/report.htm?id=20326227

DOS/V Power Report - PCパーツ検索「Parts Assembler」http://www.dosv.jp/parts_assembler/PartsAssembler.xbap

これらのサイトをアクセスし、ブラウザでソースコードを表示させると、WPFを実行している部分は.xbapという拡張子のファイルをダウンロードするような記述になっています。

iframe id="f" src="CMSPhoto9.xbap?id=20326227"

この.xbap 拡張子のファイルがWPF プラグインアプリの実体です。

特集 .NET Framework 3.0概説(前編)

http://www.atmarkit.co.jp/fdotnet/special/dotnetfx3001/dotnetfx3001_02.html

xbap ってそういうことだったのか

http://www.divakk.co.jp/blog/aoyagi/archive/2005/11/29/7088.aspx

上記記事では、XPSViewerというアプリケーションがWPF/xbapをホストすると記述されていますが、インストール後にXPで確認したところ、以下のようにPresentationHost.exeがxbapアプリのVMプロセスのようです。

まず、Explorerのツールメニュー、フォルダオプションで .xbapの拡張子を調べると以下のようになります。

Folderoptionxbap

Presentationhost

XP SP2上で 上記「パッケージで振り返るWindowsとOfficeの歴史」サイトをIE7で表示したときのタスクマネージャ表示を見ると、

Presentationhosttask

のように100MB強のメモリを使用しています。

あとは、このメモリ使用量をどう見るか、ですが、本体メモリ256MBでは無理、512MBなら2つくらいまでOK?、1GB搭載ならあまり気にする必要はない、というといころでしょうか。