构造VB.NET Windows Forms应用程序的最佳方法是什么,以便可以重用代码并可以轻松扩展应用程序?
我曾经创建许多新表格。这导致了很多重复的代码和表单,它们做了类似的事情。
现在,对于执行类似工作的表单,例如查看/编辑/从特定数据库表中删除项目,我创建具有所需控件的表单,让表单创建带有参数的类的实例,例如控件的集合和一个包含数据库表名称的字符串。然后,各个控件调用该类的函数。
高级表单将继承并扩展此基本表单类。
在这方面已经做过工作吗?
是否有书籍/文章讨论该主题的可用选项?
最佳答案
我在Passive Screen模式上取得了巨大的成功。
在我看来,传统的MVC架构的最大问题是人们将太多的东西填入表单类。这增加了您必须执行的手动测试的数量。
编译后可以执行的自动化测试越多,在桌面上捕获的错误就越多。在复杂的应用程序中,即使很小的变化所产生的副作用也经常发生。
解决此问题的技巧是使表单程序集(或EXE)引用一个控制器程序集。每个表单在程序集中都有一个对应的类。单击一个按钮将调用ThisForm.ThisButton(<args>)
,这将触发框架中较低的对象。每个表单都实现一个接口,以便如果控制器类需要表单中的其他信息,则它具有一个用于检索它的接口。
然后,对于您的unit testing,您可以通过实现虚拟类来触发事件并将信息提供给控制器类,从而模拟操作员执行复杂的操作。控制器类没有什么不同,因为伪类实现了所有预期的接口。
有一个重要的例外,那就是琐碎的对话框。对于带有几个复选框的对话框,我觉得这个组织实在是太过分了。我经常使用command pattern。因此,在定义Command对象的程序集中,我将与该命令关联的SIMPLE对话框放置了。要获得这种待遇,对话必须多么简单取决于您。
我喜欢按以下方式构建应用程序。
实用程序-这是一个程序集,其中包含我一直使用的东西-数学函数,文件函数等。
对象-具有用于此应用程序的特定对象。
UIFramework-定义所有表单和控制器接口。
命令-具有操作我的应用程序对象的所有Command对象。
UI-实现控制器接口的对象
EXE-实现表单接口并调用控制器对象的表单。
关于asp.net-mvc - 如何构造VB.NET Windows窗体应用程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/264744/