Wpf 在同一个应用程序中使用Prism和GalaSoft MVVM toolkit是否冗余?

Wpf 在同一个应用程序中使用Prism和GalaSoft MVVM toolkit是否冗余?,wpf,mvvm,prism,toolkit,Wpf,Mvvm,Prism,Toolkit,我刚刚接到任务,要开始支持使用Prism和GalaSoft工具包的WPF应用程序。在回顾了这两个框架的技术之后,我觉得应用程序的设计者是多余的,因为Prism提供了一个促进MVVM的框架,以及一个允许模块集成的容器。在我看来,每个模块都可以实现自己的模型视图模型。Prism本可以提供这方面所需的一切,以及模块之间的通信和导航。我还注意到,应用程序使用的GalaSoft版本在工具包的官方下载页面中并不存在。是否该版本是从官方下载版本修改而来 这是我第一次处理WPF技术。i、 我是一个初学者,如果您

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


这是我第一次处理WPF技术。i、 我是一个初学者,如果您对这个问题有任何意见,我将不胜感激,并再次推荐最佳的实现方法。谢谢

两者的目标不同。Prism旨在促进复合应用程序,而MVVMLight旨在提供基本的MVVM支持。Prism必然包含它自己的MVVM支持,所以我同意使用两者是多余的。我还想补充一点,在非复合应用程序中使用Prism可能有点过头了。

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

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

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

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

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