【发布时间】:2011-10-06 14:23:50
【问题描述】:
我是 Silverlight 新手。我正在开始一个新项目,我想使用现有的模式,例如 MVVM 和 PRISM。
谁能指导我了解哪种模式更适合哪种类型的场景。请问Silverlight主要使用哪一种
【问题讨论】:
标签: mvvm silverlight-4.0 frameworks prism
我是 Silverlight 新手。我正在开始一个新项目,我想使用现有的模式,例如 MVVM 和 PRISM。
谁能指导我了解哪种模式更适合哪种类型的场景。请问Silverlight主要使用哪一种
【问题讨论】:
标签: mvvm silverlight-4.0 frameworks prism
MVVM 是一种模式,PRISM 是一个可以用来实现 MVVM 的框架。要开始使用 Silverlight 和 MVVM,我建议您查看 MVVM Light。
【讨论】:
PRISM 框架最适合用于大型模块化项目,尤其是当开发可能跨越团队时。它提供了非常松散的耦合,允许完全独立开发可以单独或按需下载的模块。
MVVM 是一个完全独立的问题,可以与大多数框架一起使用。它基本上是一种通过提供视图绑定的中间对象来将视图与支持数据分离的模式。这种分离允许对数据对象和业务逻辑进行单独测试,而不是用大量代码隐藏来捆绑您的视图。
MVVM 是“最常见的”,因为它出现在包括 PRISM 在内的多个框架中(甚至在没有框架的普通旧 Silverlight 中)。 PRISM 的学习和实施工作量要多几个数量级,但对于大型项目来说非常值得。
【讨论】:
PRISM 是一个框架,而 MVVM 是一种设计模式。因此,您可以在 Silverlight 应用程序中同时使用 PRISM 和 MVVM。
【讨论】:
Prism 不仅仅是 MVVM,它提供了很多开箱即用的功能/基类,您必须在自定义 MVVM 实现中自己实现这些功能; Prism 提供了解决 SL 或 WPF 应用程序(EventAggregator、导航框架、命令等)中遇到的各种问题/场景的标准方法。
我同意其他答案-
Prism 用于将被维护/发展的大规模应用程序 许多开发人员多年来一直使用它。
MVVM 更适合需要一次性快速开发的轻量级应用程序。虽然如果您想要灵活性,您可以开发自己的 MVVM 框架或使用可用的框架(如 MVVM light 等)。
还可以看看我问过的关于 Prism 的这个问题 - Custom MVVM implementation Vs. PRISM
【讨论】:
我在一个项目中使用了 MVVM 和 Prism。我也是一个人编码,我都喜欢。帮助我掌握了项目的概述。
Prism 和 MVVM 完美结合。 Prism 的区域经理让我将视图分成几部分,而控制器/微内核(我使用 Microsoft 的 Unity / 不是 Prism-Framework 的真正部分)帮助我保持这些部分松散耦合。还有更多...
我有大约 40k 行代码,我坚信使用 Prism 框架和 MVVM 为我节省的时间比我花费的时间要多。但是一开始需要一点时间。
关于 MVVM 的阅读技巧:
乔什·史密斯对我来说是一个很大的帮助。这是一篇文章:http://msdn.microsoft.com/en-us/magazine/dd419663.aspx
如果德语适合你的话,几个月前我正在阅读一篇 dotnetpro 文章。那正是一些问题,我花了一些时间才弄清楚:“Jörg Neumann / Flexibler Standard / dotnetpro 04/2012”
对于 Prism,我真的不记得了,但没那么难。我不会说使用 Prism 很难。 MVVM 在细节上要复杂得多。但是我无法想象没有它来编写 WPF 应用程序。
希望对你有帮助!
【讨论】:
我可以看到,关于什么是 MVVM 和 Prism,我们已经有了很多答案。如前所述,MVVM 是一种模式,可以帮助您编写更简洁的“几乎没有代码背后”的 UI,而 Prism 是帮助您实现这一目标的框架之一。但是要使用 MVVM 模式,你必须使用任何框架,例如 Prism,这并不是强制性的,但如果你使用它们,它们会给你一些快速的开始。你甚至可以尝试编写自己的 http://channel9.msdn.com/Events/MIX/MIX10/EX15
【讨论】:
在学习 Prism 和 Silverlight 方面我也很天真,但是过去几天在网上浏览了几个教程,我可以说,Prism 是一个框架,不适合小型应用程序。 因此,对于创建一个小型应用程序,最好使用 MVVM 模式,因为当您将使用 Prism 时,那将是浪费精力,但如果您认为您的应用程序可以同时开发,那么使用 Prism 将是个好主意。 虽然 Prism 也将 MVVM 实现为设计模式之一。
【讨论】:
MVVM 是一种模式,您可以使用 Prism 框架来实现它。还要记住,如果您将任何代码放入代码隐藏中,那么您就是在破坏模式。如果您想要单独进行任何特定检查或操作,则通过添加从 Converter 类派生的类来使用 Converter 属性(例如:如果您想在网格/面板上使用动画等)
【讨论】: