我是WPF的初学者。在开发WPF最佳中型和大型项目之前,我需要使用WPF的开源/免费MVVM框架,所以请告诉我哪个MVVM框架将是WPF应用程序的正确选择,借助它我可以开发非常有吸引力的UI对于企业应用程序,它带有很好的教程和大量的示例代码,以便熟悉框架的流程。请详细讨论。谢谢。
答案 0 :(得分:94)
有许多流行的开源MVVM框架。
最受欢迎的三个可能是MVVM Light,Caliburn或Prism(从v4开始,支持并提供MVVM的示例)。这三个都有优点和缺点,一切都很好。
Prism确实具有成为“Microsoft”(赞助)产品的优势,因为它是由Microsoft Patterns and Practices组提出的。这往往有助于许多大型企业的采用。话虽这么说,它也比其他流行的选项更大,更复杂,特别是因为它的目标不仅仅是成为一个“MVVM框架”,而是一个用于复合应用程序开发的通用库。
我是WPF的初学者。
我还以为我会提到 - 在你选择一个框架之前,我会花一些时间来学习和理解MVVM。我写了一个系列来帮助transition to WPF with MVVM from Windows Forms这可能是有价值的。
通常情况下,在您了解框架真正实现之前,很难选择框架。大多数MVVM都可以很容易地完成,没有任何框架。 “框架”添加了使MVVM开发的某些难点更容易处理的实用程序 - 例如,MVVM Light有一个很好的Messenger类,可以帮助ViewModel之间的通信,这有时可能很棘手。 Caliburn有一些很好的工具可以帮助设计性等等。但是,在了解基础知识之前,选择一个工具包实际上可能会让你的生活变得更复杂,而不是更简单。
答案 1 :(得分:65)
这个问题很难客观地回答,因为最适合你的问题在很大程度上取决于你的要求和偏好。我自己使用了两个框架,所以我可以谈论这些框架。
最受欢迎的MVVM框架之一是MVVM Light Toolkit,它是一个多功能框架,允许您以您想要的方式构建应用程序。它提供了帮助解决构建MVVM应用程序的一些主要难点,但它仍然需要您自己编写大量的样板代码。这可能对新的WPF开发人员有好处,因为它不会隐藏这么多的WPF基础结构。
我个人最喜欢的是Caliburn.Micro,这是一个针对WPF,Silverlight和Windows Phone 7的固定MVVM框架。它使用了一种基于约定的配置方法,可以避免编写大量无聊,乏味的内容。管道代码。这也意味着它要求你同意框架的意见 - 如果你不遵守它所规定的约定,那么你将要努力使一切运转起来。
Caliburn.Micro也具有正常工作的质量,如果你真的不明白幕后发生了什么,事情看起来有点神奇。只要事情正常,这很好。但是当他们没有,或者你需要做一些框架不是为了做的事情时,你需要对WPF有一个非常扎实的了解才能找到你的方位。
您需要评估不同框架和工具包的功能并自行决定。
答案 2 :(得分:26)
也许为了获得MVVM的味道,您根本不需要使用任何库?实现基本的东西很容易(DelegateCommand和类来提高属性通知 - 是你需要的一切),但这将帮助你理解MVVM而不引入任何库。在这个实现过程中你可能会遇到一些障碍,你必须自己解决它,而不需要任何第三方库。我相信这可能会帮助你阐明更清晰的MVVM模式(当然,如果你有一个很好的指导)但没有介绍库提供的细节。
也许我是一个轮子发明者,但我仍然根本不使用任何MVVM库。我只是没有看到他们可以提供的任何伟大的东西,以便将另一个库引入项目。通常不需要花很多时间来实现MVVM所需的基本内容,但最后您会收到高度灵活的代码(因为所有代码都是您的代码)。