Prism開発者ガイド-パート1、はじめに

WPF、Silverlight、Windows Phone、WindowsストアなどのXAMLベースのプラットフォーム用のアプリケーションを開発している場合、Prismは開発を大幅に簡素化するのに役立ちます。 Prismを使用していくつかのプロジェクトを作成した後、このアプローチが機能することを確信し、Prismの公式マニュアルの翻訳版を作成することにしました。 だから、パート1、プリズムとは何ですか。

目次

  1. はじめに
  2. Prismアプリケーションの初期化
  3. コンポーネント間の依存関係の管理
  4. モジュラーアプリケーション開発
  5. MVVMパターンの実装
  6. 高度なMVVMシナリオ
  7. ユーザーインターフェイスの作成

    1. ユーザーインターフェイスのガイドライン
  8. ナビゲーション
    1. ビューベースのナビゲーション
  9. 疎結合コンポーネント間の相互作用


Prismは、豊富で柔軟性があり、簡単にサポートされるWindows Presentation Foundation(WPF)アプリケーション、Silverlight Rich Internet Application(RIA)、Windows Phone 7-8アプリケーション、およびWindowsストアアプリの設計と作成を支援するために設計されたガイドです。 Prismは、 懸念の分離(SoC)や疎結合などのアーキテクチャ設計の重要な原則を具体化する設計パターンを使用して、独立して開発してから結合できる疎結合コンポーネントを使用したアプリケーションの設計と作成を支援します最小限の労力で1つ。 このタイプのアプリケーションは、複合アプリケーションと呼ばれます。





注:

Prismという言葉は、 WPFおよびSilverlight用のComposite Application Guidanceとして正式に知られているマニュアルのコード名でした 簡潔さと有意義さのために、またユーザーの要件により、このガイドは現在Prismと呼ばれています。


Prismは、WPF、または複数の画面、高度なユーザーインタラクション、データの視覚化、ビューとビジネスロジックの複雑なインタラクションを備えたSilverlightアプリケーションの開発者向けに設計されています。 これらのアプリケーションは通常、多数のバックエンドシステムおよびサービスと対話し、階層型アーキテクチャを使用して、 いくつかのレベルで物理的に展開できます 。 新しいビジネス要件に応じて、アプリケーションはその存続期間中に大幅に開発されることが予想されます。 要するに、これらは長い間、そして変化のために構築されたアプリケーションです。 これらの機能を必要としないアプリケーションは、Prismを使用してもメリットがない場合があります。



Prismには、実装例、クイックスタート、再利用可能なライブラリコード(Prismライブラリ)、および詳細なドキュメントへのリンクが含まれています。 このバージョンのPrismは、Microsoftを対象としています。 NET Framework 4.0(現在4.5)およびSilverlight4。Model-View-ViewModel(MVVM)設計パターン、ナビゲーション、およびManaged Extensibility Framework(MEF)の新しいガイドが含まれています。 Prismは.NET Framework 4.0(WPFを含む)およびSilverlight 4上に構築されているため、これらの技術を知っているとPrismの評価と理解に役立ちます。



Prismを習得するのは難しくありませんが、開発者は新しいモデルとプラクティスを受け入れる準備ができていることに注意してください。 これらのモデルとプラクティスを学習する場合は、プロジェクトのタイミングでこれに費やされた時間を推定することを忘れないでください。



Prismを使用する理由



柔軟でサポートされているリッチなWPFまたはSilverlightアプリケーションの設計と開発は困難な場合があります。 このセクションでは、作成中に発生する可能性のあるいくつかの一般的な問題と、Prismがそれらを解決する方法について説明します。



クライアントアプリケーションの開発に関する問題


原則として、クライアントアプリケーションの開発者は多くの問題に直面します。 アプリケーションの要件は、時間の経過とともに変わる可能性があります。 新しいビジネスチャンスや問題が発生したり、新しいテクノロジーが利用可能になったり、開発サイクル中の顧客レビューでさえ、アプリケーション要件に大きな影響を与える可能性があります。 したがって、アプリケーションを柔軟に作成し、将来簡単に変更または拡張できるようにすることが重要です。 このレベルの柔軟性を実現するのは困難です。 これには、アプリケーションの個々の部分を個別に開発およびテストできるアーキテクチャが必要になる場合があり、アプリケーションの残りの部分を犠牲にすることなく、単独で後で修正または更新できます。



ほとんどのエンタープライズアプリケーションは複雑であり、開発にはプログラマとデザイナーのチーム全体が必要です。 複数の開発者またはチームがアプリケーションのさまざまな部分を独立して効果的に作業できるようにアプリケーションを開発し、統合中にアプリケーションの部分がスムーズに接続されるようにする方法は、重大な問題になります。



モノリシックスタイルで設計と開発を行うと、保守が非常に難しく非効率的なアプリケーションにつながる可能性があります。 この場合、「モノリシック」という言葉は、コンポーネントが非常に密接に接続されているアプリケーションを示し、それらの間に明確な分離はありません。 通常、この方法で設計および構築されたアプリケーションは、開発者の生活を困難にし、苦痛に満ちた問題を抱えています。 システムに新しい機能を追加したり、既存の機能を置き換えたりすることは難しく、システムの他の部分に影響を与えずにエラーを修正することは困難です。 このようなアプリケーションは、テストと展開が困難です。 さらに、これはすべて、開発者と設計者の間の対話の効率に影響します。



複合アプローチ


これらの問題を解決する効果的な方法は、アプリケーションを多数の個別の疎結合の半独立部分に分割し、シェルアプリケーションに簡単に統合して完全なソリューションを形成することです。 このように設計および構築されたアプリケーションは、多くの場合、複合アプリケーションと呼ばれます。



複合アプリケーションには、次のような多くの利点があります。

  • モジュールを設計、テスト、およびさまざまな個人またはサブコマンドに展開できます。 これらのモジュールは、簡単に変更したり、新しい機能を追加したりすることもできます。これにより、アプリケーションを十分に拡張およびサポートできます。 このアプローチを使用すると、十分にテストされ、サポートされているアプリケーションを作成することで、1人のプロジェクトでも利益を得ることができます。
  • 共通のシェルには、相互に疎結合されたさまざまなモジュールによって提供されるユーザーインターフェイスコンポーネントが含まれています。 これにより、複数の開発者がユーザーインターフェイスに新しい機能を追加し、シームレスな外観を提供するときに発生する競合が減少します。
  • 承認や認証などのアプリケーションの水平レベルと、アプリケーションに固有のビジネス機能などの垂直レベルの間で、コードの再利用と責任の共有を促進します。 また、アプリケーションコンポーネント間の依存関係と相互作用を簡単に管理できます。
  • これらは役割の分離を維持するのに役立ち、さまざまな個人またはチームがそれぞれの専門分野または経験に応じて特定のタスクまたは機能の一部に集中できるようにします。 特に、これにより、ユーザーインターフェイスとアプリケーションのビジネスロジックがより明確に分離されます。 つまり、デザイナーはより便利なユーザーインターフェイスの作成に専念でき、プログラマーはより複雑なビジネスロジックの作成に専念できます。


複合アプリケーションは、さまざまなクライアントシナリオに最適です。 たとえば、複合アプリケーションは、異種のバックエンドシステム上にリッチクライアントアプリケーションを作成するのに最適です。 次の図は、このタイプのアプリケーションの例を示しています。



複数のアプリケーションシステムを持つ複合アプリケーション



このタイプのアプリケーションでは、機能に焦点を合わせたリッチで柔軟なユーザーインターフェイスをユーザーに提示できます。 これらのアプリケーションは、複数のサーバーシステム、サービス、およびデータストレージで構成でき、それぞれが1つまたは複数の専用モジュールで表されます。 アプリケーションロジックとユーザーインターフェイスを明確に分離することにより、すべての複合モジュールの一貫した個別のビューを提供できます。



さらに、複合アプリケーションは、相互に十分に統合されておらず、個別のチームによってサポートされている自己開発のユーザーインターフェイスコンポーネントがある場合に役立ちます。 次の図は、このタイプのアプリケーションの画面例を示しています。 強調表示された各領域は、ユーザーインターフェイスに統合された独立したコンポーネントを表します。



株式トレダダの参照実装複合アプリケーション



この場合、複合アプリケーションにより、実行時にユーザーインターフェイスを動的にコンパイルできます。 これにより、ユーザーに柔軟性が提供されます。 たとえば、これにより、実行時に動的に新しい機能を追加でき、豊富なカスタマイズオプションと簡単な拡張性が提供されます。



Prismを使用するときに解決できない問題


PrismはWPFまたはSilverlightアプリケーションの作成時に発生する可能性のある多くの問題を解決するのに役立ちますが、シナリオおよび要件に応じて発生する可能性のある他の多くの問題があります。 たとえば、Prismは次のトピックを直接扱っていません。

  • 不規則な接続とデータの同期。
  • 分散およびクラウドアプリケーションの作成。
  • 認証と承認。
  • アプリケーションのパフォーマンス。
  • アプリケーションのバージョン管理。
  • エラー処理とフォールトトレランス。




Prismを使い始める



Prismは、WPFまたはSilverlightを実際に使用した経験があることを前提としています。 Prismが特に頻繁に使用するいくつかの重要な概念があり、それらに精通している必要があります。 これは:

  • XAML(拡張可能アプリケーションマークアップ言語) 。 WPF、Silverlight、Windows Phone、およびWindowsストアのユーザーインターフェイスを宣言的に記述する言語。
  • データバインディング 。 UI要素をWPFおよびSilverlightのコンポーネントとデータに接続する方法。
  • リソース WPFおよびSilverlightでスタイル、データパターン、およびコントロールを作成および使用する方法。
  • コマンド ユーザーのジェスチャと入力がコントロールに接続される方法。
  • ユーザーコントロール 。 カスタムの動作または外観を提供するコンポーネント。
  • 依存関係プロパティ (依存関係プロパティ)。 データバインディング、ルーティングされたコマンド、およびイベントをサポートするプロパティ値を設定および制御するための共通言語ランタイム(CLR)拡張。
  • 動作 (動作)。 ユーザーインターフェイスのコントロールに簡単に適用できるインタラクティブ機能をカプセル化するオブジェクト。




プリズムのインストール


このセクションでは、Prismのインストール方法について説明します。 次の3つの手順が含まれます。

  • 必要なシステムアプリケーションをインストールします。
  • Prismソースコード、実行可能ファイル、およびドキュメントを抽出します。
  • システムにPrismライブラリを登録します。




ステップ1:必要なアプリケーションのインストール


Prismライブラリを使用する前に、次のものをインストールする必要があります。

  • Microsoft .NET Framework 4.0以降(Visual Studioと共にインストール)
  • Microsoft Visual Studio 2010/2012 Professional、Premium、またはUltimateバージョン。


ご注意

Visual Studio Express Editionは、Prismアプリケーションの作成にも使用できます。


Silverlightアプリケーションを開発している場合、以下をインストールしておく必要があります。



ご注意

Visual Studio用のSilverlightツールは必要ありませんが、すべてのWPFおよびSilverlight開発者が最新バージョンをダウンロードして使用することをお勧めします。

WPFおよびSilverlight for Visual Studioは、ダウンロードに含まれているSilverlightランタイムおよびソフトウェア開発キット(SDK)と共に更新されています。 これらの更新により、新しい機能とバグ修正が追加されます。


オプションで、次を設定することもできます。



ご注意

Windows Phone 7でPrismを使用する方法の詳細については、CodePlexのWindows Phone 7開発者ガイドコミュニティサイトhttp://wp7guide.codeplex.com/ )を参照してください


ステップ2:Prismソース、実行可能ファイル、およびドキュメントを抽出する


Prismをインストールするには、Prismv4.exeファイルを右クリックし、[ 管理者として実行]を選択します 。 これにより、ソースコード、実行可能ファイル、ドキュメントが選択したフォルダーに抽出されます。



ステップ3:ライブラリを登録する


Prismライブラリの登録はオプションですが、これを行うことにより、プロジェクトのPrismアセンブリへの参照を簡単に追加できます。 ライブラリ登録を選択すると、それらはVisual Studioの[ 参照の追加 ]ダイアログボックスのリストに表示されます。 登録しない場合は、プロジェクトのPrismライブラリファイルへのリンクを手動で追加する必要があります。 署名付きPrismアセンブリは、次のフォルダーにあります。

  • {プリズム} \ビン\デスクトップ
  • {プリズム} \ Bin \ Silverlight
  • {プリズム} \ビン\電話


Prismライブラリファイルを登録するには、Prismを解凍したフォルダーにあるRegisterPrismBinaries.batバッチファイルを実行します。 彼は、バイナリファイルを含むデスクトップ、Silverlight、および電話フォルダーを登録するために必要な情報を含む一時.regファイルを作成し、それを使用してシステムレジストリを更新します。 レジスタの更新は特権的な操作であるため、必要な特権がない場合は、ユーザーアカウント制御(UAC)メッセージが表示される場合があります。 UACの詳細については、「 ユーザーアカウント制御とは 」を参照してください。

ご注意

スクリプトを使用して登録できるバイナリファイルのコピーは1つだけです。 Prismライブラリの複数のコピーが登録されている場合、最後に登録されたコピーのバイナリファイルのみがVisual Studioで利用可能になります。


ご注意

Prismをインストールする最も簡単な方法は、 VS2012にデフォルトでインストールされているnugetパッケージマネージャーを使用することです。 インストールするには、nugetコンソールでPM> Install-Package Prismと入力するか、ビジュアルインターフェイスを使用する必要があります。


プリズムのレビュー



このリリースの新機能


このリリースは、WPF 4.0およびSilverlight 4の機能を使用するように更新されました。次のような、大幅に更新された新しいガイドを含むいくつかの領域が含まれています。

  • 管理された拡張性フレームワーク(MEF) 。 Prismには、MEFを使用して依存関係を管理し、コンポーネント間の疎結合を維持するためのガイダンスが含まれるようになりました。 MEFの使用については、第3章「コンポーネント間の依存関係の管理」で説明します。
  • モデル-ビュー-ビューモデル(MVVM)パターン (モデル-ビュー-ビューモデル)。 Prismの以前のバージョンは、プレゼンテーション分割テンプレートを使用するための広範なガイドラインを提供していました。 このガイドでは、MVVMパターンに焦点を当てています。 第5章では、MVVMパターンの概要とその実装について説明します。 第6章では、より高度なMVVMシナリオについて説明します。
  • ナビゲーション Prismは、WPFまたはSilverlightアプリケーションでナビゲーションを実装するためのガイダンスを提供するようになりました。 このガイドでは、単一ウィンドウの視覚状態を更新するために使用される状態ベースのナビゲーションと、ビュー間を移動するために使用されるビューベースのナビゲーションの両方を扱います。 両方のアプローチについては、第8章「ナビゲーション」で説明します。


Prismは、Prismライブラリビルドの署名付きバージョンも提供するようになりました。 これは、アプリケーションでPrismライブラリを変更せずに使用したい開発者の便宜のために行われます。 さらに、すべてのVisual Studioプロジェクト(Prismライブラリ、および実装とクイックスタートへのリンク)もVisualStudio 2010およびSilverlight 4に転送されました。



箱から出してすぐに入れるもの


プリズムに含まれるもの:

  • Prismライブラリのソース 。 ソースコードには、Prismの基本機能に加えて、 Unityアプリケーションブロック(Unity)およびManaged Extensibility Framework(MEF)とともにPirsmを使用するための追加コンポーネントを提供するUnityおよびMEF拡張機能が含まれています。
  • Prismライブラリのアセンブリ 。 署名済みのコンパイル済みPrismライブラリビルド。 これらはbinフォルダーにあり、Prismライブラリを使用する便利な方法です。 アセンブリは、提供されたスクリプトファイルを使用してVisual Studioで再構築および登録できます。 また、 Unity Application BlockおよびService Locatorアセンブリも含まれます。
  • 実装例 。 Prismを使用して実際のアプリケーションシナリオを実装する方法を示す包括的なアプリケーションサンプル。 例は意図的に不完全ですが、1つのアプリケーションで連携できるPrismパターンの数を示しています。 Prismには、株式トレーダーリファレンス実装(株式トレーダーRI)とMVVMリファレンス実装(MVVM RI)の2つの例があります。
  • クイックスタート Prismには、MVVMパターン、ナビゲーション、複合UI、モジュール性、コマンド、イベント集約、および多目的アプリケーションの作成を示す、いくつかの小さなシンプルな例のソースコードが含まれています。
  • ドキュメンテーション Prism 4のドキュメントには、Prismの目標と概念の概要が記載されており、Prismが提供する各ツールとデザインテンプレートの使用に関する詳細な手順が含まれています。 次のセクションでは、対象トピックのステップごとの概要を説明します。




ドキュメントの概要


Prismのドキュメントには、一般的な開発の問題の概要と複合アプリケーションの開発へのアプローチ、Prismライブラリとそれが実装する設計パターンの概要、開発プロセスでPrismライブラリを使用するための段階的な手順など、幅広いトピックが含まれています。 このドキュメントは、幅広い技術対象者を対象としており、読者が独自のアプリケーションでPrismを理解して使用できるようにすることを目的としています。 ドキュメントには次のものが含まれます(以下、MSDNリンクと呼びます)。

  • パート2、 Prismアプリケーションの初期化 。 この章では、モジュール式Prismアプリケーションを取得して実行するために必要なことについて説明します。
  • パート3「 コンポーネント間の依存関係の管理 」「プリズムベースのアプリケーションは、依存性注入(DI)コンテナに依存しています。Prismはほとんどすべてのコンテナで動作しますが、PrismライブラリにはUnityまたはMEFの2つのデフォルトオプションがあります。この章では、さまざまな開発手法と、DIコンテナを使用する際に注意する必要があるもの。
  • パート4、 モジュール式アプリケーション開発 。 この章では、Prismを使用してモジュラークライアントアプリケーションを作成するための基本概念、主要なソリューション、および基本シナリオについて説明します。
  • パート5、 MVVMパターンの実装 。 MVVMテンプレートを使用して、アプリケーションのインターフェイスと、プレゼンテーションおよびビジネスロジックの基礎となるレイヤーを、プレゼンテーション、モデル、プレゼンテーションモデルの3つの個別のクラスに分離します。 この章では、MVVMテンプレートの基礎となる基本概念について説明し、Prismを使用してテンプレートをアプリケーションに変換する方法について説明します。
  • パート6、 高度なMVVMシナリオ この章では、複合コマンド(コマンドのグループを表すコマンド)の実装方法や、Webサービスリクエストとユーザーインタラクションを非同期で処理する方法など、MVVMテンプレートを使用してより複雑なシナリオを実装する方法に関するガイダンスを提供します。 この章では、MVVMクラスを構築および統合するために、UnityやMEFなどのDIコンテナを使用するためのガイドラインも提供します。
  • パート7、 ユーザーインターフェイスの作成 。 リージョンは、開発者がビューをユーザーインターフェイスのどこに表示するかを指定できるプレースホルダーです。 Prismには、領域内の種を表示するための2つのアプローチがあります。種の探索と種の導入です。 この章では、リージョンとユーザーインターフェイスの操作方法について説明します。 また、ユーザーインターフェイス設計者が複合アプリケーションを理解するのに役立つ情報も含まれています。
  • パート8、 ナビゲーション ナビゲーションは、アプリケーションとのユーザーインタラクションの結果、または内部状態の変更の結果として、ユーザーインターフェイスで調整された変更が発生するプロセスです。 この章では、ユーザーインターフェイスビューの状態が更新されてナビゲーションが反映される状態ベースのナビゲーションと、新しいビューがリージョンで作成および表示されるビューベースのナビゲーションの実装に関するガイダンスを提供します。
  • パート9、 疎結合コンポーネント間の通信 このパートでは、コマンド、イベント集約、リージョンのコンテキスト、および共通サービスを使用して、異なるモジュール内のコンポーネント間の通信を提供するさまざまな方法について説明します。
  • パート10、 SilverlightとWPF間のコードの共有 。 マルチプラットフォームアプリケーションは、共通のコードを使用して2つの複数のプラットフォームを対象としています。 この場合、WPFとSilverlightです。 この部分は、そのようなアプリケーションとは何か、その利点と欠点を理解するのに役立ちます。 Prismは、SilverlightとWPFの間で共通のコードを共有するために、ルートプロジェクトからターゲットへのリンクを自動的に作成および維持するのに役立つプロジェクトリンカーツールを提供します。
  • パート11、 Prismアプリケーションのデプロイ 。 このパートでは、WPFおよびSilverlightアプリケーションの展開について説明します。
  • 付録A、 用語集 。「この付録では、Prismが提供する用語、概念、設計パターン、機能の短いリストを提供します。
  • 付録B、 Prism Libraryのパターン 。 このアプリケーションでは、PrismライブラリおよびStock Trader RIアプリケーションで使用されるアプリケーション設計パターンについて説明します。 このトピックの主な目的は、複合アプリケーションの設計の難しさを克服するのに役立つパターンに精通したい設計者および開発者です。
  • 付録C、 プリズムライブラリ このアプリは、Prismライブラリの概要を提供します。


次のトピックには、ソースコードとインタラクティブコンテンツが含まれています。

  • 付録D、 以前のバージョンからのアップグレード 。 ここでは、Prismの以前のバージョンからアップグレードするために知っておくべきことについて説明します。
  • 付録E、 Prismの拡張 。 この付録では、Prismライブラリを拡張する方法について説明します。
  • 付録F、 リファレンス実装 Prismに同梱されているアプリケーションの例をここで説明します。 詳細については、「参照実装の調査」を参照してください。
  • 付録G、 クイックスタート Prismには、基本的なアイデアを示すいくつかのクイックスタートアプリケーションのソースコードが含まれています。 詳細については、「クイックスタートの探索」を参照してください。
  • 付録H、 Prismハンズオンラボ ラボでは、最も単純なWPFとSilverlightの複合アプリケーションを段階的に構築するプロセスを示します。 このアドオンの主な目的は、Prismライブラリの基本原則を理解したい開発者です。 また、ClickOnceを使用してPrism WFPアプリケーションを公開および更新するためのラボも含まれています。


クイックスタートレビュー


クイックスタートは、Prismの特定の側面を説明する小さなアプリケーションです。 これらは、主要なアイデアを理解したい場合に理想的な出発点であり、コード読み取りを通じて新しいテクノロジーについて十分に訓練されています。 Prismには、次のクイックスタートが含まれています。

  • WPFの モジュラリティクイックスタートおよびSilverlightのモジュラリティクイックスタート 。 これらのクイックスタートは、WPFおよびSilverlightプラグインアプリケーションの構築方法を示します。 モジュールは、シェルにモジュールアセンブリへの参照が含まれている場合は静的にロードでき、実行時にモジュールが動的に検出およびロードされる場合は動的にロードできます。 クイックスタートでは、UnityおよびMEFコンテナーの使用方法を示します。
  • 基本的なMVVMクイックスタートおよびMVVMクイックスタート 。 基本的なMVVMクイックスタートは、MVVMパターンを実装する非常にシンプルなアプリケーションを作成する方法を示します。 MVVMクイックスタートは、MVVMパターンを実装するアプリケーションの作成方法を示し、検証、ユーザーインターフェイスの相互作用、データパターンなど、開発者が遭遇する可能性のあるより一般的な問題を示します。
  • UIコンポジションクイックスタート 。 このクイックスタートでは、WPFおよびSilverlightインターフェイスを作成する方法を示します。WPFおよびSilverlightインターフェイスは、領域に動的に読み込まれ、さまざまな方法で相互作用するさまざまなビューで構成されています。 ビューの探索とビューの紹介の両方のユーザーインターフェイス構成アプローチの使用方法を示します。
  • 状態ベースのナビゲーションクイックスタート 。 このクイックスタートは、単純なアプリケーションでナビゲーションを作成する方法を示しています。 このクイックスタートで使用されるアプローチでは、Silverlight Visual State Manager(VSM)を使用してアプリケーションのさまざまな状態を定義し、すべての状態とそれらの間の遷移のアニメーションを定義します。
  • ビュー切り替えナビゲーションのクイックスタート 。 このクイックスタートでは、Prism Region Navigation APIの使用方法を示します。 クイックスタートは、リージョン内のビューへの移動、異なるビューを含むリージョン内のビューへの移動(ネストナビゲーション)、ナビゲーションログのサポート、ビューのリアルタイム作成、ビューへの移動時のコンテキスト情報の転送、ビューなど、いくつかのナビゲーションシナリオを示しますモジュール化とユーザーインターフェイスの構成を使用して構築されたアプリケーションの一部として、ナビゲーションに関連するモデル、およびナビゲーションの使用を表示します。
  • クイックスタートのコマンド 。 このクイックスタートでは、Prismライブラリが提供するコマンドを使用して、さまざまな方法でユーザーインターフェイスイベントを処理するWPFまたはSilverlightユーザーインターフェイスを作成する方法を示します。
  • イベント集約のクイックスタート 。 このクイックスタートでは、イベント集約サービスを使用するWPFまたはSilverlightアプリケーションを作成する方法を示します。 このサービスを使用すると、アプリケーション内のコンポーネント間の接続を緩めることができます。
  • マルチターゲットクイックスタート 。 このクイックスタートは、マルチプラットフォームのWPFおよびSilverlight環境を使用して作成されたプロジェクトの構造を示します。 彼は、デスクトップアプリケーション(WPF)およびリッチインターネットアプリケーション(RIA)アプリケーション(Silverlight)の作成経験を提供します。


実装例の概要


参照実装の例Prism(参照実装)は、クライアントが直面している実際の状況に基づいた典型的なアプリケーションです。 それらをPrismライブラリアプリケーションを構築するための基礎として見てください。 彼らが含まれます:

  • 株式トレーダー参照実装 。 Stock Trader RIは、Prismライブラリを使用したコアアーキテクチャの実装を示す複合アプリケーションです。
  • MVVMリファレンス実装 。 MVVM RIは、MVVMパターンを使用してアプリケーションを作成するときに開発者が直面する一連の複雑な問題を示します。


以前のバージョンからの更新



マニュアルの以前のバージョンからアップグレードする場合は、付録Dの「 以前のリリースからのアップグレード 」を参照して、このリリースと以前のリリースの主な違いについて学習してください。



プリズムの簡単なレビュー



プリズム作成の目標


Prismは、リッチで柔軟で使いやすいWPFおよびSilverlightアプリケーションを設計および構築できるように設計されました。 Prismライブラリは、責任の分離や弱い結合など、アーキテクチャ設計の重要な原則を具体化する設計パターンを実装しています。 Prismが提供する設計パターンと機能を使用すると、独立して開発でき、1つのアプリケーションに簡単に統合できる疎結合コンポーネントでアプリケーションを設計および作成できます。



Prismは、責任の分離や疎結合など、アーキテクチャ設計の基本原則に基づいて設計されています。 これにより、次のような多くの利点を得ることができます。

  • コードの再利用 。 Prism , , . , , , .
  • . Prism , , , , , . Prism .
  • . Prism , . Prism WPF Silverlight , , . , .
  • . Prism , . Prism ( , - ) - ( , , , ).
  • < . Prism , . , , , Prism , .


, Prism , Prism , , . Prism , , , .



, , Prism , , . Prism , Microsoft, , VisualStudio, . . , Prism , .

. .
Acceptance Testing. , . .
Application Building Exercises. , .
Black Box Testing. , .
Cross Browser Testing. .
Cross Platform Testing. .
Globalization Testing. .
Performance Testing. , .
Security Review. Microsoft, , .
Stress Testing. , , .
White Box Testing. , , , .


Prism UI, . . , , Prism .

. .
UI Automation Tests. ; .
Unit Tests .


Prism


Prism , , . Prism , .

  • (Modules) . – , , , ( ) . . Prism . , (, ) , , , . , (, ), .
  • (Module catalog) . . , , , . ModuleManager ModuleLoader , , , . - : , XAML, . , .
  • (Shell) . — -, . , , . , . , UI, .
  • (Views) . – UI, . MVVM MVP , UI, . , UI , , . , .
  • (View models) (Presenters) . — , . – MVVM. . , . MVP . , , .
  • (Models) . -. MVVM MVP. , - , .
  • (Commands) . , UI. . Prism DelegateCommand CompositeCommand . , .
  • (Regions) . – , ( ), . UI, . , ContentControl, ItemsControl, ListBox, TabControl, . . Prism . RegionManager , ( RegionAdapter ) ( RegionBehavior ) .
  • (Navigation) . , UI , . Prism : state-based , , view-switching , UI. View-switching Uniform Resource Identifier (URI) Prism, .
  • (EventAggregator) . . , Prism EventAggregator , pub-sub , , , . EventAggregator , , , .
  • (Dependency injection container) . (Dependency Injection, DI) – , Prism . DI , . Prism , Unity MEF, ServiceLocator .
  • (Services) . — , UI , , , . . , , .
  • (Controllers) . — , , , . , , . view-swithing , , URI , . (Application Controller) , .
  • (Bootstrapper) . Prism. DI , . , Presenter.
  • (Multi-targeting) . Prism , WPF, Silverlight. , MVVM MVP, UI -. , Presenter WPF Silverlight . WPF Silverlight , UI .


Prism , , . MVVM, , , , . , , Prism . Prism , Prism .



複合Prismアプリケーションの典型的なアーキテクチャ。



Prism -, , . , , , . DI , . .



, , MVVM, , , , . , , , , . , , , state-based view-switching .



Prism


, , Prism, , Prism . , Prism. , , Prism, .



Prism , WPF Silverlight ( , ), Prism , Prism .


Prism . , Prism.



複合アプリケーションの作成に必要なアクション。



Prism Prism , , . , , , Prism, , .



Prism. Prism Prism , Visual Studio , Add References . , . Prism . Go To Definition , Prism, Prism , .




. , . , , , , , . , .



シェル、ビュー、およびリージョン。





, Prism Unity, MEF. , UnityBootstrapper MefBootstrapper , . , . , .



, , .NET Framework Trace . , Enterprise Library. .



, UnityBootstrapper MefBootstrapper Prism. .



      Prism.





, . , . , IModule . , , . , , .





, . RegionManager, , , . RegionManager , .



Prism.





Prism , WPF Silverlight. WPF Silverlight, :

  • Windows Presentation Foundation MSDN.
  • マクドナルド、マシュー。C#2010のPro WPF:.NET 4のWindows Presentation Foundation、Apress、2010。
  • ネイサン、アダム。WPF 4アンリーシュドSams Publishing、2010年。
  • ブニオン、ローラン。Silverlight 4 Unleashed、Sams Publishing、2010年。
  • ブラウン、ピート。Silverlight 4 in Action、Manning Publications、2010。


Silverlightに関する一般的な情報が必要な場合は、次のリソースを参照してください。



コミュニティ



PrismコミュニティWebサイトhttp://www.codeplex.com/Prism このサイトでは、質問をしたり、フィードバックを受け取ったり、他のユーザーに連絡してアイデアを交換したりできます。 コミュニティメンバーは、Microsoftが将来のオファーを計画およびテストし、拡張機能やトレーニング資料などの追加コンテンツをダウンロードすることもできます。



All Articles