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

本文关键字:方法 设计模式 选择 Winforms | 更新日期: 2023-09-27 18:37:01

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

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

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

这是一个非常主观和有争议的话题,尤其是在开发人员社区中。我只是在写下我的想法。你可以从中得到好处[如果有的话]——

没有人在设计时简洁地应用设计模式。总有一种迭代的方式来达成一个好的设计。OO原则应该是S.O.L.I.D。你应该巧妙地选择你的抽象。尝试从界面的角度思考。

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

您可以查看这个简单的Winforms应用程序,该应用程序具有正常UI模式的所有元素以及使用后台工人的多线程概念 -

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的一些文章。希望这有帮助。

虽然你的问题很笼统...我知道你正处于一个伟大旅程的开始。

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

通常,MVVM 非常适合中型现实世界的应用程序(甚至适用于 winforms),因此您可以从此处开始研究。然后,您可能希望至少具有 3 层体系结构(数据业务表示)。您也可以考虑服务层,稍后

...

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

正如"昂斯曼·阿加瓦尔"所说...尝试在每一步都考虑界面,这是成功的关键。

祝你好运!