Prism for WPFとは何ですか?


137

最近プリズムと呼ばれるものに出会いました。プロジェクトを実行するマイクロソフトは、それを次のように説明しています

WPFおよびSilverlightでの複合アプリケーションのガイドライン。

詳細な説明を読んだ後でも、私はそれが実際に何であるかについてほとんど手がかりがありません、私は恐れています。

私はここで、誰かが私にプリズムが実際に何であるか、そしてなぜそれを学ぶべきなのかについての明確な簡潔な説明を与えてくれることを望んでいます。私は数年前からWPF開発者であり、MVVMを公平に使用しており、最近、Prismを使用している人々に遭遇しましたが、個人的にはここでのループから少し抜け出したと感じています。

特に、次の点について疑問に思っています。

  • Prismは、MSDNサイトに記載されているとおり、文字通り(または主に)小冊子ですか?それにはライブラリが含まれていますか?

  • PrismはMVVMフレームワークですか?他の人や自分のものよりも「公式のMicrosoft MVVMフレームワーク」として使用する必要がありますか?

  • 依存性注入を提供しますか?このようにMEFと関係がありますか?

  • WPF / Silverlightの開発者として、Prismの機能について知っておくべきことは他にもあります。


5
それも実際にはかなり複雑なことです。Prismは多くのニーズを満たそうとします。そのため、その目的を理解しようとすると、単一の「正しい」答えを得るのは困難です。それは本当に複数のことをします。
リードコプシー、2011年

1
私が求めていたこの同様の問題もこの質問にいくつかの良い答えを持っている- stackoverflow.com/questions/6251821/...
akjoshi

9
P&Pのもう1つの暗い泥沼。彼らがこのようなものをリリースするたびに、私はSOまたはウィキペディアにアクセスして、実際に何が起こっているのかを調べる必要があることに気づきます。なぜそれはいつもとても不可解である必要があるのですか?
アダムラルフ

1
必要に応じて、WPF / SilverlightアプリケーションにMVVMパターンを実装する方法を説明する一種のドキュメントです。codePlexのライブラリもあるので、それが正確に何のためのものかはわかりません。PRISMに関する優れたドキュメントは、以下のリンクにあります。一見すると価値があります
。Prism4.1

回答:


92

Prismは、WPFおよびSilverlightで「複合アプリケーション」を構築するためのMicrosoftパターンおよび実践チームの公式ガイダンスです。

開発と保守の点で柔軟性のある大規模アプリケーションを構築するためのベストプラクティスに関するガイダンスを提供することを目的としています。

これには、(UnityまたはMEFを介した)依存性注入、レイアウト(MVVMの使用を含む)、複合イベント処理などに関するガイダンスが含まれます。


Prismは、MSDNサイトで提供されているとおり、文字通り(または主に)小冊子ですか?それにはライブラリが含まれていますか?

本ですが、サポート用のライブラリも含まれています(GitHubサイト)。

PrismはMVVMフレームワークですか?他の人や自分のものよりも「公式のMicrosoft MVVMフレームワーク」として使用する必要がありますか?

はいといいえ。MVVMを使用するためのガイダンスが含まれていますが、MVVMフレームワークをはるかに超えています。それ自体は「MVVMフレームワーク」ではありません。ただし、MVVMガイダンスは含まれています。

依存性注入を提供しますか?このようにMEFと関係がありますか?

はい。最初はUnityが含まれていましたが、最新のリリースにはDIにMEFを使用することが含まれています。

WPF / Silverlightの開発者として、Prismの機能について知っておくべきことは他にもあります。

彼らが物事をどのように行うかを見てみる価値があります。非常に精巧な「リージョン」の概念と、優れたイベント集約サポートがあります。また、WPF、Silverlight、およびWindows Phoneを同時に開発するための優れた方法も含まれています。


1
返信いただきありがとうございます。これは私が私に思う良い概観を与えます。ただ明確にするために、実際にはMVVM関連のコードやライブラリDLLがありますか?
Noldorin

4
@Noldorin:Prismの内部について質問していると思います... MVVMのサポートはいくつかありますが、率直に言って、MVVMはパターンとして、ほとんどライブラリのサポートを必要としません。Prismは優れた通知オブジェクトとコマンドサポートを備えています。これは、実際にMVVMに必要なBCLに欠けている唯一のものです。また、VM <-> VM通信にDI /共有サービスを使用する場合に役立つサービスロケータサポートも備えています。このようなメッセージングフレームワークとして、いくつかのMVVM「フレームワーク」、などが提供する「余分な」もののいくつか持っていません
リードCopsey

1
Prismガイダンスに従うためには、ライブラリがインストールされている必要がありますか?
dios231 2016

18

これは、WPFおよびSilverlightアプリを構築するためのフレームワークです。

http://compositewpf.codeplex.com/

Microsoftが「CompositeWPF」に名前を変更する前は、「Prism」と呼ばれていました。

答え:

1)Prismは、アプリケーションの基盤として使用するMVVMフレームワークです。

2)特定の要件に応じて、そうすることをお勧めします。特定の詳細を含む別の質問を投稿して、いくつかの具体的な回答を得る必要があります。

3)Prismは依存性注入(Unity)を使用しますが、それを「提供」しません

4)Imo、Prismは多くの機能を提供しますが、学習曲線に負荷をかけます。唯一の開発者としてあなたと一緒にいる小さなプロジェクトの場合、あなたはそれが提供する抽象化とツールを必要としないかもしれません。


3
あなたの声明にやや同意しません#1-PrismにはMVVMガイダンスが含まれていますが、ガイダンス(ほとんどのサンプル)の多くはMVVMではありません。これは、複合アプリケーションを構築するときに使用できる1つのオプションとして提示されています。
リードコプシー、2011年

1
私はいつもMVVMパターンで使用してきたと思います
rboarman
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.