【发布时间】:2014-09-18 16:00:56
【问题描述】:
我的应用程序必须支持不同的 UI(Win Forms 和 WPF)。这意味着我必须封装业务逻辑。 你会怎么做呢?
例如带有 MVVM 的 WPF:
1) 我应该在我的模型类(例如汽车、门……)和视图模型之间引入一个层吗?例如通过控制类、管理器类或服务类??
2) 或者模型类(例如汽车、门……)本身是否应该包含逻辑?
【问题讨论】:
标签: mvvm
我的应用程序必须支持不同的 UI(Win Forms 和 WPF)。这意味着我必须封装业务逻辑。 你会怎么做呢?
例如带有 MVVM 的 WPF:
1) 我应该在我的模型类(例如汽车、门……)和视图模型之间引入一个层吗?例如通过控制类、管理器类或服务类??
2) 或者模型类(例如汽车、门……)本身是否应该包含逻辑?
【问题讨论】:
标签: mvvm
模型类通常用于在您拥有的任何 UI 层和业务逻辑之间传输数据。所以它们通常不应该包含任何逻辑。
我没有尝试过同时支持 WPF 和 winforms(老实说,我无法找到一个必要的理由),但 AFAICT winforms 根本不支持 MVVM。是的,你可以做绑定(有点),但你不能,例如,将 ICommands 绑定到按钮。
因此,我建议使用 ViewModel 作为 UI 和业务逻辑之间的桥梁。然后,在应用程序之间共享业务逻辑类本身。您的视图模型应该非常薄并且相对容易创建和维护。类似的桥梁可能在 winforms 项目中有用,或者只是简单地在代码隐藏中重新创建您的视图模型代码。
【讨论】: