什么是WPF的棱镜?

我最近碰到过一个叫棱镜的东西。 运行该项目的微软将其描述为

WPF和Silverlight中复合应用程序指南。

即使在阅读了更详细的描述之后,我恐怕也不知道实际上是什么。

我希望有人能够给我一个关于棱镜究竟是什么的清晰简洁的解释,为什么我应该学习它。 我几年来一直是WPF开发人员,用MVVM公平的分享,最近遇到了使用Prism的人,但个人觉得这里有点不合适。

特别是,我想知道以下几点:

  • 棱镜是否仅仅(或主要)是MSDN网站上给出的小册子? 它包括任何库,如果是的话,究竟是什么?

  • 棱镜是MVVM框架吗? 我应该使用它作为“官方微软MVVM框架”比其他人还是我自己的?

  • 它提供dependency injection吗? 这是否与MEF有关?

  • 作为WPF / Silverlight开发人员,我还应该了解有关Prism所做的事情。

Prism是微软模式和实践小组在WPF和Silverlight中构build“复合应用程序”的官方指导。

其目的是提供指导,build立在开发和可维护性方面灵活的大规模应用的最佳实践。

这包括dependency injection(通过Unity或MEF),布局(包括使用MVVM),复合事件处理等方面的指导。


棱镜是否仅仅(或主要)是MSDN网站上给出的小册子? 它包括任何库,如果是的话,究竟是什么?

这是一本书,还包括支持库(在GitHub网站上)。

棱镜是MVVM框架吗? 我应该使用它作为“官方微软MVVM框架”比其他人还是我自己的?

是和不是。 它包括使用MVVM的指导,但不仅仅是一个MVVM框架。 它本身并不是一个“MVVM框架” – 尽pipe它包含MVVM指导。

它提供dependency injection吗? 这是否与MEF有关?

是。 它最初包括Unity,但最新版本包括使用MEF for DI。

作为WPF / Silverlight开发人员,我还应该了解有关Prism所做的事情。

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

这是一个构buildWPF和Silverlight应用程序的框架。

http://compositewpf.codeplex.com/

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

回答:

1)Prism是一个MVVM框架,可用作应用程序的基础

2)我build议这取决于你的具体要求。 你应该发表另一个具体的细节问题,以便你可以得到一些具体的答案。

3)棱镜使用dependency injection(Unity),但不“提供”它

4)Imo,Prism提供了很多function,但在学习曲线上很重要。 对于以您为唯一开发人员的小型项目,您可能不需要它提供的抽象和工具。