WinForm框架开发教程 - 如何实现简单化开发?
在Winform开发领域开发过十多年的项目中,见证着形形色色的架构和官方技术的应用,从最早类似Winform模式的WebForm技术,到接着的JQuery+界面组件,再到Asp.net Core的技术应用,以及后来的纯前端技术出现,Angular、React、Vue等前端技术和语言的广泛应用,Web应用越来越多,也越来越精细化,从最初的单服务,到单服务+分布式缓存,再到微服务集群的各种服务架构,Web开发的体系越来越庞大和复杂化,虽然引入更多先进技术、更多优秀架构,但同时也意味着更高的技术门槛,以及全栈式的开发需求或要求,Winform开发依旧占领一席之地。本文针对Winform开发的技术特点,针对自己多年的开发经验,对Winform开发的快速、健壮、解耦的一些领域提出几点微薄建议,抛砖引玉,希望大家多加指正。
点击获取DevExpress最新版
如何实现Winform开发的简单化开发
由于Winform开发业务的日益复杂化,我们往往需要花费很多精力来做一些基础性的东西,虽然逻辑很简单,但是一些繁琐性的工作却很难避免,那么我们平时进行Winform开发的时候,如何才能实现Winform开发中的简化处理呢?
首先我们通过模块化来切分大项目的复杂度,然后再次进行类继承的方式减少类级别的代码,重用基类特性。
前面我们介绍采用了一些模块化的方式来组装项目,可以简单的理解为积木组合的方式。如权限管理模块、字典管理模块、自动更新模块、人员管理模块、通讯录管理模块、分页控件、公用类库等方面,这些可以在项目中根据情况采用对应的模块,非常高效,整个主体框架也有对应接入这些模块的案例代码供参考,因此可以更加直观明了。
而另一方面,我们在对类的重用方面,也是精益求精,尽量做到精简重复代码,提高开发效率的目的。
界面类提供封装继承,减少界面的一些繁琐设置。
界面通过基类的封装处理,我们可以把大多数通用的处理或者逻辑调用顺序进行封装,子类实现一些特殊的函数即可,同时可以统一调用基类的处理操作。
我们以常规业务模块界面来分析,主要有明细查看或编辑界面、列表界面,那么这些界面为了方便使用,我们可以抽象一部分界面处理逻辑或者共有部分内容,放在界面基类BaseEdit或者BaseDock等基类里面,如下界面所示。
基础业务类,我们同样也是采用重用基类方式,实现接口函数的封装处理。
以及业务类继承关系,当然还有其他更多的,基本上都提供一些基类来处理,简化代码。
Web API的控制器设计对象继承关系,如下所示:
除了这些基础性的代码级别的简化外,我们更高层次的简化,可以通过数据库=》代码生成的方式简化处理,通过数据库信息,我们可以进一步生成我们应用业务的相关类或者界面部分,从而可以快速提高开发效率。
如对于普通的Winform界面项目,利用代码生成工具Database2Sharp,我们生成后的项目结构视图如下所示。
而对于混合框架方案的项目,我们生成的界面项目结构视图如下所示。
对于Winform开发,可以根据Winform框架或者混合框架的窗体界面类,生成标准的界面代码,列表界面默认具有分页查询、导入导出、高级查询、编辑、删除事件绑定,编辑界面则具有获取数据并显示在控件,保存后执行更新或者写入的操作。
如在代码生成工具里面,设置主从表的界面生成如下所示。
生成的标准的主从表界面如下界面所示。
通过框架项目定制化的代码生成工具,可以快速的生成我们所需要的相关分层的代码,并继承好相关的类关系,以及标准调用代码,可以极大提高我们应用模块的开发速度,而且由于利用通过检验的标准件,开发出来的模块,除了快速外,也是健壮的。
另外们把常规的列表界面,新增、编辑、查看、导入等界面放在一起,除了列表页面,其他内容以弹出层对话框的方式进行处理,如下界面示意所示。
DevExpress | 下载试用
DevExpress Universal 10月正式发布今年第二个重大版本——v21.2,此版本正式官宣支持Visual Studio 2022 & .NET6,同时与微软最新发布的Windows 11完美兼容,全面解决用户各种使用场景问题。 与时俱进,从未止步!
本文转载自:博客园 - 伍华聪
DevExpress技术交流群5:742234706 欢迎一起进群讨论
更多DevExpress线上公开课、中文教程资讯请上中文网获取
WinForm框架开发教程 - 如何实现简单化开发?相关推荐
- Android项目驱动式开发教程 第2版,《Android项目驱动式开发教程》第一章开发入门.ppt...
<Android项目驱动式开发教程>第一章开发入门 1.4 项目框架分析 4 android:versionName="1.0" > 5 8 第9行代码andro ...
- pythoncad二次开发视频_revit二次开发|bim软件二次开发|revit二次开发教程|Revit二次开发技术文档...
二次开发 revit二次开发|bim软件二次开发|revit二次开发教程|Revit二次开发技术文档2019-07-08赞( 0 ) 记录一下CAD二次开发的一些简单实例. 1.helloworld ...
- AutoCAD 开发文档,AutoLISP 教程,.Net AutoCAD开发教程,VB AutoCAD开发教程,ObjectARX 开发指南,VBA AutoCAD开发教程,ActiveX 开发指南
AutoCAD 开发文档, CAD开发者社区 - AutoCAD二次开发文档,CAD二次开发,CAD插件开发,中文CAD文档 - 中文CAD开发文档,CAD二次开发问题交流,优秀插件分享 AutoLI ...
- python web 开发教程下载_Python Web开发从入门到精通
Python Web开发从入门到精通循序渐进地讲解了Python Web开发的核心知识,并通过具体实例的实现过程演示了Web开发程序的流程.Python Web开发从入门到精通共15章,内容包括Pyt ...
- python做exe开发教程_python做exe开发教程
python做exe开发教程内容摘要 python做exe开发教程其他方法无效时可用免疫抑制剂,交通部监理员教程证,6.客户端的异常测试.6.机费用械性能(1)抗拉试验:酒店入职教程内容,6.9l-8 ...
- php7扩展开发教程,Laravel 7 扩展开发教程
下面由Laravel入门教程栏目给大家介绍Laravel 7 扩展开发教程,希望对需要的朋友有所帮助! 步骤 1. 创建一个新项目 我更喜欢使用 Laravel 安装程序.laravel new la ...
- MP地面站二次开发教程(一)开发环境搭建和编译
目录 基于Mavlink的上位机地面站开发教程 第一节 开发环境搭建 1.预编译 (源码尽量放到非中文目录下面) 2.初次编译 3.删除这个speech引用,重新引用这个speech包(每个人的环 ...
- Android开发教程PDF,安卓开发教程PDF免费版
2019独角兽企业重金招聘Python工程师标准>>> Android开发教程(完全免费版).pdf 某500强android的内部学习资料.pdf Cocos2d-x高级开发教程. ...
- 树莓派python开发教程_树莓派Raspberry开发从基础到进阶视频+设计资料超详细教程下载...
课程内容 [初级篇]重点推荐:树莓派开发实战视频教程+文档教程(含源码) 课程目录 教学视频与源代码 1.[进阶篇]Raspberry详细视频教程 树莓派基础 安装树莓派的操作系统 远程登录和使用树莓 ...
- python爬虫开发环境_python爬虫开发教程下载|Python爬虫开发与项目实战(范传辉 著)pdf 完整版_ - 极光下载站...
Python爬虫开发与项目实战pdf扫描版下载.Python爬虫开发是一个Pthyon编程语言与HTML基础知识引领读者入门知识,重点讲述了云计算的相关内容及其在爬虫中的应用,进而介绍如何设计自己的爬 ...
最新文章
- Linux 应用程序 嵌汇编,Linux下C语言嵌汇编
- Linux远程远程控制程序TeamViewer
- UVA 11292 The Dragon of 贪心
- vimrc 配置 史上最牛
- 【机器学习基础】机器学习小抄.pdf(像背托福单词一样理解机器学习)
- Python自动化测试框架有哪些?
- Class的getInterfaces与getGenericInterface区别
- MyCat分布式数据库集群架构工作笔记0007---Mycat登录
- 对象序列化时候无法创建类似如此(king:astar)的元素名
- Entity Framework 4.1 CodeFirst实例
- python结巴分词_Python中文分词工具之结巴分词用法实例总结【经典案例】
- 【笔记】运筹(下)——Rita_Aloha
- 手机steam未能连接到服务器1004,steam与服务器连接失败
- php 厘米转为英寸,将cm换算为in (厘米换算为英寸)
- MP1655GG-Z MPS/美国芯源 MOSFET 的开关模式转换器 资源 方案
- 计算机网络实验一总结(基于packet tracer)
- Tensorflow Keras中的masking与padding的学习笔记
- AjaxPro.2.dll基本使用
- 【小米商城】--类别展示,登出,注销商品详情展示
- [NFC]NDEF和RTD协议介绍
热门文章
- 哨兵1号(sentinel 1)数据各参数介绍
- ubuntu 安装log4cpp
- Ubuntu视频教程
- 如何用猿大师播放器把海康威视硬盘录像机截取MP4视频在web页面上回放?支持本地和远程视频吗?
- EasyUI 1.5.x Of Insdep Theme 1.0.0 RC1 美化主题大包已发布
- Windows每月更新补丁离线安装包下载
- 备考数据库系统工程师的那些时光,程序员的梦想依然发烫。
- Unity3D开发之VideoPlayer
- 让我们准备祭奠小米帝国
- 【读书笔记-数据挖掘概念与技术】数据仓库与联机分析处理(OLAP)