« March 2005 | Main | May 2005 »

2005.04.26

Avalon, Aero, & MIL

Aero は GDI ベースか と以前に書いたが、どうも MIL ベースらしい。

Mr. Avalon と言われる Chris Anderson が自身の blog に MIL Information というのを書いている。また同じ Chris Anderson の MSDN の Avalon の記事 にも MIL という単語が登場する。

この辺から総合すると、MIL の下半分は MILCORE.DLL であり、これが Direct3D 上で実装され、unmanaged の描画 API を提供するようだ。その上に PresentationCore.DLL があり、これが managed な Avalon API の下層部分を提供する模様。Aero は Avalon には依存しないが MIL には依存する模様で、これなら XP では実現できなかったビジュアルを実装できそうだ。GDI ベースだと貧弱ではないかとかパフォーマンスで心配があったりとかの心配は杞憂に終わりそうな感じである。

いまだに不明なのが、GDI/USER の位置づけ。先日も友人と、Avalon 時代に message pump がどうなるのかという想像をしていたが、これがいまだに分からない。PDC の頃のアナウンスでは GDI/USER は Direct3D の上にエミュレーションとして実装されるような話がされていたが、NT 4.0 以降この辺はカーネルの中に入っているので、PDC 後にアナウンスされた XP Avalon でそこまでの変更ができるのか、不透明だ。もちろん MS 謹製なので、カーネルごと入れ替えてしまうという荒業は可能ではあろうが、それはそれで大変そう。

WinHEC も始まったし、そろそろ次の Longhorn CTP ビルドが出ると思うので、楽しみである。

| | Comments (72) | TrackBack (3)

2005.04.20

Uri クラス

Visual Studio 2005 (Whidbey) Beta 2 の英語版がリリースされたので、今までの Beta 1 のコードを移し始めた。

Generics の IEnumerable<T> が IEnumerable から派生するようになったのは各所で話題になっているが、他にもいくつか小さい修正がある。そこはすんなり行ったものの、とりあえず 1 つ目の大きな課題は Uri クラスにあった。

.NET 1.x の Uri クラスは拡張が一切できなかったが、Whidbey Beta 1 では factory パターンで自分で Uri のサブクラスを作れるようになっていた。これを使って SIP URI の解析を入れていたのだが、これが refactoring されたようで、factory パターンごとなくなっていた。

UriParser クラスから派生させて解析部だけ書けるようにはなっているようだが、変更が大きい。SIP URI は他の URI に比べて仕様が込み入っているので、コードを変えるとなかなか厄介だったりする。

Unit Test に NUnit を使っているが、実行中にふっとウィンドウごと消えたりしてしまうようで、Beta 2 なりの対処が必要なようだ。

| | Comments (16) | TrackBack (0)

« March 2005 | Main | May 2005 »