13: Prism Library 5.0 for WPF(原文)
Microsoft Prism Library 5.0 for WPFの開発者のガイドから
Prism Libraryは、設計者と開発者が、Model-View-ViewModelのパターンを使用するWindows Presentation Foundation (WPF)のための、 複合アプリケーションを作成するのに役立ちます。Prismライブラリは、WPFで、構築したい多くのアプリケーションのスタイルをサポートできます。 しかし、それは、主に、多くの場合、複合アプリケーションと呼ばれ、統合ユーザー・インターフェイス(UI)を単独で作成するために、 互いに動作する完全に機能する断片に、別々に構成されるアプリケーションのために、構築されます。 Prism Libraryは、実証済みのデザイン・パターンを使用して、アプリケーションの開発を加速します。
Prism Libraryは、主に、設計者に役立つように設計されています。 そして、開発者は、次に示す、達成する必要があるアプリケーションを作成します。:
- モジュールや部品が、協力するにもかかわらず、独立して構成されるクライアントを構築します。
- これを行うことによって、モジュール作成者の懸念をシェル開発者の懸念から分離します。;事業部門は、WPFのアーキテクチャの代わりに、ドメイン固有のモジュールを開発することに、集中することができます。
- Model-View-ViewModel(MVVM)のような、プレゼンテーション・モデル・パターンのためのサポートを通して、プレゼンテーション、プレゼンテーション・ロジックとアプリケーション・モデルの懸念を分離します。
- 一貫して、高品質の統合アプリケーションを作成するための、設計上の基盤構造を使用します。
Prism Libraryで、あなたのアプリケーションを構築するとき、あなたは、Prism LibraryとUnityアプリケーション・ブロック(Unity)のためのUnity拡張、 あるいは、Prism LibraryとMEFのための拡張管理フレームワーク(MEF)拡張を使用するかもしれません。 これらは、次の図に示すように、WPFのための.NET Framework 4.5で構築されます。
複合アプリケーション・パッケージ
Composite application package
Prism Libraryは、WPF基盤上で、複合、そして、非複合の両方のアプリケーションを構築するための、共通の要求に対処します。 全体として、Prism Libraryは、これらの必要性に対処するために、サービスとコンポーネントを与えることによって、開発を加速します。
コンパイルする必要性なく、あなたが、すぐにPrismを利用できるために、Prism Libraryは、NuGetパッケージによって署名したバイナリを発送します。 そして、その場合のソースとして、あなたは、修正を作成すること、あるいは、それが、実際に、どのように動作するか確かめることを望みます。
NuGetを使用、そして、ライブラリ・ソース・コードを呼び出して、参照を追加します。
Add Reference using NuGet and Accessing the Library Source Code
Prismのためのに、NuGetを探すことによって、あなたのコードのPrismバイナリに、参照を追加します。 PrismのNuGetパッケージは、Prism.Composition、Prism.Interactivity、Prism.MvvmとPrism.PubSubEvents NuGetパッケージに依存しています。
備考
PrismのNuGetパッケージは、Prism.Composition、Prism.PubSubEvents、 Prism.MvvmとPrism.Interactivity NuGetパッケージをダウンロードするでしょう。
Prismライブラリのためのソースは、http://aka.ms/prism-wpf-codeからダウンロードすることができます。
Prism Libraryの構成
Organization of the Prism Library
デスクトップ・アプリケーションを対象とする、Prism Libraryは、8つのアセンブリから構成されています。:
- Microsoft.Practices.Prism.Composition
このアセンブリは、インターフェイスと複合アプリケーションを構築するために役立つコンポーネントが含まれています。 これらのコンポーネントは、ModuleManager、ModuleCatalogとBootstrapperが含まれています。 さらに、このアセンブリには、複数の部品から、ユーザー・インターフェイスを構成するのに役立つ、RegionManagerコンポーネントが含まれています。
- Microsoft.Practices.Prism.Interactivity
このアセンブリには、UIに基づいた、大部分は、MVVMパターンのサポートに組み込まれている、 Blend for Visual Studio 2013ビヘイビア(Blend SDKで利用できます)と、相互作用のためのビヘイビアと動作が含まれます。 これは、InteractionRequest、InteractionRequestTrigger、ConfirmationとNotificationが含まれています。 加えて、PopupWindowActionは、InteractionRequestTriggerに対応しています。
- Microsoft.Practices.Prism.UnityExtensions
このアセンブリは、Prism LibraryでUnityアプリケーション・ブロック(Unity)を使用するコンポーネントを提供します。 これらのコンポーネントは、UnityBootstrapperとUnityServiceLocatorAdapterが含まれています。
- Microsoft.Practices.Prism.MefExtensions
このアセンブリは、Prism Libraryと一緒に、拡張管理フレームワーク(MEF)を使用するコンポーネントを提供します。 これらのコンポーネントは、MefBootstrapperとMefServiceLocatorAdapterが含まれています。
- Microsoft.Practices.Prism.PubSubEvents(Event Aggregator)
このアセンブリには、モジュールの間で、疎く結合したメッセージを送信するのに役立つインターフェイスとコンポーネントが含まれています。 コンポーネントは、PubSubEventsとEventAggregatorが含まれています。
- Microsoft.Practices.Prism.Mvvm.
このアセンブリには、インターフェイスとMVVMパターンを実装するために、役に立つコンポーネントが含まれています。 これらのコンポーネントは、BindableBase、PropertySupport、ViewModelLocationProvider、DelegateCommandとCompositeCommandが含まれています。
- Microsoft.Practices.Prism.Mvvm.Desktop
このアセンブリには、AutoWireViewModelPropertyと呼ばれる、基盤に固有の依存関係プロパティが含まれている、WPFに固有のコンポーネントが含まれています。
- Microsoft.Practices.Prism.SharedInterfaces.
このアセンブリには、共有されたIActiveAware Prismインターフェイスが含まれています。
Prism Libraryソース
The Prism Library Source
Prism.Composition、Prism.Interactivity、Prism.UnityExtensions、Prism.MefExtensions、 Prism.SharedInterfaces、Prism.PubSubEventsとPrism.Mvvmアセンブリのためのソースは、PrismがインストールされるPrismLibraryフォルダで見つかります。 これらのアセンブリは、WPFアプリケーションを対象としています。
ライブラリを変更する
Modifying the Library
あなたが、Prism Libraryを変更したい場合、 あなたは、あなたの独自のバージョンのバイナリに、NuGet参照アセンブリを置き換えることができます。
テストを実行する
Running the Tests
あなたが、Prism Libraryを変更、そして、検証したい場合、既存の機能は、破壊されず、プロジェクトのための単体テストを実行します。 すべてのデスクトップユニットテストを実行するには、PrismLibrary_Desktop.slnソリューション・ファイルで、Testメニューで、Runを指します。 そして、その次に、All Tests in Solutionをクリックします。
詳細情報
More Information
Prismのコミュニティの場所は以下の通りです:
- Prism:http://www.codeplex.com/Prism
- PubSubEvents(Event Aggregator):http://pnppubsub.codeplex.com
- MVVM:http://pnpmvvm.codeplex.com
Unityの詳細については、以下を参照してください。:
- MSDNの「Unityアプリケーション・ブロック」:http://www.msdn.com/unity
- CodePlexの上のUnityコミュニティ・サイト:http://www.codeplex.com/unity
MEFの詳細については、以下を参照してください。:
- MSDNの「Managed Extensibility Frameworkの概要」https://msdn.microsoft.com/en-us/library/dd460648.aspx
- CodePlexの上のMEFコミュニティ・サイト:http://mef.codeplex.com/
サービス・ロケーターの詳細については、CodePlex上の共通サービス・ロケーターを参照してください。:http://commonservicelocator.codeplex.com/