为什么要使用棱镜?

aza*_*arp 15 .net architecture wpf prism

我有兴趣制作一个体面的WPF应用程序,这将是非常巨大的.有人建议使用我们目前正在研究的PRISM.我们可能正在使用MVVM模式来实现此应用程序.我看到一些PRISM截屏视频,看起来PRISM主要用于注入具有不同视图的区域.这是使用PRISM的主要目的吗?

我总是可以使用ContentPresenter使用WPF MasterPages,那么我为什么要将PRISM用于区域目的呢?

Den*_*ler 12

棱镜比区域系统提供更多.并非详尽无遗:

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

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

最后,但也许并非最不重要的是,当你采用Prism的形式主义时,你打赌一个共同的"语言"(几乎是框架,即使棱镜团队不会这样称呼它)外人可能已经知道,而不是重新发明你自己需要有人学习一整套新东西.对于一个长期存在的项目来说这是一件好事(如果Prism不会显得过于年轻).