什么是WPF的棱镜?

时间:2011-06-08 01:34:55

标签: wpf mvvm prism

我最近遇到了一些名为Prism的东西。运行该项目的Microsoft将其描述为

  

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

即使在阅读了那些更详细的描述之后,我也几乎不知道它实际上是什么,我很害怕。

我希望有人可以给我一个明确的简洁解释,说明Prism究竟是什么以及我为什么要学习它。我已经成为WPF开发人员几年了,使用MVVM我的公平份额,并且最近遇到过使用Prism的人,但个人感觉有点不在这里。

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

  • Prism字面上只是(或主要)是一本小册子,如on the MSDN site所示?它是否包含任何库,如果是这样的话究竟是什么?

  • Prism是MVVM框架吗?我应该将它作为“官方Microsoft MVVM框架”而不是其他人或我自己的吗?

  • 它是否提供依赖注入?它是否与MEF有关?

  • 作为WPF / Silverlight开发人员,我应该了解Prism的其他内容。

2 个答案:

答案 0 :(得分:86)

Prism是用于在WPF和Silverlight中构建“复合应用程序”的Microsoft Patterns and Practices Team官方指南。

它旨在为构建大规模应用程序的最佳实践提供指导,这些应用程序在开发和可维护性方面具有灵活性。

这包括依赖注入(通过Unity或MEF),布局(包括使用MVVM),复合事件处理等指南。


  

Prism是否只是(或主要)是一本小册子,如MSDN网站上给出的那样?它是否包含任何库,如果是这样的话究竟是什么?

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

  

Prism是MVVM框架吗?我应该将它用作“官方Microsoft MVVM框架”而不是其他人或我自己的吗?

是和否。它包含使用MVVM的指南,但不仅仅是MVVM框架。它本身并不是一个“MVVM框架” - 尽管它确实包含了MVVM指南。

  

它是否提供依赖注入?它是否以这种方式与MEF有关?

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

  

作为WPF / Silverlight开发人员,我还应该了解Prism的作用。

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

答案 1 :(得分:18)

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

http://compositewpf.codeplex.com/

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

数目:

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

2)我建议根据您的具体要求。您应该发布另一个具有特定细节的问题,以便获得一些具体的答案。

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

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