【问题标题】:Why should I use MVVM when it breaks built in riaservices functionality当它破坏了 riaservices 的内置功能时,为什么我应该使用 MVVM
【发布时间】:2011-03-01 20:21:50
【问题描述】:

我很难理解为什么 MVVM 真的是在 riaserices 中实现的一个很好的模式,对我来说,除了麻烦之外别无他法,它只是增加了我必须编码的另一层。我知道我可以更改 UI,但实际上我不需要。相反,我将无法通过 riaservices、datagrid、dataform 使用开箱即用的功能,所有控件都需要一些实现。为什么不能简单点?

真的没有办法让 MVVM 自动设置“IsBusy”和所有数据表单编辑功能。这对我来说就像是在重新发明轮子,而且我似乎能够使用 riaservices 更快地编写代码

【问题讨论】:

    标签: silverlight mvvm wcf-ria-services


    【解决方案1】:

    有些人会问“当它破坏了 MVVM 时,我为什么要使用 RIA 服务?” :-) 作为 RIA 服务专家,我不足以回答您关于 IsBusy 和保留使用 MVVM 的轻松编辑功能的精确问题,但请记住,MVVM 和 RIA 服务现在都像过山车一样高涨,并且几乎任何博客或开发网站都会试图说服你为什么它们是自切片面包以来最好的东西。如果您看不到对技术或模式的需求,请不要使用它。

    也就是说:在我看来,RIA 服务的真正意义在于让您在页面上添加一个 DataGrid,并让您使用它查看数据库。这就是为什么几乎所有的示例都是这样做的,而且它们中的大多数都不关心 MVVM,因为它妨碍了灵活的向导和拖放式开发,而这正是 RIA 真正闪耀的地方。如果您正在这样做,那么没有 MVVM 的 RIA 可能比反之更有意义。

    【讨论】:

    • @Jakob 这真的是做对你正在构建的应用程序有意义的事情,以及你希望它在几年后的位置。如果您正在设计一个演示良好的 CRUD 应用程序,RIA 服务是您的最佳选择。但是,如果您着眼长远,并且想要一个可测试并因此可维护的应用程序,您可以选择带或不带 RIA 的 MVVM。您需要了解这些技术为何有用,所有这些都是为了正确的工具完成正确的工作。
    【解决方案2】:

    MVVM 不会破坏 RIAServices。它始终与您如何实现该模式有关。请记住,MVVM 是模型-视图-视图模型。 ViewModel 完成繁重的工作,并且视图绑定到模型。

    使用 RIA + MVVM,ViewModel 只需处理 RIA 服务调用。它仍然可以使用 RIA 服务提供的模型并将这些模型绑定到视图。 IsBusy 没有任何问题,这通常是您可以提出的视图状态。

    为什么要同时使用这两者?正是因为您不知道会发生什么变化以及测试和灵活性。我不了解你,我宁愿测试我的视图模型和逻辑,而不依赖于可用的服务和数据库。使用 MVVM,View Model 可以做到这一点——我可以存根一个“假”层,为我提供要测试的模型。这也意味着我可以构建代码并让设计师设计,即使我还没有制定服务或构建那部分。

    一旦准备好,然后在生产版本中,我将连接到“真正的”RIA 模型并从那里开始。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-28
      相关资源
      最近更新 更多