什么是WPF的棱镜?

什么是WPF的棱镜?,wpf,mvvm,prism,Wpf,Mvvm,Prism,我最近遇到了一件叫“很多”的事情。运行该项目的微软称其为 WPF和Silverlight中的复合应用指南 即使在阅读了更详细的描述之后,恐怕我也几乎不知道它到底是关于什么的 我希望有人能给我一个清晰简洁的解释,说明棱镜到底是什么,以及我为什么要学习它。我已经做了几年WPF开发人员,使用了MVVM,最近还遇到了使用Prism的人,但我个人觉得这里有点不对劲 我特别想知道以下几点: Prism真的只是(或主要是)一本小册子吗?它包括任何库吗?如果有,具体是为了什么 Prism是MVVM框架吗?我应

我最近遇到了一件叫“很多”的事情。运行该项目的微软称其为

WPF和Silverlight中的复合应用指南

即使在阅读了更详细的描述之后,恐怕我也几乎不知道它到底是关于什么的

我希望有人能给我一个清晰简洁的解释,说明棱镜到底是什么,以及我为什么要学习它。我已经做了几年WPF开发人员,使用了MVVM,最近还遇到了使用Prism的人,但我个人觉得这里有点不对劲

我特别想知道以下几点:

  • Prism真的只是(或主要是)一本小册子吗?它包括任何库吗?如果有,具体是为了什么

  • Prism是MVVM框架吗?我应该把它作为“官方微软MVVM框架”而不是其他人还是我自己

  • 它提供依赖注入吗?它与MEF有这样的关系吗

  • 作为WPF/Silverlight开发者,我还应该知道Prism的其他工作


这是一个构建WPF和Silverlight应用程序的框架

在微软将其重命名为“CompositeWPF”之前,它曾被称为“Prism”

答复:

1是一个MVVM框架,用作您的应用程序的基础。 2) 我建议这样做,具体取决于您的具体要求。你应该发布另一个带有具体细节的问题,这样你就可以得到一些具体的答案

3) Prism使用依赖注入(Unity),但不“提供”依赖注入

4) 在我看来,Prism提供了很多功能,但在学习过程中难度很大。对于您作为唯一开发人员的小型项目,您可能不需要它提供的抽象和工具。

Prism是在WPF和Silverlight中构建“复合应用程序”的官方指南

其目的是为构建在开发和可维护性方面灵活的大规模应用程序提供最佳实践指导

这包括依赖注入(通过Unity或MEF)、布局(包括使用MVVM)、复合事件处理等方面的指导


Prism是否只是(或主要是)MSDN网站上的一本小册子?它包括任何库吗?如果有,具体是为了什么

这是一本书,但也包括图书馆的支持(在网站上)

Prism是MVVM框架吗?我应该把它作为“官方微软MVVM框架”而不是其他人还是我自己

是和否。它包括使用MVVM的指南,但远远不止是一个MVVM框架。它本身并不是一个“MVVM框架”——尽管它确实包含MVVM指导

它提供依赖注入吗?它与MEF有这样的关系吗

对。它最初包括Unity,但最新版本包括将MEF用于DI

作为WPF/Silverlight开发者,我还应该知道Prism的其他工作


值得一看他们是如何做事的。它们有一个非常复杂的“区域”概念,以及良好的事件聚合支持。它还包括针对WPF、Silverlight和Windows Phone同时开发的良好实践。

我有点不同意您的说法#1-Prism包括MVVM指南,但许多指南(大多数示例)根本不是MVVM。它更像是构建复合应用程序时可以使用的一个选项。我想我一直使用MVVM模式。事实上,这也是一件相当复杂的事情——Prism试图满足很多需求,因此,如果你想弄清楚它的用途,很难得到一个“正确”的答案。它确实做了很多事情。我问的这个类似的问题对这个问题也有一些很好的答案——宝洁公司又一次陷入了一个模糊的泥潭。每次他们发布这样的东西,我发现我自己都不得不去SO或维基百科去了解它到底是什么。为什么它总是如此神秘?如果您愿意,它是一种指导您如何在WPF/Silverlight应用程序中实现MVVM模式的文档。还有一个来自codePlex的库,我不确定它的确切用途。一个关于PRISM的好文档位于下面的链接中,值得一看:谢谢你的回复。我认为这给了我一个很好的概述。只是想澄清一下:实际上有任何与MVVM相关的代码或库DLL吗?@Noldorin:我想你是在问Prism的内部。。。有一些对MVVM的支持,但坦率地说,MVVM作为一种模式,几乎不需要库支持。Prism确实具有良好的通知对象和命令支持,这是MVVM真正需要的BCL中缺少的唯一东西。它还具有服务定位器支持,这有助于您使用DI/共享服务进行VMVM通信。它没有一些MVVM“框架”提供的“额外”内容,例如消息传递框架等。为了遵循Prism指南,必须安装库?