wpf Silverlight MVVM与Prism

oxf4rvwz  于 2022-12-30  发布在  其他
关注(0)|答案(8)|浏览(255)

我是一个Silverlight新手。我开始了一个新项目,我想使用现有的模式,如MVVM和PRISM
谁能告诉我哪种模式更适合哪种场景,哪种模式主要用于Silverlight

yuvru6vn

yuvru6vn1#

MVVM是一个模式,PRISM是一个可以用来实现MVVM的框架。要开始使用Silverlight和MVVM,我建议看看MVVM Light。

xv8emn3q

xv8emn3q2#

PRISM框架最适用于大规模模块化项目,尤其是跨团队开发时。它提供非常松散的耦合,允许完全独立的模块开发,模块可以单独下载 * 或 * 按需下载。
MVVM是一个完全独立的问题,可以在大多数框架中使用。它基本上是一种通过提供视图绑定的中间对象来将视图与后台数据分离的模式。这种分离允许对数据对象和业务逻辑进行单独测试,而不会用大量的代码隐藏来束缚视图。
MVVM是“最常见的”,因为它出现在多种框架中,包括PRISM(甚至是没有框架的普通Silverlight)。PRISM需要多学习和实现几个数量级的工作,但在大型项目中非常值得努力。

wecizke3

wecizke33#

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

vlurs2pr

vlurs2pr4#

Prism不仅仅是MVVM,它提供了许多开箱即用的特性/基类,您必须在自定义MVVM实现中自己实现这些特性/基类; Prism提供了解决SL或WPF应用程序(EventAggregator、导航框架、命令等)中遇到的各种问题/场景的标准方法。
我同意其他的答案-
Prism是针对大规模应用的,许多开发人员将对其进行多年的维护/改进。
MVVM更适合需要一次性快速开发的轻量级应用程序。如果你想要灵活性,你可以开发自己的MVVM框架或使用现有的框架(如MVVM light等)。
另外,请看一下我针对Prism -Custom MVVM implementation Vs. PRISM提出的问题

gudnpqoy

gudnpqoy5#

PRISM是一个框架,MVVM是一个设计模式,所以你可以在你的Silverlight应用程序中同时使用PRISM和MVVM。

k5hmc34c

k5hmc34c6#

我在一个项目中使用了MVVM和Prism。而且我是一个人编码的,我喜欢这两个。帮助我掌握了整个项目的概况。
Prism和MVVM完美地结合在一起。Prism的区域管理器让我把视图分成几个部分,控制器/微内核(我使用了微软的Unity /不是真正的Prism框架的一部分)帮助我保持了部分的松散耦合。
我有大约4万行代码,我坚信使用Prism框架和MVVM为我节省了更多的时间,但在开始时需要一点时间。
有关MVVM的阅读提示:
乔希·史密斯给了我很大的帮助。下面是一篇文章:http://msdn.microsoft.com/en-us/magazine/dd419663.aspx
如果德语对你合适的话,我几个月前阅读了一篇dotnetpro的文章,那篇文章正是关于一些问题的,我花了很长时间才弄明白:“约尔格·诺依曼/ Flexibler标准/ dotnetpro 2012年4月”
对于Prism,我不太记得了,但它并不是那么难。我不会说使用Prism是一件困难的事情。MVVM在细节上要棘手得多。但我无法想象没有它来编程WPF应用程序。
希望能有所帮助!

chhqkbe1

chhqkbe17#

我也很天真,当谈到学习棱镜以及Silverlight,但通过过去几天在网上的几个教程,我可以说,棱镜是一个框架,这是不意味着小应用程序。因此,创建一个小应用程序,这将是更好地使用MVVM模式,因为当你将使用棱镜,那么这将是浪费精力,但是如果你认为你的应用程序可以同时开发,那么使用Prism将是一个好主意,尽管Prism也实现MVVM作为设计模式之一。

lyfkaqu1

lyfkaqu18#

我可以看到,我们已经有这么多关于什么是MVVM和棱镜的答案。正如所说,MVVM是一种模式,可以帮助您编写更干净的“几乎没有代码背后”的UI和棱镜是框架之一,可以帮助您实现这一点。但要使用MVVM模式,它不是一个强制性的事情,你必须使用任何框架,如棱镜,但如果你使用,他们会给予你一些跳跃式的开始。你甚至可以试着写你自己的http://channel9.msdn.com/Events/MIX/MIX10/EX15

相关问题