我正在使用MVVM模型开发一个应用程序,但我已经到了需要选择使用哪个框架的地步。

可能的方案包括:

MVVM工具包 MVVM基金会 WPF应用框架(WAF) 光MVVM 这份原稿 有把握的事情 棱镜 ReactiveUI

根据你的经验,哪个更好?


当前回答

总而言之,我已经完成了我的应用程序的90%,我所使用的MVVM Toolkit是工厂函数,它为我构建了一个命令,给定一个委托函数,并在Execute中启动。 我想我可以在几个小时内切换到任何其他框架或不使用框架。

其他回答

这实际上取决于您想要实现的目标,以及您想要的基础设施的数量,再加上查找示例的难易程度。在这里我要声明一个兴趣点,因为我已经积极参与了至少一个MVVM框架,并且我通过WPF门徒小组对其他框架有所投入,所以我有一点偏见。说到这里,我想说:

微软的MVVM工具包——这仍然处于alpha阶段。当它最初发布时,它受到了门徒们的猛烈抨击,因为它没有做什么。说到这里,微软正在考虑完善这个框架,所以它是一个值得关注的框架——只是还没有准备好。

MVVM Foundation - ah Josh Smith's version of the framework. Josh is one of the daddies of MVVM, and has been a huge advocate and teacher of the pattern. As a result, a lot of what you'll find in other frameworks has Josh's fingerprints all over it. This framework is intended to provide the basics of MVVM, and not to address some of the more esoteric issues. Originally this was intended only for WPF, but people such as Laurent Bugnion and myself have added functionality/projects that mean this will be a Silverlight compatible framework as well.

WAF -没有经验,所以我恐怕不能评论它。

MVVM轻- Laurent Bugnion对它的看法,刚刚更新到版本2。这是一个非常好的框架,但它并不打算涵盖MVVM应用程序的每一个方面。考虑到Laurent的背景,它有非常强大的Silverlight和Blendability支持。

Laurent刚刚告诉我。net 3.5和。net 4.0版本的特性是兼容的。瓦乌走了,劳伦特。

Cinch - Sacha Barber's excellent WPF only MVVM framework. This covers more ground than the frameworks I've talked about above. It's an excellent framework, and takes advantage of concepts covered in Bill Kempf's excellent Onyx project. Onyx is intended to complement MVVM frameworks, and adds in functionality that's typically been hard for people to do in MVVM/WPF. Again, originally intended to be WPF only, Onyx has progressed to include SL compatibility - work I am particularly proud to have been involved in.

棱镜-再说一次,我从来没用过它,但我听说过很多关于它的好东西。

Karl Shifflett, Cider团队的项目经理,最近发布了一个功能齐全的WPF MVVM框架。同样,这是一个优秀的框架,有很多值得推荐的地方。

最重要的是,下载不同的框架,看看它们,找出最符合您的思维方式和需求的框架。如果你想从相同的代码库中支持Silverlight,那么只支持WPF的框架应该被忽略。

混合你自己的!

我使用PRISM的EventAggregator, MVVM foundation的ViewModelBase等等。我还调整了RelayCommand(在某些地方调用的DelegateCommand)来接受其他数据,等等。

我不会只推荐一个框架本身。

还可以看看:

卡利本和玛瑙!

还有Ideablade开发的鸡尾酒和DevForce框架

总而言之,我已经完成了我的应用程序的90%,我所使用的MVVM Toolkit是工厂函数,它为我构建了一个命令,给定一个委托函数,并在Execute中启动。 我想我可以在几个小时内切换到任何其他框架或不使用框架。