首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVVM与3层应用程序中的web服务交互。

MVVM与3层应用程序中的web服务交互。
EN

Stack Overflow用户
提问于 2012-05-14 18:59:01
回答 2查看 1.6K关注 0票数 2

问题:

将MVVM用于与3层应用程序中的web服务交互的UI是否有意义?

详细信息:

  1. 应用程序的体系结构为3层:

Presentation Layer <--Web-Service-->| Business Layer | Data Access Layer

  1. 前端:.NET (WPF和C#)

  1. 后端: Java EE

在UI中使用MVVM有意义吗?

  1. 如何使模型抽象数据库,因为它不能在没有web服务的情况下直接访问数据库?
  2. ,如果实际上可以通过模型抽象数据库,那么这样做是否是的好主意?

G 222

其他考虑因素:

不需要实时更新数据:

数据库上的

  • 更新不必立即反映在UI上,反之亦然。

  • ,这让我觉得我不需要像这样的模型。MVVM在我的例子中合适吗?

编辑

链接:

如果您可以在3层应用程序中发布指向使用MVVM进行UI的项目的链接,则会有所帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-15 05:44:50

MVVM中的模型不一定由数据库提供。

在这种情况下,我将考虑由业务层模型发布的数据结构。

数据库中的数据结构应该进行优化,以便存储和查询。业务层公开的数据结构应该针对(所有)可能的客户端和带宽等考虑因素进行优化。

客户端中的数据结构应该为表示而优化,这就是我们在MVVM中所称的视图模型。

MVVM非常合适,因为它允许您在业务层公开的数据结构和UI所需的数据结构之间进行转换。

票数 3
EN

Stack Overflow用户

发布于 2012-05-15 10:04:52

我在企业架构中看到了一个称为集成层的附加层。在MVVM的上下文中,我设想这仍然存在于模型中,但它在数据库和任何其他外部数据层之间起着仲裁者的作用。在我看到的示例中,集成层连接了第三方web服务、WCF服务上的一些输入和主应用程序数据库。

我认为您可能对模型在MVVM中的含义有点不理解。这并不意味着UI/表示层会立即更新(尽管可以这样配置),但更多的是任何业务对象或数据访问组件都存储在模型中。也就是说,不存在像VVM这样的东西,因为视图模型依赖于模型中定义的业务对象。

无论如何,我认为MVVM完全适合您所描述的内容,但其他许多体系结构也是如此。MVVM对于WPF前端特别好,它非常适合UI绑定模型。模型视图演示器非常适合Winforms应用程序,因为状态处理与不同,模型视图控制器对ASP.net企业应用程序非常有用。所有这些结构都支持您在OP中描述的集成。

有关我最近对MVVM的描述,请参见How to store business logic in domain object?

http://www.codeproject.com/Articles/66585/Comparison-of-Architecture-presentation-patterns-M是一篇很好的比较文章,很多内容来自Martin -许多企业软件体系结构和模式的先驱。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10589438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档