如何构建VB.NET Windows Forms应用程序

14 vb.net asp.net-mvc winforms

构建VB.NET Windows窗体应用程序的最佳方法是什么,以便可以重用代码并轻松扩展应用程序?

我曾经创造过很多新形式.这导致许多重复的代码和表单做了类似的事情.

现在,对于执行类似作业的表单,例如查看/编辑/删除特定数据库表中的项目,我创建一个包含所需控件的表单,让表单创建一个带有参数的类的实例,例如控件的集合和包含数据库表名的字符串.然后个人控制该类的函数.

高级表单将继承和扩展此基本表单类.

  1. 这方面是否已经完成了工作?
  2. 是否有可以讨论此主题可用选项的书籍/文章?

RS *_*ley 4

我通过这种被动屏幕模式取得了巨大成功。

在我看来,传统 MVC 架构的一个大问题是人们在表单类中塞入了太多东西。这会增加您必须执行的手动测试量。

编译后可以进行的自动化测试越多,您在办公桌上发现的错误就越多。在复杂的应用程序中,即使是微小的变化也会经常产生副作用。

解决这个问题的技巧是创建一个表单程序集(或 EXE)引用的控制器程序集。每个窗体在程序集中都有一个相应的类。单击按钮将调用ThisForm.ThisButton(<args>)该按钮,然后将触发框架中较低的对象。每个表单都实现一个接口,因此,如果控制器类需要来自表单的其他信息,它就有一个接口来检索它。

然后,对于单元测试,您可以通过实现虚拟类来触发事件并向控制器类提供信息来模拟执行复杂操作的操作员。控制器类不知道任何不同,因为虚拟类实现了所有预期的接口。

有一个重要的例外,那就是琐碎的对话。对于有几个复选框的对话框,我觉得这个组织有点矫枉过正。我经常使用命令模式。因此,在定义命令对象的程序集中,我放置了与该命令关联的简单对话框。对话必须有多简单才能获得这种处理取决于您。

我喜欢按如下方式构建我的应用程序。

  • 实用程序 - 这是一个包含我一直使用的东西的程序集 - 数学函数、文件函数等。

  • 对象 - 这包含我用于此应用程序的特定对象。

  • UIFramework - 这定义了所有表单和控制器接口。

  • 命令 - 这包含操作我的应用程序对象的所有命令对象。

  • UI - 实现控制器接口的对象

  • EXE - 实现表单接口并调用控制器对象的表单。