Silverlight MVVM与Prism的比较

4

我是一名Silverlight新手。我正在开始一个新项目,希望使用现有的模式,如MVVM和PRISM

请问有人可以指导我哪种模式更适合哪种场景,以及在Silverlight中主要使用哪种模式吗?

8个回答

4

MVVM是一种模式,而PRISM则是一个可以用来实现MVVM的框架。如果想要开始使用Silverlight和MVVM,我建议您查看MVVM Light。


3

PRISM框架最适合用于大规模模块化项目,特别是当开发可能跨团队时。它提供非常松散的耦合,允许完全独立地开发可以单独下载或按需下载的模块。

MVVM是一个完全独立的问题,可以与大多数框架一起使用。它基本上是一种将视图与后备数据分离的模式,通过提供中间对象来绑定视图。这种分离允许对数据对象和业务逻辑进行单独测试,并且不会将大量代码绑定在视图上。

MVVM是“最常见”的模式,因为它包含在多个框架中,包括PRISM(甚至是没有框架的普通Silverlight)。PRISM需要学习和实现的工作量要大得多,但在大型项目中值得付出努力。


3

MVVM是一种模式,您可以使用Prism框架来实现它。同时请注意,如果您将任何代码放在codebehind中,则会破坏该模式。如果您想要单独执行特定的检查或操作,则可以使用Converter属性,通过添加从Converter类派生的类(例如:如果您想要在网格/面板上使用动画)。


3

Prism不仅仅是MVVM,它提供了许多开箱即用的特性/基础类,这些你在自己的自定义MVVM实现中需要自己实现;Prism 提供了标准化的方法来解决在SL或WPF应用程序中遇到的各种问题/场景(EventAggregator、导航框架、命令等)。

我同意其他答案的观点 -

Prism适用于需要由大量开发人员维护/演化多年的大型应用程序。

MVVM更适合轻量级的应用程序,需要一次快速开发。尽管如果您想要灵活性,可以开发自己的MVVM框架或使用可用的框架(如MVVM light等)。

还请参考我关于Prism的这个问题 - Custom MVVM implementation Vs. PRISM


1

对于学习Prism和Silverlight,我也很幼稚,但是在过去的几天里通过网上的几个教程,我可以说,Prism是一个框架,不适用于小型应用程序。 因此,创建小型应用程序最好使用MVVM模式,因为当您使用Prism时,这将是一种浪费,但如果您认为您的应用程序可以同时开发,那么使用Prism是一个好主意。 尽管Prism也实现了MVVM作为设计模式之一。


1

PRISM是一个框架,MVVM是一种设计模式。因此,您可以在Silverlight应用程序中同时使用PRISM和MVVM。


1

我在一个项目中使用了MVVM和Prism。同时我也是独自编码,我很喜欢这两个框架。它们帮助我保持对项目的全局视野。

Prism和MVVM完美地协同工作。Prism的Region-Manager让我将视图分成几个部分,而控制器/微内核(我使用的是Microsoft的Unity / 不是Prism框架的一部分)则帮助我将这些部分松散耦合。还有更多...

我大约有40,000行代码,我坚信使用Prism框架和MVVM节省了我比花费的时间更多的时间。但是开始需要一点时间。

MVVM阅读提示:

Josh Smith对我来说是一个很好的帮助。这里有一篇文章:http://msdn.microsoft.com/en-us/magazine/dd419663.aspx

如果您可以接受德语,我几个月前读了一篇dotnetpro的文章。那正是关于一些问题的,这些问题花费了我很多时间去解决:“Jörg Neumann / Flexibler Standard / dotnetpro 04/2012”

对于Prism,我不太记得了,但它并不是很难。我不认为使用Prism是一个困难的问题。MVVM在细节方面要复杂得多。但如果没有它,我无法想象如何编写WPF应用程序。

希望这有所帮助!


0

我可以看到我们已经有很多关于什么是MVVM和Prism的答案了。正如所说,MVVM是一种模式,它可以帮助您编写更清洁的“几乎没有代码后台”的UI,而Prism是其中一种框架,可以帮助您实现这一点。但是要使用MVVM模式,并不是必须使用任何框架,例如Prism,但如果您使用它们,它们将为您提供一些起步帮助。您甚至可以尝试编写自己的http://channel9.msdn.com/Events/MIX/MIX10/EX15


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接