Winforms选择哪种设计模式/敏捷方法

时间:2012-06-11 21:12:31

标签: c# .net winforms domain-driven-design scrum

我开发了桌面(winforms)应用程序,没有遵循任何适当的设计模式或敏捷方法。现在我被赋予了在C#(Winforms)中重写现有ERP应用程序的任务。我一直在阅读关于领域驱动设计,scrum,极限编程,分层架构等等。它非常困惑并且非常困难(因为时间限制)去尝试每一种方法然后决定走哪条路。我很难理解大局,看看应遵循哪种模式和敏捷方法。 更具体地说我想知道的是:

  1. 是否有可能遵循域驱动设计并仍然敏捷。
  2. 我应该在这个特定场景中选择Extreme编程还是scrum
  3. MVP和MVVM在哪里适合,哪一个对我来说是更好的选择

2 个答案:

答案 0 :(得分:6)

这是一个非常主观且有争议的话题,特别是在开发者社区中。我只是写下我的想法。你可以从中得出善良[如果有的话] -

设计时没有人有意识地应用设计模式。总是有一种迭代的方式来达到一个好的设计。 OO原则应该是S.O.L.I.D.你应该巧妙地选择你的抽象。试着用接口来思考。

对于遗留代码,我认为您应该先从domain classes开始。基本上,您的实际数据模型所在的位置。您与存储库/数据库通信的位置。开始逐个重构它们并围绕它们创建单元测试。我并没有在这里强调测试驱动。但是,you need to have solid Unit Tests因为你现在正在重写它。一旦您的域类准备就绪,就可以轻松地在任何标准模式下挂钩UI。

你可以看看这个简单的Winforms应用程序,它们具有普通UI模式的所有元素以及使用backgroundworker的多线程概念 -

http://www.codeproject.com/Articles/88390/MVP-VM-Model-View-Presenter-ViewModel-with-Data-Bi

这对代码示例详细说明非常有帮助 - 他在这里展示了如何使用MVVM for Winforms [上述代码项目文章的父代] -

http://aviadezra.blogspot.co.uk/2009/08/mvp-mvvm-winforms-data-binding.html

我在这里不能更详细,因为我说这是一个非常主观的话题。在继续进行设计时,您可以搜索一些Martin Fowler's篇文章。希望这会有所帮助。

答案 1 :(得分:2)

虽然你的问题非常笼统......但我知道你正处在一个重大旅程的开始阶段。

为了帮助你,我会根据我的经验给你一些提示......

一般来说,MVVM非常适合中大型实际应用程序(即使是winforms),因此您可以从这里开始进行调查。那么您可能希望至少拥有3层架构(数据业务演示)。你也可以考虑服务层,稍后就可以了......

嗯...试着坚持你现在最了解的东西,然后在路上适应!

正如“Angshuman Agarwal”所说......试着在每一步的界面中思考,这是成功的关键。

祝你好运!

相关问题