WPF をもう一度?

「WPF は遅くて使い物にならない、Windows フォームと違い過ぎてわかりにくい」

と感じた経験はないでしょうか?

そんなメールが届いた。
ま、最初はその通りの感じがしたし、慣れてしまえば・・・なのだが。
WPFは、

既にSlivetLightと同様に過去の遺物。

である。
1.間に合わせの実装レベル、つまり底辺≒幼稚。

常時カラムの色のグラデーションでアニメーションを指定するような

WPFは、直書きなら、なんでもスマートに書ける。

このことがヤバイくらい、

使い物にならないことの反証になっている。

例えば、依存プロパティなんかが酷い例だろう。
依存プロパティの名前自体が、XAMLが依存(Binding)してるプロパティと云う意味であり、
これを使わないと、Property { set } からXAMLへ更新を通知できないからだ。

他にも色々妙なstatic専用のクラスがボロボロ出てくるが、概ね for XAMLなシロモノ。

なんで、そんなにXAMLの内部を意識しなければ使えないのか?というあたりが「何事もその場しのぎ」という感じを拭いきれない。

そうXAMLの実装ってこんな感じですから、あとはお好きにどうぞ、ぐらいの実装で十分なのだ。

しかし、今のXAMLの記述では、ListViewのカラムヘッダの色を状況に応じて変えるには、参照、参照、また参照になってしまい、たくさんのテンプレを用意しなければいけない。

Q:リソースとXAMLなら簡単にできますよね?

A:ええ、その通りです。ではリソースの代りにデータベースのテーブルを使おうとしたら、どうでしょうか?全部書き直しですよね?

結局は、

WPFってメンドクサイ。

の一言に尽きるのである。

2.できないことが多い。

他のOSでも動くように、内部のガチガチな仕組みを撤廃し、せっかく、Windowsのコントロールの依存性を減らしたのに、やっぱりWindowsが売れないことには話にならないと、他のOSでのリリースをバタバタと辞めてしまった。

そのため、ちょっとした応用をしようなんて考えるのは厳禁であるにも関わらず、実質Windowsでしか使えないダメなプロダクツになっている。

Q:具体的に何が応用ができないの?

A:ローテーションを例にあげると、XAMLで横長の範囲に幅いっぱいにテキストを描きローテーションの設定で3度ぐらい傾けてみましょう、綺麗に傾きますね。では角度を45度にするとどうでしょう?テキストが変な位置で切り取られるのが判りますね。こうなったテキストが切れない様に範囲の高さを無駄に広げるしかないですね?な状況に簡単に陥ります。

3.では、全くWPFがダメなのか?

というと、そうでもない一面(本当に一面しかない)がある。

Planeをちゃんと実装したことだ。どこでもPlaneを貼ることができる。これはWindowsの(MS自ら云っている様に)低レベルなコントロールにベッタリなWindows Formにはできないことだ。

例えば、List View のサブアイテムに「チェックボック+ラベル」を付けるのはWPFではそう難しくない、しかしWindowsFormではガリガリとOwnerDrawとHitTestをしっかりと手懐けなくてはならない。

 と云う訳で、完全にWPFを否定するつもりはない。
だから・・・

今更、WPF をもう一度?

なんて言い出すくらいなら、
どっかのゲームみたいに†「黒歴史」にしてしまい、新生WPF(Ver2.x)を立ち上げた方がマシだと思う。
どのみち、

最新の OS で試すと違った経験になる可能性が高くなります。

もうすぐ、Windows9がアナウンスされるハズ、今まで通りに2万円ぐらいで売り抜けようと考えるなんで・・・馬鹿としか思えないよね。
最後に一言。それでも、やっと、WPFのページが整った(第6版)こと自体は良い事だ。
でも、商用で使おうとは思いません。



  • お約束以外ができないWPFは、使い物にならない。
    オーナードローで書いたほうが早いよ。
    無駄が多すぎる


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA