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

Zed*_*Bee 2 .net c# scrum domain-driven-design winforms

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

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

Ang*_*wal 6

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

没有人在设计时有意识地应用设计模式.总是有一种迭代的方式来达到一个好的设计.OO原则应该是SOLID您应该巧妙地选择您的抽象.尝试从界面角度思考.

对于遗留代码,我认为您应该首先从域类开始.基本上,您的实际数据模型所在的位置.您与存储库/数据库通信的位置.开始逐个重构它们并围绕它们创建单元测试.我并没有在这里强调测试驱动.但是,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的一些文章.希望这可以帮助.