« December 2006 | Main | November 2007 »

2007.02.05

Essential Windows Presentation Foundation

前のエントリーで紹介した Adam Nathan の Windows Presentation Foundation: Unleashed に続き、今度は Chris Anderson が WPF の本を出すと言う。

発売は US で 4 月、と言うのでまだ先のようだが、.NET 3.0 WPF の Software Architect。.NET 2.0 では Lead Developer として ASP.NET Web Forms, Windows Forms, CodeDOM, RegularExpression などを手がけていたらしい。Forewords (序文) by Don Box and Chris Sells というのは箔付け? という感じだが、単なる仲良しなのだろう。

Channel9 を改めた探したら古いビデオしか見つからなかったが、Architect らしい話が見られる。Visual Composition Tree だけを別のマシンに持ってくる Terminal Server の話などは、Longhorn Server を楽しみにさせてくれる。本が届くのが楽しみだ。

Windows Vista の歌が聞きたければ、新しいビデオ Don Box and Chris Anderson というのもあるが、これは勉強にはならない :-)

| | Comments (2) | TrackBack (0)

2007.02.04

WPF

WPF、どこかでやらなきゃと思いつつ、予約していた Windows Presentation Foundation: Unleashed が来たところで社内ツールを作る必要ができて、WPF でやることにした。英文が苦にならないなら、Adam Nathan の著だし、いい感じで網羅されている本だと思う。

実際に取り掛かってみると、予想通りそれなりの苦戦。予想以上ではなかったので、よしとする。細かい問題は以後書いていくとして、まずはおおざっぱな感触を書いておこう。

  • やはり「V1 製品」という感じは残る。基本的な構成は新しい設計だけあって今時のニーズにこたえているし、初期設計から 20 年経った USER/GDI とは比べ物にならない。が、便利なものがそろっているかというと、そこまでは手が回らなかった、という部分がちらほらと見受けられる。「こういう時にはこうする」経験則が通用しなくなったので、新たな経験則を積まなければならず、それがより不足部分を感じさせるのかもしれないが、大変ではある。インターネットに深く感謝。
  • Animation, Video, Transform など、WPF でこその機能が必要なら、習得の価値は絶対にある。作りたい UI が Windows Forms で作れてしまうなら、アプリによって分かれる。それでも WPF の方が効率が良い部分と、そうでない部分が散在する。
  • 少し面白いのは、プロパティやイベントといった非常に基本的な部分を UI 用の Framework として再定義している。この辺のクラスは WindowsBase.dll の中に入っていて、この辺が CLR エンジンは 2.0 のままでも「.NET 3.0だ」と言える部分だろう。
  • 「Data Binding v3.0」とも言えるような機能が入っている。MS には Data Binding チームがあるようで、Beatriz Costa などが blog を書いている。 正直この分野に関しては、まだまだ改善がありそうな気がしている。というよりも、応用が広すぎて、汎用なエンジンは難しいのかもしれない、と思うくらい、プロジェクトによって異なる問題が出てくる分野だが、WPF/.NET 3.0 の data binding は 2.0 のそれに比べてかなり改善されている。WPF の XAML/テンプレートの機能と合わせて、ここに依存する部分が多いなら .NET 3.0 を習得する価値はあると思う。ただし、Windows Forms の DataGridView がない。ListView が表示に関してはほぼ同等以上の機能を提供するが、編集が重いと DataGridView の方がよくできている。これはきっと間に合わなかったのであろう。将来に期待。

それなりに不足もあるが、V1 製品としてはよくできていると思う。Orcas の .NET 3.5 でもう少しスマートになることを期待しつつ、今後は徐々に開発の比重を WPF に移していくつもりである。

| | Comments (10) | TrackBack (1)

« December 2006 | Main | November 2007 »