各种MVVM框架在Silverlight中的优缺点是什么?

3
各种MVVM框架在Silverlight中的优缺点是什么?
我知道之前已经有类似的问题,但是这个领域变化很快,给出的答案很快就过时了。
我特别寻找以下框架的简要评估 -
- Prism - Caliburn - Cinch - Goldlight - MFedMVVM - MVVM Light - nRoute - Structured MVVM
以及其他任何人都知道的框架。

1
没有棱镜...我想这应该是列表的首位...有人曾经提到过,Prism就像自助餐,根据你的具体情况选择所需。这是一个很好的比喻。试图解决不需要解决的问题只会带来不必要的复杂性。 - Aaron McIver
嗨,亚伦 - 我对Prism有点不确定 - 我认为它更多关注的是复合应用程序而不是MVVM。但我对它了解甚少... - Craig Schwarze
Prism的最新版本(10月10日)增加了MVVM指南,包括一些快速入门。到目前为止看起来很有趣。 - Craig Schwarze
1
是的,他们正在从MVVM的角度增加FW内部的指导,但是在FW本身之外仍存在重要的指导水平。如果您能够掌握使用Prism的MVVM理解,那么使用它将变得相当容易。我一直在为一个WPF项目使用它,并且很喜欢它,这也带我到了利用WPF资源的观点,即使您在SL中,因为它们经常重叠。 - Aaron McIver
2个回答

2
任何框架的缺点都是一样的:它是别人的代码,是别人模式的实现。你将控制解决方案的权利让给了别人的代码。如果你对此感到满意,请尽管使用。
但MVVM是一个非常简单易懂的模式。实际上,它的实现非常琐碎。WPF和Silverlight已经内置了大部分核心组件,使绑定工作以及MVVM工作变得可能。
我发现只需要一个事件聚合器来跨类进行消息传递,一个基本的视图模型类来处理INotifyPropertyChanged的重复编码,然后是一个IoC容器来连接我的依赖项。就这些而已。
在使用Component Application UI Block之后,我倾向于避开任何其他人的“框架”。特别是如果我可以自行编写核心部分。在我的目前的工作中,我们在项目中采用MVVM,我的基础设施只是几个类和接口,正如我上面所述。

完全同意 - MVVM只是一组原则。在这种情况下,框架越大,我就越怀疑它。我甚至没有使用事件聚合器实现MVVM,但似乎效果非常好。比某些类更重要的是,所有开发人员都理解MVVM协调数据和交互的方式。 - Sander

1

我不能代表其他列出的框架,但我可以说我在MVVM Light Toolkit中取得了巨大的成功。我同情你可以在需要时“掌控自己”框架的观点,但MVVM Light很小而且不显眼;它不会接管你的应用程序架构,而只提供几个MVVM的基本必需品:

  1. RelayCommand - 可用于几乎任何事情的命令类

  2. Messaging - 能够进行消息和消息聚合

  3. ViewModelBase - 实现INotifyPropertyChanged等...

  4. ViewModelLocator - 一种简单明了的实用程序,用于将ViewModels注入Views。

我认为,由类似组件应用程序UI块(及其Silverlight表亲Prism)引起的对框架的反应,应该通过一个像这样轻量级且简单的框架来缓解。


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