【问题标题】:What are the strengths and weaknesses of various MVVM frameworks for Silverlight?Silverlight 的各种 MVVM 框架的优缺点是什么?
【发布时间】:2010-10-20 04:38:33
【问题描述】:

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

我知道以前有人问过类似的问题,但该领域发展迅速,给出的答案很快就过时了。

我正在寻找对以下框架的简要评估 -

  • 棱镜
  • 卡利本
  • 收紧
  • 金光
  • MFedMVVM
  • MVVM 灯
  • nRoute
  • 结构化 MVVM

...加上任何其他人都知道的。

【问题讨论】:

  • No Prism...以为那会排在首位...有人曾提到 Prism 就像自助餐,请根据您的特定情况选择您需要的东西。这是一个很好的类比。试图解决不需要解决的问题只会造成不必要的复杂化。
  • 嗨 Aaron - 我对 Prism 有点不确定 - 我认为它更多的是关于复合应用程序而不是 MVVM。但我对此知之甚少……
  • 最新推出的 Prism(10 月 10 日)提供了额外的 MVVM 指南,包括一些快速入门。到目前为止看起来很有趣。
  • 是的,他们在 FW 中增加了 MVVM 立场的指导,但是在 FW 本身外部存在大量指导。如果您能够确定对 MVVM 的理解,那么使用 Prism 将变得相当容易。我一直在将它用于 WPF 项目并且很喜欢它,这使我想到了利用 WPF 资源的点,即使您在 SL 中经常重叠。

标签: silverlight mvvm


【解决方案1】:

任何框架的缺点都是一样的:它是别人的代码,是别人对模式的实现。您正在将解决方案的控制权交给其他人的代码。如果你对此感到满意,无论如何,去吧。

但是 MVVM 是一个非常容易掌握的模式。实现它实际上是微不足道的。 WPF 和 Silverlight 已包含您需要进行绑定工作的大部分核心组件,从而使 MVVM 工作。

我发现 MVVM 真正需要做的只是一个用于跨类消息传递的事件聚合器、一个用于处理重复编码 INotifyPropertyChanged 的​​基本视图模型类,然后是一个用于连接我的依赖项的 IoC 容器。就是这样。

在我使用组件应用程序 UI 块的经验之后,我倾向于回避任何其他人的“框架”。特别是如果我可以自己在短时间内编写核心位。

在我目前的工作中,我们对我们的项目进行 MVVM,而我的基础设施实际上就是我上面所说的几个类和接口。

【讨论】:

  • 完全同意——MVVM 只是一组原则。在这种情况下,“框架”越大,我就越怀疑它。我什至在没有事件聚合器的情况下实现了 MVVM,它似乎工作得很好。比某些类更重要的是,所有开发人员都了解 MVVM 编排数据和交互的方式。
【解决方案2】:

我不能代表列出的其他框架,但我可以说我在 MVVM Light Toolkit 上取得了巨大的成功。我赞同这样一种观点,即您可以在需要时“推出自己的”框架,但 MVVM Light 很小且不显眼;它不会接管您的应用程序架构,而只是提供 MVVM 的一些基本必需品:

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

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

  3. ViewModelBase - 实现 INotifyPropertyChanged 等...

  4. ViewModelLocator - 用于将 ViewModel 注入视图的简单实用程序。

我认为像组件应用程序 UI 块(以及它的 Silverlight 表亲 Prism)这样的框架引起的反应应该通过像这个轻量级和直接的框架来减轻。

【讨论】:

    猜你喜欢
    • 2010-09-06
    • 2010-09-10
    • 1970-01-01
    • 2010-10-29
    • 2011-08-05
    • 2017-05-10
    • 2011-01-09
    • 2012-05-01
    相关资源
    最近更新 更多