多くのグラフィカルインターフェースを備えた複雑なクライアントアプリケーションは、さまざまなコンポーネントブロックから構成される必要がある。おそら く別個のチームで開発され、巨大なパズルのように組み立てられることが必要である。そのようなアプリケーションには、「複合UI」と呼ばれるものがある。 ビルディングブロックやその構成要素であるモジュールは別々に開発され、できるだけ少ない作業で1つのアプリケーションに組み立てられるべきである。その 目的のためのソリューションはフレームワークであるが、それはアーキテクトやデベロッパにとって非常に役立つものである。
Microsoftは長い期間をかけてComposite UI Application Block (CAB)(source)のようなソリューションを考案した。
Compositeパターンのようなよく知られた設計パターンに基づいて、複雑なスマートクライアントユーザインターフェイスをビルドするための証明され た履行を提供する。そこでは単純なユーザインターフェイスパーツが結合されて、複雑なソリューションを作成するが、同時にこれらのパーツが単独で開発さ れ、テストされ、デプロイされることを可能にする。
Microsoftによるその他のソリューションには、Smart Client Software Factory(source)がある。
Smart Client Software Factoryは統合された一連のガイダンスを提供し、アーキテクトやデベロッパが複合スマートクライアントアプリケーションを作成する手助けをする。
また別のソリューションは、 Windows Mobileプラットフォーム向けのMobile Client Software Factory(source)やWeb向けのWeb Client Software Factory(source)がある。
PRISMはPResentation Integration SysteMを表し、Microsoft によって保証された、専らWPFにターゲットを当て、CodePlex(source)でホストされるプロジェクトである。MicrosoftのTechnical Product PlannerであるGlenn Block氏によると、しばしばPRISMは以下に挙げる利点をもたらす。
- WPFのフルサポートの提供
- ユーザインターフェイスコンポーネントの動的な構成
- 別個のチームによるアプリケーションモジュールの開発、テストおよびデプロイ
- 漸進的採用の許可
- 統合されたユーザエクスペリエンスの提供
現時点では、PRISMには「リファレンス実装、再利用可能ライブラリコードおよびパターンガイダンス」が含まれるが、複合アプリケーションがビルドされ るフレームワークを開発する計画がある。最新のリリース(source)は2008年4月15日に利用可能になり、中間的な開発途中のものであった。現在のソースコードは Castle Windsor(source)に依存しているが、最終的なリリースではそれに依存しない予定である。