Silverlightやさらに最近HTML 5に注目が集まる中、多くの人々がWPFの将来について疑問を抱いている。マイクロソフトのプレスマシンが沈黙することは、しばしばプロジェクトが永久に停止することを意味するため、これはとても理解できる。しかしながら、これはまた彼らが行っていることが、公開する準備ができていないことを意味することもある。
WPFについては、確実に後者である。すべての詳細は、PDCまで待つ必要があるが、WPFの主任プログラムマネージャリードであるRob Relyea氏は、なにが用意されているのかを組み立てる手助けをしてくれた。Pete Brown氏が10月に投稿した「WPFの今と将来」からはじめた。そこでは、マイクロソフトの内部・外部の両方でWPFが実際に使われている例を、WPF 4の概要とともに紹介されている。
最後の方に以下のリストを見ることができる。
- airspace(WPFコンテンツがネイティブウィンドウのhWndコンテンツに重なる)問題がない、新しいSilverlightHostエレメントによるSilverlightコンテンツのホスト
- WebBrowswerや、HwndHost、WindowsFormsHostなどネイティブhWndベースでホストされたコンテンツのairspaceの全般的な改善
- バックグラウンドスレッドで作られたコレクションのバインディングと変更通知を可能に
- UI仮想化の統合を改善
- リボンコントロールの統合
我々は、Rob氏に不明確な部分を質問をした。
InfoQ: airspace問題は、多くのカスタマが関心を持っているのでしょうか。それとも比較的まれな問題なのでしょうか?
これはWPFアプリケーションで、Win32やWebコンテンツをホスティングしている多くの重要なISV(と他のタイプのカスタマも)が関心を持っている。PDC 2010で私が話したとおり、我々は複雑なISVアプリケーションにフォーカスしています。
InfoQ: SilverlightHostエレメントとそれが使われていることをどうやって確認するかについて、もう少し詳細に教えてください。
いくつかのカスタマは、SilverlightとWPFアプリケーションを構築しています。我々は完全に.NETで書かれた、Silverlightコンテンツをホストすることができる(おそらくカスタマにフォーカスした)アプリケーションのシナリオをさぐっています。
InfoQ: バインディングと変更通知は、スレッドセーフなobservable collectionをあらかじめ提供する予定ですか?それとも、必要に応じて自分たちで作る必要がありますか?
これは、observable collectionには依存しません…様々なINotifyCollectionChangeコレクションは動作します。あなたは、ただそれがロック構造に参加する方法を我々に伝えるだけです。我々は、イベントに登録するかと、コレクションを共有するビヘイビアに含めるかどうかを尋ねます。
InfoQ: 多くの.NETライブラリは、Visual Studioと.NETのリリーススケジュールから切り離されています。WPFでも同じことがおこりますか?
我々は以前、その可能性についても議論しています。我々は、次の出荷(タイムフレームなど…)の詳細についてアナウンスしていません…私は、我々がリリースの詳細について発表する前に、リリースの詳細(どちらの方向か)について発表したくはありません。
InfoQ: WPFでExpressionチームとC++の組み合わせについて情報をいただけませんか?
Henry Sowizralが、それについてhttp://channel9.msdn.com/blogs/psychlist1972/henry-sowizral-on-refacing-c-with-wpf-in-expression-designで話しています。
Paul Harringtonは、Visual Studioについてhttp://www.microsoftpdc.com/2009/CL09 (VS 2010がどのようにWPF 4で作られているか)で話しています。
JMP 9のようなサードパーティアプリケーションも大部分がC++が使われています。おそらくTurboTaxも同じだったと思います(ただ、思い出せません)。
InfoQ: 他の話題に移りましょう。XAML 2009をWPFに持ち込むことについてどうお考えですか?2009年にあなたは「XAMLの将来」というセッションをしていました。カスタムコントロールで、ジェネリックがどのように動作するか興味深いです。
我々は、XAML2009にマークアップコンパイラにx:TypeArgumentsを含む、多くのカスタマが望むものを実現しました。次期WPFのプランは、このリリースで我々が行ったものだけで終わったわけではありません。
Microsoft ConnectでINotifyDataErrorInfoが次期バージョンのWPFで計画されていることについて言及しているのを見つけることができる。WPFとSilverlightで同じModelかView-Modelを再利用できることは、確実に歓迎されるだろう。Silverlightに関して、Pete Brown氏がアドバイスしている。
私はしばしば、WPFとSilverlightのどちらを選択するかを聞かれることがあります。これは、新しいアプリケーションをはじめるときの我々の推奨です。
- もしあなたが、ちょうどはじめるところで、どちらのテクノロジ(SilverlightかWPFか)を選択するか聞かれたとき、まずはSilverlightからはじめるのがよいだろう。一般的にSilverlightからWPFに移行する方が、逆をやるよりも簡単である。またSilverlightのAPIはより小さいため、一般的により簡単に身につけることができる。
- 基本的なシステムを統合するだけのデスクトップアプリケーションが必要な場合は、Silverlightのブラウザ外実行アプリケーションを検討する。Silverlight 4の信頼されたアプリケーションは、以前はWebテクノロジでは無効だった、IDispatchをサポートした多くのシステムリソースへのアクセスを提供する。
- もし、より深くシステム統合が必要な場合や、マルチタッチ、デバイスアクセス、ローカルリソースなどデスクトップアプリケーションの方が向いている場合には、WPFに移行することを検討する。
- もし、あなたがC++開発者なら、Expressionチームのように、C++とMFC、またはC++とWPFをフロントエンドに選択することができる。