在我们开发各种应用的时候,都会碰到很多不同的问题,这些问题涉及架构、模块组合、界面处理、共同部分抽象等方面,我们这里以Winform开发为例,从系统模块化、界面组件选择、业务模块场景划分、界面基类和辅助类处理、代码生成工具辅助开发等方面介绍在实际项目开发过程中碰到的困境和相关的解决方案,以便分析其中是如何逐步提高效率和整体用户体验的。

1、系统模块化

软件和建筑工程很类似,都是需要构建一个庞大而功能完整的一个系统,而工程化也意味着需要多人协作,那么就需要把一个庞大的系统横向或者纵向划分为各个可以独立施工完成的模块,虽然各个模块之间有所衔接或者交互,但是基本上可以以模块化的方式来构建,这个也是工程化开发的精髓所在。

以一个软件管理系统为例,我们尽可能把精力焦点放在客户的业务需求上,而对于常规的如权限控制、字典管理等一些常用的内容,由于它们的处理逻辑在特定领域上基本上比较固定一些,可以尽可能独立并重复使用,

而有时候,以某个特定的业务来说,同时很多处理规则也是不变的,因此也可以以业务模块的方式来划分,从而类似通用模块的方式重复使用。

模块化类似小孩子搭积木的方式构建一个所要的形状,虽然软件和建筑在这方面肯定更加复杂化,但是模块化系统是大势所趋,也是简化开发、易于维护、提高系统健壮性的重要举措。

2、界面组件选择

在Winform内置的传统样式里面,虽然提供了很多很好的界面组件,不过整体效果还是比较古板。为了增强界面的处理效果,我们一般使用一些第三方的界面套件作为Winform开发的基础,这个除了可以提高整体界面的效果外,还在很多控件层面提供丰富的处理和响应。

以前尝试过各种类型的界面套件,最终还是对DevExpress情有独钟,不仅仅是因为它是大软件公司开发的界面套件,也是因为它在界面层次提供了很多丰富的界面组件和强大的属性设置,能够极大满足各种界面复杂的要求。

使用DevExpress界面套件,可以使得我们开发的界面更加漂亮,用户体验也更好。

或者类似效果

3、业务模块的场景划分

前面说过,一个系统为了简化开发、易于维护、提高系统健壮性的可以把它按功能方式划分为各个独立模块进行开发或者重用,而对于业务模块来说,我们也还可以进一步细分。

一般系统界面中,大多数标准方式是展示业务数据的查询列表,然后在根据需要对特定记录进行编辑、查看、删除等操作。

我们把常规的列表界面,新增、编辑、查看、导入等界面放在一起,除了列表页面,其他内容以弹出层对话框的方式进行处理,如下界面示意所示。

如对于列表内容的展示,一般展示效果如下所示,主要展示数据库里面的二维表信息。

除了列表界面,另外一个就是对数据的明细展示界面了,这个界面内容可以更加多元化,如在里面承载各种控件,如文本、日期、图片、下拉列表、树形列表,以及我们自定义的一些控件,如对于附件的通过管理展示控件。

 有了这些标准的展示效果,我们就可以参照这些,使用代码生成工具辅助页面内容的生成的了,生成规则以数据库元数据为参考即可。

4、界面基类和辅助类的处理

我们以常规业务模块界面来分析,主要有明细查看或编辑界面、列表界面,那么这些界面为了方便使用,我们可以抽象一部分界面处理逻辑或者共有部分内容,放在界面基类BaseEdit或者BaseDock等基类里面,如下界面所示。

尽可能把一些涉及到业务数据的处理通用规则放到基类,而变化部分则在子类进行处理即可。这样可以简化生成界面的代码,以及提高可重用率,减少维护的难度和代码臃肿。 

对于一般的业务系统,可能都会涉及到不同数据库的使用,如SQLServer、Oracle、Mysql、PostgreSQL等数据库,那么这部分,可以通过使用微软企业库或者其他ORM方式进行处理,以实现系统对多种数据库的良好支持。

5、代码生成工具辅助开发

通过上面的介绍,通用部分作为模块独立使用,业务模块的界面主要划分列表和编辑查看界面两部分,而各自又进行了一定的基类抽象处理,那么相对来说已经简化很多了,不过对于业务数据来说,我们还是需要做很多重复性的工作,如界面显示、界面赋值及调用接口处理等操作,这些对业务对象固定的话,其实也是规则类似的,那么这部分我们结合代码生成工具进行批量生成即可,生成后进行一定的微调,可以极大降低出错的几率,减少代码的编写量。

 在我们开发软件的时候,解决方案项目基于一定的分层组织,每个项目分层中,各个类的关系也是确定的,借助辅助工具(结合模板引擎)可以快速生成我们所需要的代码,并极大提高我们软件的开发效率,Database2Sharp代码生成工具就是一款专门针对我们自己框架结构配套的开发工具。

Database2Sharp代码生成工具,主要是基于数据库提取的元数据信息,根据表的信息和关系,字段信息等内容,生成我们框架所需要分层的类代码。

对于Winform开发,可以根据Winform框架或者混合框架的窗体界面类,生成标准的界面代码,列表界面默认具有分页查询、导入导出、高级查询、编辑、删除事件绑定,编辑界面则具有获取数据并显示在控件,保存后执行更新或者写入的操作。

 

7、其他

除了前面介绍的部分外,一般大的方面,我们还可以以业务方式做一些独立的组件模块,以方便重复使用,这个是大的方面。

模块化,一般需要构建好对应的框架架构,每个独立的模块,都是遵循统一的框架架构方式处理,可以极大提高代码的开发效率和降低维护的难度。

Winform开发架构如下所示。

 而对于混合方式的Winform开发,那么还设计Web API模块的部署,以及客户端对Web API调用的封装,如下所示。

 小的方面,还可以进一步划分一些常用的界面处理元素,如自定义控件的方式进行特殊组件的开发工作。如随笔《在Winform界面使用自定义用户控件及TabelPanel和StackPanel布局控件》、《在Winform系统界面中对进展阶段的动态展示和处理》。

标签智能推荐:

录制的开发框架视频

息6)开发框架-底层数据库相关处理7)开发框架-主从表界面生成8)混合框架图片显示及存储8)混合框架之WebAPI接入的增量开发过程3、Bootstrap开发框架介绍介绍Bootstrap开发框架的增量式开发的过程,各个特定主题操作介绍1)Bootstrap开发框架介绍--基础框架2)Bootstrap开发框架介绍--MVC框架3)Bootstrap开发框架介绍--Bootstrap介绍4)Boo

看图知义,Winform开发的技术特点分析

rt、RDLC、Grid++等报表展示方式。   9、串口开发及Modbus封装串口接口的开发,以及Modbus串口和网络连接的处理。  10、SignalR通讯开发11、TXTextControl控件使用 12、配置管理界面13、WebAPI的访问和接口处理14、综合案例提供各种各样的开发测试案例代码  以上是我整理

Winform开发框架之终极应用

方法,对于想快速、高效开发规范、稳定的项目的人来说,在这个不错的框架上搭建业务应用,更是事半功倍。该开发框架项目演示程序可以随意下载研究,但源码有偿提供不免费赠送,需要者可以和我联系,或者可以一起沟通讨论相关的内容。演示程序下载地址如下:http://files.cnblogs.com/wuhuacong/DeviceMis.rar主要研究技术:代码生成工具、会员管理系统、客户关系管理软件、病人资

CS框架是什么?

CS框架是什么?CS框架是什么? CS是C/S(Client/Server)的缩写,即基于Winform平台开发的客户端与服务端架构的软件系统。C/S系统开发框架介绍(基于C/S架构最新版本-C#.NET)http://www.csframework.com/cs-framework-intro.htmC/S系统快速开发平台三层体系架构详解-原创文档 http://www.cs

Winform开发框架中工作流模块的表设计分析

某步骤、转发到内部阅读、阅读,以及包括起草者能撤销表单呢等操作,当然如果还有一些具体的业务,可能还会有一些流程的处理才操作,不过基本上也可以归结为上面几种,只是他们每步处理的数据内容不同而已。因此审批的操作步骤分类如下所示。如审批界面如下所示,里面包含了通过、拒绝,跳回到某步骤,增加步骤等功能集合。WInform开发框架之工作流系列文章:Winform开发框架之简易工作流设计Winform开发框架

Winform开发的快速、健壮、解耦的几点建议

己多年的开发经验,对Winform开发的快速、健壮、解耦的一些领域提出几点微薄建议,抛砖引玉,希望大家多加指正。1、Winform的技术概括另一方面,作为Winform的替代者,Silverlight的盛行以及没落,WPF的逐步应用并重用,以及统一的通用Windows平台 (UWP),都充当着Winform的终结者的大任,不过即使应用范围缩减,Winform依旧很顽强,即使.netcor

软件公司开发平台 - 15年致力于应用软件快速开发平台

bsp;C/S架构开发框架系列产品已成功应用500多家企业、6000多位软件用户,其中包括国内知名软件公司、国有企业、研发机构及上市公司(优秀企业选择了我们的产品-成功案例)。经过十年迭代升级,最新旗舰版V5.1,基础架构更成熟、应用更广泛、性能更稳定、开发效率更高!  开发框架配套的核心工具- Winform三层架构代码生成器能快速生成界面(FORM)、业务层(BL

Winform开发的应用环境和相关技术介绍

用Winform来处理会更胜一筹。3)开发便利Winform开发的程序,发布共享比较容易,直接安装就可以使用,可以不需要部署在云端(虽然我的混合框架方式可以访问WebAPI、WCF等服务获取数据,透明的数据处理);而且Winform的界面开发起来非常方便,结合界面套件,可以做出非常棒的界面效果。另外从开发角度上讲,Web前端的技术淘汰非常快,Winform的技术积累反而是在逐步加固的过程,因此对于

使用.net core3.0 正式版创建Winform程序

etcore3.0正式版本的出来,以为这个版本出来,Winform程序又迎来一次新生了,不过9.23日出来的马上下载更新VS,创建新的.netcoreWinform项目,发现并没有Winform窗体设计器。而微软目前则是通过插件的方式,让我们单独下载Winform设计器,这个设计器还是预览版本,很多功能还是没有实现的,只能算是一个简单的雏形,本博客案例介绍基于.netcore3.0创建一个普通的W

企业微信和后台管理系统的结合管理(1)---各个系统之间的关系和协同。

同的业务系统管理应用。这个系统基于MVC的Web业务快速开发,可以通过代码生成工具进行后台代码的开发,界面快速生成等处理,可以快速生成分页,查询,打印,导入,导出、编辑、增加、查看等处理功能。4)微信开发框架介绍微信开发框架也是基于Bootstrap开发框架基础上进行开发的,采用基于 MVC+Bootstrap+Ajax+EnterpriseLibrary的技术路线,界面层采用Boost