什么是 WPF 的棱镜?

我最近经常遇到一个叫做 棱镜的东西。负责这个项目的微软公司把它描述为

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

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

我希望在这里有人能给我一个明确简洁的解释棱镜实际上是什么,为什么我应该学习它。我已经做了几年的 WPF 开发人员,使用过 MVVM,最近也遇到过一些使用 Prism 的人,但是我个人觉得有点脱离了这个圈子。

我特别想知道以下几点:

  • 棱镜真的只是(或主要是)一本小册子,如给定的 在 MSDN 网站上?它是否包含任何库,如果包含,具体是为了什么?

  • 棱镜是 MVVM 框架吗?我应该把它用作“微软官方 MVVM 框架”而不是其他框架还是我自己的?

  • 它是否提供依赖注入? 它是否与 MEF 有这方面的关系?

  • 作为 WPF/Silverlight 开发人员,我还应该知道 Prism 的其他功能。

77683 次浏览

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

Http://compositewpf.codeplex.com/

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

答案:

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

2)我建议这样做,这取决于你的具体要求。你应该张贴另一个具体细节的问题,这样你就可以得到一些具体的答案。

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

4) Imo,Prism 提供了很多功能,但是在学习曲线上占了很大的比重。对于只有您一个开发人员的小型项目,您可能不需要它提供的抽象和工具。

Prism 是在 WPF 和 Silverlight 中构建“复合应用程序”的 微软模式与实践团队官方指南。

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

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


棱镜真的只是(或主要是)一本小册子,就像 MSDN 网站上给出的那样吗?它是否包含任何库,如果包含,具体是为了什么?

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

棱镜是 MVVM 框架吗?我应该把它用作“微软官方 MVVM 框架”而不是其他框架还是我自己的?

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

它是否提供依赖注入? 它是否与 MEF 有这方面的关系?

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

作为 WPF/Silverlight 开发人员,我还应该知道 Prism 的其他功能。

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

一个更现代的答案是什么棱镜,是回答的 Github 主页

Prism 是用于构建松散耦合、可维护和 可测试的 XAML 应用程序在 WPF,Xamarin 窗体,Uno 平台和 WinUI.

为了详细说明,Prism 是一个库集合,用于帮助实现遵循 Microsoft 推荐的最佳实践设计和体系结构模式的企业应用程序。

Prism 由以下 Nuget 软件包组成:

  • 棱镜,核心
  • 棱镜 Wpf
  • 棱镜,表格
  • 棱镜,一

Prism 支持不同的 DI (依赖反转)/IoC (控制反转)技术和库。它附带了依赖注入的 Unity 库,以及其他 IoC 助手函数和类。

图书馆涉及的一些领域:

  • 解耦事件消息传递和处理
  • 命令
  • 视图模型导航
  • INotifyPropertyChanged 实现
  • 依赖注入

Prism 是.NET 基金会的一部分。

您可能对 Windows 社区工具包感兴趣,它遵循 Prism 采用的许多相同的原则和模式。