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

可能的方案包括:

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

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


当前回答

这实际上取决于您想要实现的目标,以及您想要的基础设施的数量,再加上查找示例的难易程度。在这里我要声明一个兴趣点,因为我已经积极参与了至少一个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的框架应该被忽略。

其他回答

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

还可以看看:

卡利本和玛瑙!

我试着描述一下Pete的回答中所缺少的框架:

MVVM Toolkit (Microsoft)是一个非常轻量级的库,其中包含Visual Studio项目模板,应该支持使用此模式的初学者。如果微软对他们的Toolkit得到了良好的反馈,那么他们可能会将其作为一个新的Visual Studio(可能是2010年)项目模板来实现。

Prism (Microsoft p&p)是一个框架,它提供了对MVVM模式的更多支持。这个项目的主要目标是帮助你构建模块化的WPF和/或Silverlight应用程序。如果你只是需要实现MVVM模式,或者你是。net / wpf的初学者,我不会推荐这个项目。 参见:链接。

WPF应用程序框架(WAF)是一个轻量级框架,可以帮助您使用MVVM创建WPF应用程序。它只针对WPF,所以不支持Silverlight。它与大多数其他MVVM框架不同,它引入了控制器。它们负责应用程序工作流,并在各种viewmodel之间进行协调。

我打赌会在Caliburn和MVVMlight上,似乎没有多少mvvm框架支持silverlight。我可以预见,将会有更多的MVVM框架可供选择,而不是IoC框架,因为建立MVVM框架的特性边界更加困难。我想找出哪一个更适合你的项目的最好方法是列出/比较它们的功能。

也可以看看Mix10。我从演讲中学到了很多:构建你的mvvm框架。

咩。Mvvm实际上并不需要一个完整的框架来支持IMO。如果你理解了这个概念,从一个实现INotify的干净的VM基类开始,然后从那里开始就很简单了。