问题:
将MVVM用于与3层应用程序中的web服务交互的UI是否有意义?
详细信息:
Presentation Layer <--Web-Service-->| Business Layer | Data Access Layer
在UI中使用MVVM有意义吗?
G 222
其他考虑因素:
不需要实时更新数据:
数据库上的
编辑
链接:
如果您可以在3层应用程序中发布指向使用MVVM进行UI的项目的链接,则会有所帮助。
发布于 2012-05-15 05:44:50
MVVM中的模型不一定由数据库提供。
在这种情况下,我将考虑由业务层模型发布的数据结构。
数据库中的数据结构应该进行优化,以便存储和查询。业务层公开的数据结构应该针对(所有)可能的客户端和带宽等考虑因素进行优化。
客户端中的数据结构应该为表示而优化,这就是我们在MVVM中所称的视图模型。
MVVM非常合适,因为它允许您在业务层公开的数据结构和UI所需的数据结构之间进行转换。
发布于 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 -许多企业软件体系结构和模式的先驱。
https://stackoverflow.com/questions/10589438
复制相似问题