特集

.NET Framework 3.0概説(後編)

.NET Framework 3.0新技術の使い分け指針

マイクロソフト株式会社 中原 幹雄
2007/01/06
Page1 Page2 Page3

 前回は「.NET Framework 3.0がソフトウェア開発にもたらす価値とは?」と題し、.NET Framework 3.0の全体像と新機能の概要について解説した。

 後編に当たる今回は、.NET Framework 3.0の主要コンポーネントであるWindows Presentation Foundation(以下、WPF)、Windows Communication Foundation(以下、WCF)およびWindows Workflow Foundation(以下、WF)を活用していく際の考慮点について触れていく。

1. .NET Framework 3.0のアプリケーション・アーキテクチャ

 WPF、WCF、WFの個別の話に入る前に、.NET Framework 2.0と比較した.NET Framework 3.0のアプリケーション・アーキテクチャについて簡単に見ておこう。非常に基本的なことではあるが、アプリケーション・アーキテクチャを押さえておくことは、各テクノロジの適用個所を考えるうえでのスタートラインになる。

.NET Framework 2.0と3.0のアプリケーション・アーキテクチャの比較
アーキテクチャの違いを分かりやすく図示したもの。
厳密にいえば、例えば3.0のアーキテクチャにおいてもWindowsフォームは依然として活用されるだろうが、ここでは違いを明確にするために、Windowsフォームに相当する新技術のWPFのみを記述している。WindowsフォームとWPFのすみ分けについては後述する。
またWFはUIプロセスの中で画面遷移のエンジンとして活用していくことも考えられるが、ここではあくまでもビジネス・ワークフローに適用することを中心に捉えている。

 .NET Framework 3.0の基本的なアーキテクチャ構成は2.0と変わらないが、WindowsフォームがWPFに、ASMX(ASP.NET Webサービス)や.NET Remoting(.NETリモート処理)などの既存の分散テクノロジがWCFに替わっていることと、ビジネス・ワークフローの部分をサポートするテクノロジとしてWFが追加されていることが分かる。

 それではWPF、WCF、WFをアプリケーションに適用していく際の考慮点について見ていこう。

2. WPF(Windows Presentation Foundation)活用時の考慮点

 WPFは標準的なWindows UI2D3D、ビデオ、イメージ、アニメーションならびにドキュメントを統合し、非常に表現力豊かなUIを、一貫性のあるアプローチで実現することができる。

 WPFは現行のWindowsフォームがサポートしている「WindowsアプリケーションのUI開発」という領域を包含するが、WPFとWindowsフォームはプログラミング・モデルが異なる。このため、今後新規にWindows UIアプリケーションを開発していく際には、Windowsフォームに慣れている開発者の方は、WPFのパワーは強力だと感じつつも、WPFとWindowsフォームのどちらを選択すべきかを悩むのではないかと思われる。

●WindowsフォームとWPFのすみ分けと相互運用

 .NET Framework 3.0は.NET Framework 2.0をベースとしているため、既存のWindowsフォーム・アプリケーションは、.NET Framework 3.0環境においてもそのまま動作する。従って、Windowsフォーム・アプリケーションはWPFアプリケーションとサイド・バイ・サイドで共存することが可能だ。Windowsフォームは、WPFが登場したことによってすぐに淘汰(とうた)されてしまうテクノロジではないので、WPFの開発ツールやサポート・ライブラリが充実してから、徐々にWPFへ移行していくことを検討するのも1つの手だ。

 また、WPFではWindowsフォームのUIコントロールをWPFアプリケーションでホスト、またその逆のWPFのUIコントロールをWindowsフォーム・アプリケーションでホストすることがサポートされている。デザイン時(ビジュアル・デザイナ)のサポートがないなどの制限はあるが、両方のテクノロジが混在するアプリケーションを作成することができ、WPFアプリケーションの開発に既存のWindowsフォームのUIコントロール資産を生かしながら、段階的にWPFへ移行していくことが可能だ。

 ただし、WPF上でWindowsフォームのUIコントロールを使用すると、WPFはGPUではなくCPUを使用したソフトウェア・レンダリングによってUIを描画するため、すべてWPFで作成したUIよりもパフォーマンス面で不利になる点は注意が必要だ。このため、WPFのUIコントロールとWindowsフォームのUIコントロールの混在は、あくまでも移行過程での一時的な措置として使用していくことが望ましい。WPFがGPUを活用方法する条件などについてはこちらを参照いただきたい。

 なお、WindowsフォームとWPFの関係だけの話ではなく、一般的にUIのテクノロジはほかのテクノロジに比べ移り変わりが早いものであるため、しっかりとしたアーキテクチャ設計を心掛け、特定のテクノロジへの依存個所をうまく局所化および分離し、テクノロジの変化に強いアプリケーション構築をしていくことがいまさらながら重要だ。

●XBAP適用時の考慮点

 WPFのアプリケーション形態には、セルフ・ホストとXBAP(Xaml Browser APplication)の2つがあることは前回紹介した。この2つのアプリケーション形態の使い分けの基準を明確に述べることは難しいが、特にXBAPにはセルフ・ホストにはない実行上の制約がいくつかあるため、その点を考慮したうえで採用が可能であるか判断する必要がある。

XBAPアプリケーション
XBAPはWebブラウザ上でホストされて実行されるWPFアプリケーション。セキュリティ・サンドボックス上で実行されるため若干機能的な制約があるが、アプリケーションのインストールが不要であるため、展開が容易だ。

 XBAPではコード・アクセス・セキュリティの制約上、完全信頼ではアプリケーションは実行できず、部分信頼で実行される(セルフ・ホストでは完全信頼で実行可能)。例えば、XBAPではクライアントPCのローカル・ストレージにアクセスすることはできない。

 また、XBAPではサービスとの通信にWCFを使用することができず、サーバとの通信が必要な場合はASMXしか使用できない。サーバ側のWebサービスは、ASMXだけでなくWCFでもBasicHttpBindingバインディングを使用して実装することは可能であるが、XBAPで使用するWebサービスのプロキシはASMXに限られる。

 なお、前編ではWPF/Eと呼ばれるWPFのサブセット・ランタイムを紹介したが、先日このWPF/EのCTP版がダウンロード可能になった。詳細については「“WPF/E” vs. Adobe Flash、ガチンコ対決!」「“WPF/E”開発を体験してみよう!」を参照いただきたい。


 INDEX
  [特集] .NET Framework 3.0概説(前編)
  .NET Framework 3.0がソフトウェア開発にもたらす価値とは?
    1..NET Framework 3.0とは何か?
    2.WPF(Windows Presentation Foundation)
    3.WCF(Windows Communication Foundation)、WF(Windows Workflow Foundation)
    4.対応プラットフォームと開発環境
 
  [特集] .NET Framework 3.0概説(後編)
  .NET Framework 3.0新技術の使い分け指針
  1.WPF活用時の考慮点
    2.WCF活用時の考慮点
    3.WF活用時の考慮点
 


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間