コードジンのヘッダーが入ります
グレープシティ株式会社 テクニカルエバンジェリスト 八巻雄哉氏は冒頭、「WPFとSilverlight、いずれを選ぶかは『適材適所』ということになるが、今回は4つのポイントに絞って両者を比較し、皆さんに選択の参考としていただきたい」と述べ、導入・保守・開発それぞれの行いやすさと、技術的に実現できることの各項目について、順次比較を行った。
まず普及率については、事前に実施したアンケートで、Silverlightが66%、WPFが34%という結果が出た。これはやはりネームバリューや人気度を見れば明らかといえよう。続く「導入のしやすさ」では、実際のインストール時間を比較して見せた。
「Silverlight 3の20秒に対し、.NET FrameworkのインストールとなるWPFは3分とさらに再起動に時間がかかる。.NET Framework 4ではCPUアーキテクチャごとにインストーラーが分割され、なおかつクライアントには不要なサーバーライブラリを除いたClient Profileというバージョンが用意されており、導入のハードルは以前よりも確実に下がっていると言える」(八巻氏)。
続く保守性の点では、アプリケーションの自動更新とランタイムのバージョン管理の2点を比較した。
「アプリケーションの自動更新はSilverlightに一日の長がある。だがWPFでもWPFブラウザアプリケーション(XBAP)であればSilverlightと同様の対話を伴わないアプリケーションの自動更新が可能だ。XBAPはこれまで部分信頼でしか実行できないという制約があったため注目されることが少なかったが、WPF 4からは対象となるコンピュータがイントラネット上にある場合に限り完全信頼で実行できるようになり、俄然使える存在となる」と八巻氏は語る。またランタイムのバージョン管理では、Silverlightではそのままバージョンアップを行うと、古いバージョンが単純に上書きされてしまう。古いバージョンでビルドされたアプリケーションは、新しいバージョンのランタイム上で"互換モード"という特別なモードで実行されるため後方互換性に関してそれほど心配する必要はないが、テストをしないという訳にはいかないだろう。これに対し、WPFの場合は同一環境に異なるバージョンの.NET Frameworkを共存させることが可能なため、CLR2.0から4.0への入れかえをテストなしで行える利点があると評価した。
開発容易性では、n層開発と非同期通信について解説。「まだリリース時期は未定だが、Silverlight 4ではWCF RIA Servicesが出てきて、Silverlightの開発性のハードルを大きく下げてくれる。これは二重化が必要なサーバー側とクライアント側の共通ロジックの開発を、コードを自動生成することで一元化してくれる機能だ」という。一方、サーバーとの通信部分については、「SilverlightのWebサービス呼び出しは非同期のみだ。というのは、Silverlightではあくまでブラウザのプラグインの中だけで通信しているため、ブラウザの通信を妨げるわけにいかないという事情があるからだ」と指摘した。
さらに機能実現性では、「Silverlight 3では足りなかった業務アプリケーションに必須の機能が、Silverlight 4で大幅に追加された。クリップボード、右クリック、マウスホイール、IMEを考慮した入力制御、そして印刷機能だ」と紹介した。面白い着眼点としては、操作性や応答性の速さも重要なファクターだとして、DataGridのスクロールパフォーマンスを比較してみせたことだ。この結果、WPF 4では最低フレームレート10fpsに対して、Silverlight 4では20fpsと大きな差が見られた。
まとめでは"超個人的見解"と前置きした上で、「ロールバックが必要であればWPFアプリケーションを、不要であってなおかつイントラネットのみで運用するのであれば、WPFブラウザアプリケーション。そして、ロールバックが不要でイントラネットのみで運用するのでなければ、Silverlightアプリケーションといった使い分けがよいのではないか」と見解を述べた。
最後に八巻氏は、「グレープシティでも2月に発売したComponentOne Studio for Silverlightを皮切りに、WPFやSilverlightに対応するコンポーネントをリリースしていく予定ですので、ぜひご期待ください」と述べ、セッションを終了した。