3

我刚刚接到任务,开始支持使用 Prism 和 GalaSoft 工具包的 WPF 应用程序。在审查了这两个框架的技术之后,在我看来,应用程序的设计者是多余的,因为 Prism 提供了一个促进 MVVM 的框架,以及一个允许集成模块的容器。我看到的方式是每个模块都可以实现自己的Model-View-VIewModel。Prism 可以提供所需的一切,以及模块之间的通信和导航。我还注意到该应用程序正在使用的 GalaSoft 版本在工具包的官方下载页面中不存在。莫非这个版本是官方下载版修改的?

这是我第一次处理 WPF 技术。即初学者,我将不胜感激有关此问题的任何评论,以及有关处理此实现的最佳方法的建议。谢谢!

4

2 回答 2

1

它们在某种程度上是多余的:Prism几乎提供了MVVMLight中的所有内容。

几乎,因为我确信 Prism 中没有一些特定于 MVVMLight 的功能。Prism 要大得多,它提供了一个完整的框架和方法来构建您的 MVVM 应用程序,而 MVVMLight 只是为您提供工具(不必塑造您的架构)来更​​轻松地处理 MVVM 问题。

我认为一个应用程序不需要它们两者,但也许是谁使用了 MVVMLight 的特定功能。如果代码构建时考虑到一致性,这显然不是一件坏事,例如,所有 ViewModel 都使用 Prism 基础,但对于消息传递(中介模式),它使用 MVVMLight,因为我知道很多人喜欢 MVVMLight Messenger 而不是 Prism 的 EventAggregator。但可能背后有更好的理由,这只是一个例子,我没有看到你的代码。

无论如何,我认为只使用其中一个会更清洁。如果此应用程序需要 Prism 的强大功能,则仅使用它,但如果这是一个轻量级应用程序,那么我建议使用 MVVMLight(因此是此库的名称 :))。

对于 MVVMLight 版本:也许它只是你拥有的旧版本,但你应该询问这个应用程序的作者。

于 2012-10-25T15:51:50.810 回答
0

两人有不同的目标。Prism 旨在促进复合应用程序,而 MVVMLight 旨在提供准系统 MVVM 支持。Prism 必然包括它自己的 MVVM 支持,所以我同意同时使用两者是多余的。我还要补充一点,在非复合应用程序中使用 Prism 可能是矫枉过正。

于 2012-10-25T15:51:15.737 回答