web-dev-qa-db-ja.com

Prism for WPFとは何ですか?

私は Prism と呼ばれるものに最近出くわしました。プロジェクトを実行するマイクロソフトは、それを次のように説明します

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

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

ここで、Prismが実際に何であり、なぜそれを学ぶ必要があるのか​​について、簡潔な説明を誰かが教えてくれることを望んでいます。私は数年前からWPFの開発者であり、MVVMを公平に使用しており、最近Prismを使用している人々に出会ったことがありますが、個人的にはループから少し外れていると感じています。

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

  • MSDNサイト上 ?のように、Prismは文字通り(または主に)小冊子ですか?含まれている場合、正確に何のためのライブラリが含まれていますか?

  • PrismはMVVMフレームワークですか?それを「公式のMicrosoft MVVMフレームワーク」として使用して、他の人たちや他の人たちの代わりに使うべきでしょうか?

  • 依存性注入を提供しますか?このようにMEFにまったく関連していますか?

  • WPF/Silverlight開発者として、Prismが何をするかについて知っておくべきことは何でもあります。

131
Noldorin

Prismは Microsoft Patterns and Practices Team WPFおよびSilverlightで「複合アプリケーション」を構築するための公式ガイダンスです。

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

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


MSDNサイトで提供されているように、Prismは文字通り(または主に)小冊子ですか?含まれている場合、正確に何のためのライブラリが含まれていますか?

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

PrismはMVVMフレームワークですか?それを「公式のMicrosoft MVVMフレームワーク」として使用して、他の人たちや他の人たちの代わりに使うべきでしょうか?

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

依存性注入を提供しますか?このようにMEFにまったく関連していますか?

はい。元々Unityが含まれていましたが、最新リリースにはMEF for DIの使用が含まれています。

WPF/Silverlight開発者として、Prismが何をするかについて知っておくべきことは何でもあります。

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

88
Reed Copsey

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

http://compositewpf.codeplex.com/

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

回答:

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

2)特定の要件に応じて提案します。特定の回答を得るには、特定の詳細を含む別の質問を投稿する必要があります。

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

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

18
rboarman