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

C# Winforms选择哪种设计模式/敏捷方法,c#,.net,winforms,domain-driven-design,scrum,C#,.net,Winforms,Domain Driven Design,Scrum,我开发桌面(winforms)应用程序时没有遵循任何适当的设计模式或敏捷方法。现在我的任务是用C#(Winforms)重新编写现有的ERP应用程序。我一直在阅读有关领域驱动设计、scrum、极限编程、分层体系结构等的书籍。由于时间限制,很难去尝试每一种方法,然后决定走哪条路。对我来说,很难理解全局,也很难看到应该遵循哪种模式和敏捷方法。 更具体地说,我想知道的是: 是否有可能遵循领域驱动的设计并保持敏捷性 在这个特定场景中,我应该选择极限编程还是scrum MVP和MVVM在哪里合适,对我来说哪

我开发桌面(winforms)应用程序时没有遵循任何适当的设计模式或敏捷方法。现在我的任务是用C#(Winforms)重新编写现有的ERP应用程序。我一直在阅读有关领域驱动设计、scrum、极限编程、分层体系结构等的书籍。由于时间限制,很难去尝试每一种方法,然后决定走哪条路。对我来说,很难理解全局,也很难看到应该遵循哪种模式和敏捷方法。 更具体地说,我想知道的是:

  • 是否有可能遵循领域驱动的设计并保持敏捷性
  • 在这个特定场景中,我应该选择极限编程还是scrum
  • MVP和MVVM在哪里合适,对我来说哪一个更好

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

    为了帮助你,我会根据我的经验给你一些建议

    一般来说,MVVM非常适合现实世界中的中大型应用程序(即使是winforms),因此您可以从这里开始研究。然后,您可能希望至少有一个3层体系结构(数据业务演示)。你也可以考虑服务层,稍后在路上……p> 嗯。。。试着坚持你现在最了解的东西,然后在路上适应它

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


    祝你好运

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

    没有人在设计时简洁地应用设计模式。总有一种迭代的方法来达到一个好的设计。面向对象的原则应该是:你应该聪明地选择你的抽象。试着从接口的角度来思考

    对于您的遗留代码,我认为您应该首先从。基本上,就是实际数据模型所在的位置。与存储库/数据库对话的地方。开始逐个重构它们,并围绕它们创建单元测试。我不是在强调测试驱动。但是,
    您需要进行可靠的单元测试,因为您现在正在重写它。一旦您的域类准备好了,就可以很容易地按照任何标准模式连接UI

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

    这对于代码示例的详细解释也很有帮助,他在其中展示了如何使用MVVM for Winforms[上述代码项目文章的父级]-


    我在这里说得再详细不过了,因为这是一个非常主观的话题。您可以在继续设计时搜索一些文章。希望这能有所帮助。

    你需要问一个具体的问题。这太笼统了-你的代码是做什么的,你的应用程序必须遵循什么一般原则等等。这就是我想说的,我甚至很难问自己关于架构和设计的具体问题。既然你们是专家,至少你们可以帮我。至少你可以教我在这个阶段应该问什么样的问题。非常感谢你详细的回答。我将通读这些文章,并尝试在下次提出更具体的问题。事实上,我确实读过TDD、DDD等主题,但无法理解所有这些模式/概念是如何相互关联的。