当我们过渡到WPF和MVVM时,哪种.NET2.0开发模式(MVP、MVC等)最适合允许轻松重用?

当我们过渡到WPF和MVVM时,哪种.NET2.0开发模式(MVP、MVC等)最适合允许轻松重用?,.net,wpf,design-patterns,mvvm,.net,Wpf,Design Patterns,Mvvm,我们正在研究MVP这样的模式,它可以帮助我们将UI从逻辑和数据中分离出来。这项计划在游戏后期才开始实施,但我们正在努力制定规则,以便编写更多的可测试代码(目前我们编写的代码有毛球、意大利面条、胶带和木螺钉等) 在我们考虑使用2.0 WinForms应用程序的方法时,我们也在考虑WPF和我们产品的下一代UI。我们正试图通过关闭WinForms UI/视图并打开新的WPF UI/视图来创建一些在WPF世界中应该易于重用的东西 2.0开发的任何特定模式是否适合自然地滑入WPF的MVVM模式?我们今天应

我们正在研究MVP这样的模式,它可以帮助我们将UI从逻辑和数据中分离出来。这项计划在游戏后期才开始实施,但我们正在努力制定规则,以便编写更多的可测试代码(目前我们编写的代码有毛球、意大利面条、胶带和木螺钉等)

在我们考虑使用2.0 WinForms应用程序的方法时,我们也在考虑WPF和我们产品的下一代UI。我们正试图通过关闭WinForms UI/视图并打开新的WPF UI/视图来创建一些在WPF世界中应该易于重用的东西


2.0开发的任何特定模式是否适合自然地滑入WPF的MVVM模式?我们今天应该遵循什么样的模式,使我们能够过渡到WPF,而不需要将WPF修改到现有的表示逻辑上,或者(再次)大量地修改/移动我们的表示逻辑以适应WPF?

MVP模式将为您提供这种逻辑分离,但我认为MVP的优势主要在于编写可测试的代码

我建议您阅读Bob叔叔(Robert C Martin)的书《敏捷原则、模式和实践》

此外,我相信您不一定需要使用MVP这样的模式来从逻辑上将业务逻辑与UI层分离。如果结构正确,那么您的所有业务逻辑都将驻留在业务层中,而业务层与UI层完全断开连接。然后,您可以将多个接口(如WinForms、WebForms或WebService,甚至WPF)用于同一业务层,而无需重写任何业务逻辑、验证、授权规则等


在这种情况下,我建议阅读Rocky Lhotka的书《专家C#Business Objects》。这本书很容易阅读,他解释了如何分离逻辑层。另外,他的目标是将UI代码保持在最低限度。

+1仅用于“发球、意大利面、管道胶带和木螺钉,…”就是始终查看该代码:)感谢您的建议;我有Bob叔叔的“干净的代码”,我刚刚开始,但它启发了我(通过一个早期丑陋的方法转换成干净的类)如何编写真正做一件事的方法,从而使编写适当的单元测试(只测试一件事)变得很容易。