1

我过去编写的所有 WinForms 向导都在 UI 和模型之间存在高度耦合。也就是说:各个页面都知道启用/禁用下一个/上一个按钮,如何对按下下一个按钮做出反应等。这使得测试变得困难,因为要测试任何逻辑,你必须先把很多脚手架放在一起。

我最近一直在使用 MVC(以 ASP.MVC 的形式),我发现它很容易测试。我也玩过 WPF,我我正在了解 MV-VM。

我正在努力解决 WinForms 中的 MVP 模式(即没有 WPF 样式的数据绑定)。特别是,我需要实现一个向导。

我每页都有一个控制器吗?管理整个向导的视图模型?还有什么?

这是在 C# 中的 WinForms(不是 WPF)中。.Net 2.0 首选。

4

2 回答 2

1

最后,我选择了 MVVM 和 MVP 之间的选择,混合使用了 WinForms 数据绑定和视图回调接口。我猜它比 MVVM 更接近 MVP。每个页面都有一个 viewmodel/presenter,向导本身有自己的 viewmodel/presenter 来管理流程(例如,某些选项会跳过后面的向导页面)。

结果非常好,并且为每个演示者类编写单元测试相当容易。

底层向导框架不使用 MVVM 或 MVP。这只是普通的 WinForms 代码。

于 2009-10-20T09:28:55.553 回答
0

看看智能客户端软件工厂

于 2009-07-16T07:53:06.950 回答