我最近遇到了一些名为Prism的东西。运行该项目的Microsoft将其描述为
WPF和Silverlight中的复合应用程序指南。
即使在阅读了那些更详细的描述之后,我也几乎不知道它实际上是什么,我很害怕。
我希望有人可以给我一个明确的简洁解释,说明Prism究竟是什么以及我为什么要学习它。我已经成为WPF开发人员几年了,使用MVVM我的公平份额,并且最近遇到过使用Prism的人,但个人感觉有点不在这里。
特别是,我想知道以下几点:
Prism字面上只是(或主要)是一本小册子,如on the MSDN site所示?它是否包含任何库,如果是这样的话究竟是什么?
Prism是MVVM框架吗?我应该将它作为“官方Microsoft MVVM框架”而不是其他人或我自己的吗?
它是否提供依赖注入?它是否与MEF有关?
作为WPF / Silverlight开发人员,我应该了解Prism的其他内容。
答案 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提供了很多功能,但学习曲线很重。对于以您为唯一开发人员的小型项目,您可能不需要它提供的抽象和工具。