Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 关于.NETGUI应用程序结构的想法_Vb.net_User Interface_Design Patterns - Fatal编程技术网

Vb.net 关于.NETGUI应用程序结构的想法

Vb.net 关于.NETGUI应用程序结构的想法,vb.net,user-interface,design-patterns,Vb.net,User Interface,Design Patterns,我正在寻找一种关于如何构造VB.net GUI应用程序的策略。我有一个基本上是数据库接口的应用程序。它由一个带有6个选项卡的TabControl组成,每个选项卡都有几个自定义控件,并在数据库上执行业务操作 选项卡功能: 将XLS解析为SQL插入并提交给db 从数据库查询结果生成XLS 从数据库查询结果生成XLS 从数据库写入日志框快速访问数据查找 通过GUI表单insert/update语句执行手动修改数据库 数据库连接设置 通用代码功能: 连接/断开与数据库的连接/断开与数据库的连接 执行非查

我正在寻找一种关于如何构造VB.net GUI应用程序的策略。我有一个基本上是数据库接口的应用程序。它由一个带有6个选项卡的TabControl组成,每个选项卡都有几个自定义控件,并在数据库上执行业务操作

选项卡功能:

将XLS解析为SQL插入并提交给db

从数据库查询结果生成XLS

从数据库查询结果生成XLS

从数据库写入日志框快速访问数据查找

通过GUI表单insert/update语句执行手动修改数据库

数据库连接设置

通用代码功能:

连接/断开与数据库的连接/断开与数据库的连接

执行非查询

执行查询

迭代查询结果

向XLS写入

公共子查询数据库提供程序不允许查看

目前,我已经在GUI线程的事件处理函数中内置了大部分操作。我想转向更面向对象的结构,以实现代码重用性和更简单的多线程

我正在努力解决一些设计问题:

什么对象/类有意义

在分离GUI和后端功能方面是否有行业标准的最佳实践或设计模式?有什么特别好的文章我应该读吗

BackgroundWorker是执行后端功能的最佳方式吗

谢谢-

乔纳森

…可能是一个太大的问题,不容易回答;很抱歉但是你可以通过传统的寻找名词的技巧来进行合理的第一步

对于Windows窗体,请签出。如果您在将来的项目中使用WPF或Silverlight,您将需要检查名为Model-View-ViewModel的替代模式,但这在WinForms中不太适用

是的,BackgroundWorker是WinForms后台任务的好选择,因为它提供了一种传递进度和完成通知的方便方法。它确实有一些限制,但通过线程或线程池显式线程在这里可能是多余的,并且只会导致额外的GUI反馈代码。因此,与后台工作人员一起,至少作为一个起点,并考虑明确的线程只有当它开始引起你的痛苦。 …可能是一个太大的问题,不容易回答;很抱歉但是你可以通过传统的寻找名词的技巧来进行合理的第一步

对于Windows窗体,请签出。如果您在将来的项目中使用WPF或Silverlight,您将需要检查名为Model-View-ViewModel的替代模式,但这在WinForms中不太适用

是的,BackgroundWorker是WinForms后台任务的好选择,因为它提供了一种传递进度和完成通知的方便方法。它确实有一些限制,但通过线程或线程池显式线程在这里可能是多余的,并且只会导致额外的GUI反馈代码。因此,与后台工作人员一起,至少作为一个起点,并考虑明确的线程只有当它开始引起你的痛苦。