Asp.net mvc 如何构造VB.NET Windows窗体应用程序

Asp.net mvc 如何构造VB.NET Windows窗体应用程序,asp.net-mvc,vb.net,winforms,Asp.net Mvc,Vb.net,Winforms,构造VB.NET应用程序的最佳方法是什么,以便代码可以重用,应用程序可以轻松扩展 我曾经创建过很多新表单。这导致了大量重复的代码和表单,它们做了类似的事情 现在,对于执行类似任务的表单,例如查看/编辑/删除特定数据库表中的项,我使用所需的控件创建一个表单,让表单创建一个类实例,该类具有参数,例如控件集合和包含数据库表名的字符串。然后各个控件调用类的函数 高级表单将继承和扩展此基本表单类 在这方面已经有工作了吗 是否有讨论此主题可用选项的书籍/文章 我在这种模式下取得了巨大成功 在我看来,传统MV

构造VB.NET应用程序的最佳方法是什么,以便代码可以重用,应用程序可以轻松扩展

我曾经创建过很多新表单。这导致了大量重复的代码和表单,它们做了类似的事情

现在,对于执行类似任务的表单,例如查看/编辑/删除特定数据库表中的项,我使用所需的控件创建一个表单,让表单创建一个类实例,该类具有参数,例如控件集合和包含数据库表名的字符串。然后各个控件调用类的函数

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

  • 在这方面已经有工作了吗
  • 是否有讨论此主题可用选项的书籍/文章

  • 我在这种模式下取得了巨大成功

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

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

    解决此问题的诀窍是生成表单程序集(或EXE)引用的控制器程序集。每个窗体在程序集中都有相应的类。单击按钮将调用
    ThisForm.ThisButton(您通过实现虚拟类来触发事件并向控制器类提供信息来模拟执行复杂操作的操作员。控制器类不知道任何不同,因为虚拟类实现了所有预期的接口

    有一个重要的例外,那就是对于普通对话框。对于只有几个复选框的对话框,我觉得这种组织太过分了。我使用了很多。因此,在我定义命令对象的程序集中,我放置了与该命令相关联的简单对话框。对话框有多简单才能得到这种处理取决于您

    我希望我的应用程序结构如下

    • 实用程序-这是一个程序集,有我一直使用的东西-数学函数,文件函数,等等

    • 对象-这有我用于此应用程序的特定对象

    • UIFramework—定义所有表单和控制器接口

    • Commands—它包含所有操纵我的应用程序对象的命令对象

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

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


    您可能想查看Rocky Lhotka的流行版本。它提供了一种非常结构化的方式来实现业务对象,因此您可以将非UI代码保留在表单之外。不过,除了分离业务逻辑之外,它还提供内置的n级撤销、验证、安全性、数据绑定支持等


    CCSA最常见的一个抱怨是,它使测试驱动的开发变得困难,因此也可能需要考虑。

    可以帮助很多。使用用户控件,您可以以不同的形式重用同一个UI。此外,您可以在一个窗体上拥有多个用户控件,所以如果您有一个带有TA的表单。b控件有5个选项卡,每个选项卡的内容可以是一个用户控件,因此,每个用户控件都有自己的控件和验证逻辑,而不是将数百个控件混合在一个表单中,最终表单中只有6个控件:tabcontrol和5个用户控件

    这无助于将UI代码与应用程序逻辑分离,但它使您能够拥有小型结构化实体,而不是具有数千行代码的表单