我正在开发一个 WPF 客户端,它与使用 NHibernate 将数据保存在数据库中的 WCF Web 服务进行交互。
客户端将对 UI 使用 MVVM 设计模式,并通过发送和接收 DTO 与 WCF 服务进行交互。
据我了解,只有表示数据和逻辑应该进入 View 模型,而模型应该包含应用程序的数据和业务逻辑。
现在让我们以客户端中的登录屏幕为例。
这是我的问题: Model 中究竟应该包含什么?
它是否应该使用诸如 MEF 之类的依赖注入(inject)容器来引用 WCF 代理的接口(interface)?
基本上,用户将输入用户名和密码,由于数据绑定(bind),这将更新 View 模型中的属性。每当用户按下 View 上的“登录”按钮时,都会向 View 模型发送一个命令, View 模型又将其转发给模型。然后模型使用代理接口(interface)与 WCF Web 服务进行通信。
这种方法正确吗?如果不是,那么 Model 和 View-Model 中究竟应该包含什么?
最佳答案
MVVM 中的 ViewModel 是 classic MVC 中的 ApplicationModel 和 Controller 的组合。 .因此,它负责连接到服务以查询数据以显示和调用对服务的操作。
工作流程应该是这样的:
该模型不应该知道服务等。从技术上讲,您在客户端使用纯 DTO,因此它应该具有最少的逻辑,在服务背后,应该有一个更丰富的模型,它确实具有业务逻辑和验证。
关于.net - 模型和 View 模型应该包含什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7257794/