.net - 我为什么要使用 Prism ?

标签 .net wpf architecture prism

我有兴趣制作一个像样的 WPF 应用程序,该应用程序将非常庞大。有人建议使用我们目前正在研究的 PRISM。我们可能会使用 MVVM 模式来实现此应用程序。我看了一些 PRISM 截屏视频,似乎 PRISM 主要用于注入(inject)具有不同 View 的区域。这是使用 PRISM 的主要目的吗?

我始终可以通过 ContentPresenter 使用 WPF MasterPages,那么为什么我应该使用 PRISM 来实现区域目的呢?

最佳答案

Prism 提供的不仅仅是区域系统。不详尽:

  • View 模型命令系统
  • 事件聚合器,用于解耦事件处理(内置很多选项,例如 GUI 线程调用、弱引用等)
  • 加载模块的标准方法(如果您需要这种灵 active )

区域系统不仅仅是一个“内容呈现器包装器”。它可用于“推”(将 View 放入某个区域)或“拉”(让模块声明它们填充的区域)。它还支持的不仅仅是简单的内容呈现器区域(例如基于 ItemsControl 的区域),并且可以通过区域适配器进行扩展。

最后,但也许并非最不重要的一点是,当您采用 Prism 的形式主义时,您就押注于一种外人可能已经知道的通用“语言”(几乎是框架,即使 Prism 团队并不这样调用它),而不是重新发明你自己的东西,这需要有人学习一套全新的东西。对于一个长期存在的项目来说,这可能是一件好事(前提是 Prism 显然不会死得太早)。

关于.net - 我为什么要使用 Prism ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1119731/

相关文章:

c# - 需要知道如何创建返回整数值的 DelegateCommand<Type>

wpf - 为 WPF 编写特殊的屏蔽文本框

php - 我如何处理购物篮,其中有很多产品可能具有不同的成本计算

design-patterns - 固定一件事,打破另一件事。图案的名称是什么?

design-patterns - MVP(模型 View 展示器)或 MVC( Model View Controller )

c# - 我应该为我的 Linq2Sql 数据使用 Struct 而不是轻量级数据类吗?

c# - 如何在 ASP.NET Core 项目中包含对程序集的引用

c# - WPF tabControl 重新排序选项卡

.net - 如何在样式中使用附加属性?

c# - 实例化一个对象,但使用大括号而不是默认构造函数?