すがブロ

sugamasaoのhatenablogだよ

WinFXの名称は.NET Framework3.0へ変更(2)

 前回、名称が変更になると書いたけど、おれ自身「FinFXが新APIである」ということくらいしか認識していなかったので改めて調べてみた。
従来までの.NET FrameworkVistaでの基本的な位置づけは以下のようになる

OSレベル ← 階層 → アプリケーション

Windows Vista ← FinFX(.NET Framework) ← アプリケーション
Windows XPなど ← Win32 API .NET Framework ← アプリケーション

 こう見るとちょっとはわかりやすいかな、と思うんだけど。
ようするに今まで10年以上、Win32 APIってのが拡張に次ぐ拡張されていて、ちょっとしたカオスになっていた。また、APIC言語の関数ベース(だよね、たしか)なのでいまどきのプログラミングスタイル・考え方とはちょっとマッチしなくなってきた。
というわけで、ちょっと洒落ていてスマートなAPIに作り直しましょうって動きになったのだろう。

 で、新OS(Vista)で新APIを使うのはいい。では従来とはまるっと互換性のないものを作るのか? っていうと、そうではない。それが上に書いた表?の下段になる。
Win32 API を仲介してアプリケーションを動作させるようラッピングする形で .NET Framework(だからフレームワークって言うんだろうね)の APIを使用してアプリケーションを動作させる。
もちろん、そのアプリケーションというのは .NET Framework APIを使用したアプリケーションの必要がある。
というわけで、現状のOSの環境では .NET Framework はパフォーマンスを十分に発揮していないと言えるだろう(間に一枚噛んでるわけだし)*1
あ、ちなみに、APIが変わるから従来の非 .NET Framework製品は動かなくなるのか? というと、確か互換用のシステムが残っているのでだいたいは動くらしい*2。ちょっとうろ覚えだから間違ってるかもしれないけど。

 ところで、WinFX と似た名前で WinFX というのがあるけど、これは Vista搭載されるはずだったファイルシステムのこと。

 さて、ここまでそれらしく文章を書いてみたんだけど、合っているのだろうか。わりとノリで書いてしまったんだが……。

*1:たしか、グラフィック周りは結構差が出るとかって聞いたことがある

*2:100%互換を保てるかは……難しいだろうね