gpt4 book ai didi

.net - 使用 Windows 窗体实现 MVC

转载 作者:行者123 更新时间:2023-12-03 04:48:37 25 4
gpt4 key购买 nike

哪里可以找到有关如何在 Windows 窗体中完全实现 MVC 模式的好示例?

我在各个站点(例如 The Code Project 和 .NetHeaven)上找到了许多教程和代码示例,但其中许多比 MVC 更能代表观察者模式。由于我要开发的应用程序是针对学校项目的,因此我不愿意使用像 PureMVC 这样的框架或MVC# .

最佳答案

我认为应用程序彼此之间差异很大,我们对如何编写应用程序的理解仍然非常有限。我过去开发过的 Windows 窗体应用程序彼此之间差异很大。我看到的一些设计差异是(包括大多数组合):

  • 直接与数据库对话(2 层)
  • 使用为给定应用程序编写的后端(第 3 层)
  • 使用一组网络服务,这些服务是为许多应用程序使用而编写的,并且无法针对您的应用程序进行更改。 (面向服务的架构)
  • 更新由 CRUD 完成操作
  • 正在使用 command pattern 进行更新(向后端服务器发送命令)
  • data binding 的多种用法/不使用数据绑定(bind)
  • 大多数数据都是“类似表格”的数据(例如发票),在标准网格控件中运行良好/大多数 UI 数据需要自定义控件。
  • 一名开发者/由 10 名或 20 名开发者组成的团队(仅在界面上)
  • 使用模拟等进行大量单元测试/没有单元测试

因此,我认为不可能创建一种始终适合的 MVC(或 MVP)实现。

我见过的真正解释 MVC 以及为什么 MVC 系统是这样构建的最好的帖子是 "Build Your Own CAB" series by Jeremy D Miller 。完成之后,您应该能够更好地理解您的选择。 Microsoft's Smart Client Guidance (CAB / Microsoft Composite Application Block)也应该考虑。它有点复杂,但对于非常适合的应用程序来说它可以很好地工作。

选择MVC/MVP Implementation for a Winforms Project给出值得一读的概述。很多人喜欢PureMVC 。我从未使用过它,但下次需要 MVC 框架时我会看看它。

Presenter First”是一种软件开发方法,结合了模型 View 呈现器 (MVP) 设计模式和 test-driven development 的思想。 。它允许您首先用客户的语言编写测试。例如:

"When I click the 'save' button then the file should be saved and the unsaved file warning should disappear.”

我没有使用“Presenter First”的经验,但一有机会我就会尝试一下,因为它看起来很有前途。

您可能希望查看的其他堆栈溢出问题是 herehere .

如果您随时考虑使用 WPF,请查看 Model-View ViewModel (MVVM)图案。这是一个非常好的视频,您应该看看:Jason Dolinger on Model-View-ViewModel

MVVM (Model View View Model) Design Pattern for Winforms提供另一个选项,可以在需要时更轻松地转换为 WPF。 Magical.Trevor是另一个适用于 Windows 窗体的 MVVM 示例,其中还包括基于属性名称的自动绑定(bind)。

<小时/>

还要问问自己为什么使用 MVC。

  • 您希望能够对尽可能多的代码进行单元测试吗?
  • 您是否试图允许尽可能多的代码被重用?
  • 您是否想让您的代码库易于理解?
  • 对于给定项目可能有效的 101 个其他原因。

一旦您明确了自己的目标,选择一种实现方式就会变得更加容易。

关于.net - 使用 Windows 窗体实现 MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/654722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com