在我们实际业务开发中,从头开发一个应用系统,不管是基于BS的前端项目,还是基于Winform的CS应用系统,都是由容易到复杂,逐步演化的一个开发过程,如果我们基于一定基础上,并配合一些配套的开发工具,那么这个应用系统的开发就会变得容易很多,毕竟现在每一个应用系统都是要求要五脏俱全的系统,不仅要长得漂亮,还要有内涵。对于一个基于CS模式的Winform应用系统,开发起来相对比较容易一些,依赖的东西的边界比较清晰一些,因此大多数可以使用独立、模块化的方式来开发系统。

1、Winform的应用系统的模块化场景

我们开发一个系统的时候,往往需要对各种资源进行各种处理,如硬件API接口(摄像头、读卡器、采集器等)、数据库访问(SQLServer、Oracle、Mysql、SQLite、PostgreSQL、MongoDB)、文件读写支持(XML、JSON、文本文件、图片等)、缓存处理(MemoCache、Redis等),以及第三方的一些接口支持(如微信支付、支付宝、抖音等),当然还有自己业务内部的接口支持,涉及的范围很大也很广,不过我们一般来说,一个系统的主要业务还是对数据库的存取进行处理,因此诞生了很多基于数据库业务的基础模块,如基于通用字典读取和设置的字典模块、权限管理模块等,这些应用模块,基本上是各个业务系统都需用到的,不同的系统,他们的规则和显示方式可能有所差异。

如下是一个基础Winform框架支持的一些模块图示。

如通用字典管理着整个系统的各种下拉列表或者参考信息。

权限管理模块则定义好整个组织机构、用户、角色、权限分配、菜单资源定义、字段权限、数据权限、黑白名单等配置信息。

权限模块中,是相对复杂一点的模块,其中还需要管理各级组织机构的信息。

权限管理系统模块,可以单独调用登陆后进行展示,也可以通过界面整合的方式,无缝的整合到应用系统中去,作为一个整体应用对待使用。

而工作流模块则管理着日常流程表单的处理。

业务模块则是基于我们某个业务范畴开发的一个独立模块,可能应用到了很多通用的模块,这个也是模块化的精髓。

如下是整合以上一些基础模块的CRM客户关系管理系统的内容,也可以简单的把CRM当成一个复杂一点的业务应用模块。

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

随着应用模块的不断开发,有一个好的组织架构,纵向统一管理模块中各个局部分层,会更加方便,因此引入了一个框架的设计模式,以便更好统一各个分层的管理。

Winform开发架构如下所示。

一般框架都支持常见的关系型数据库,并提供他们对应的支持切换。

另外,一方面,我们可以收集WInform开发中常常涉及到的界面控件使用,类库使用,常规组件使用等一系列的代码片段、难点疑点进行整合管理,整理一个综合的案例提供各种各样的开发测试案例代码,用来辅助开发学习了解。

以及一些杂项的内容收集。

力求在各个方面能够快速辅助系统的开发。

2、Winform的应用系统的开发

在我们实际不断的迭代开发中,往往会不断的累积出各个完善的应用模块出来,不过这个过程开发,可以基于我们的配套开发工具进行快速的开发,由于各个模块是基于相同的架构分层,以及对整套系统的一个固定的开发模式,我们可以采用代码生成工具来根据数据库信息,生成对应分层的项目代码,并把它们之间的关系处理好,生成一个完整的解决方案,生成即可编译通过的完善项目模块。

对于Winform界面来说,有时候,我们需要精细化的定义各种界面部分的内容,因此工具提供配置进行定义,然后再生成。

如在代码生成工具里面,设置主从表的界面生成如下所示。

有了系统框架的通用基础模块支持,以及基于固定架构的代码生成工具辅助开发,事半功倍,而且开发的系统模块更加统一和稳定,并且内置的支持多种数据库的接入, 基本上能够覆盖大多数应用系统的需要。

如何快速开发基于Winform的应用系统的更多相关文章

  1. SNF快速开发平台3.0之--系统里广播的作用--迅速及时、简明扼要的把信息发送给接收者

    广播信息,即速度快捷.迅速及时.简明扼要的把信息发送给接收者. 当然在SNF快速开发平台上你也可以作为公告使用.不管当做什么使用要满足以下需求: 简单操作:页面操作简单 只需要输入内容就可以发送. 灵 ...

  2. {VS2010C#}{WinForm}{ActiveX}VS2010C#开发基于WinForm的ActiveX控件

    在VS2010中使用C#开发基于WinForm的ActiveX控件 常见的一些ActiveX大部分是使用VB.Delphi.C++开发,使用C#开发ActiveX要解决下面三个问题: 使.NET组件可 ...

  3. 四、利用EnterpriseFrameWork快速开发基于WCF为中间件的三层结构系统

    回<[开源]EnterpriseFrameWork框架系列文章索引> EnterpriseFrameWork框架实例源代码下载: 实例下载 本章内容与上一张<利用Enterprise ...

  4. 分享一个全开源的ASP.NET快速开发平台,能快速开发OA CRM ERP 等系统

    bingo炸了 2017/3/30 16:28:14 阅读(870) 评论(0) 公司业务量比较大,接了很多项目,为了缩短开发周期老板让我牵头搭建了一个快速开发平台. 我们主要的业务是做OA.CRM. ...

  5. 五、利用EnterpriseFrameWork快速开发基于WebServices的接口

    回<[开源]EnterpriseFrameWork框架系列文章索引> EnterpriseFrameWork框架实例源代码下载: 实例下载 前面几章已完成EnterpriseFrameWo ...

  6. 快速开发基于 HTML5 网络拓扑图应用

    采用 HT 开发网络拓扑图非常容易,例如<入门手册>的第一个小例子麻雀虽小五脏俱全:http://www.hightopo.com/guide/guide/core/beginners/e ...

  7. 快速开发基于 HTML5 网络拓扑图应用--入门篇(一)

    计算机网络的拓扑结构是引用拓扑学中研究与大小,形状无关的点.线关系的方法.把网络中的计算机和通信设备抽象为一个点,把传输介质抽象为一条线,由点和线组成的几何图形就是计算机网络的拓扑结构.网络的拓扑结构 ...

  8. SSM整合开发——基于SSM的OA系统

    一.课程介绍 链接: https://pan.baidu.com/s/18B-lWfOUnKZPvuVEHY_NmQ 提取码: ky7t 复制这段内容后打开百度网盘手机App,操作更方便哦 需要 to ...

  9. 快速开发基于 HTML5 网络拓扑图应用1

    今天开始我们就从最基础解析如何构建 HTML5 Canvas 拓扑图应用,HT 内部封装了一个拓扑图形组件 ht.graph.GraphView(以下简称 GraphView)是 HT 框架中 2D ...

随机推荐

  1. python中面向对象VS面向过程

    面向过程编程:首先分析出解决问题所需要的步骤(即"第一步做什么,第二步做什么,第三步做什么"),然后用函数实现各个步骤,再依次调用. 面向对象编程:会将程序看作是一组对象的集合,用 ...

  2. 『德不孤』Pytest框架 — 5、Pytest失败重试

    Pytest失败重试就是,在执行一次测试脚本时,如果一个测试用例执行结果失败了,则重新执行该测试用例. 前提: Pytest测试框架失败重试需要下载pytest-rerunfailures插件. 安装 ...

  3. Java高频面试题70道

    1.作用域public,private,protected,以及不写时的区别? 答:区别如下: 作用域  当前类 同一packag 子孙类 其他package public √ √ √ √ prote ...

  4. 十一讲/十二讲 最近总是学不进去,这咋办啊 哭了我i我i我i

    0: 2,9,7      错错错 帽号回来是列表 1:好像一样?   错错错  不一样,list[0]是一个值,冒号回来是个列表 2:A.insert(0,A[-1]) del A[-1]      ...

  5. RFC3918组播转发时延测试——网络测试仪实操

    一.简介 1.RFC3918简介 历史 · 在1999年3月成为正式标准 功能 · 评测网络互连设备或网络系统的性能 · 网络设备: 交换机,路由器- 内容 · 定义了一整套测试方法,为不同厂家的设备 ...

  6. Django ORM 多表操作

    目录 Django ORM 多表操作 表模型 表关系 创建模型 逆向到表模型 插入数据 ORM 添加数据(添加外键) 一对多(外键 ForeignKey) 一对一 (OneToOneFeild) 多对 ...

  7. C# 成员访问修饰符protected internal等

    1.C#4个修饰符的权限修饰符 级别 适用成员 解释public 公开 类及类成员的修饰符 对访问成员没有级别限制private   私有 类成员的修饰符 只能在类的内部访问protected 受保护 ...

  8. 微信小程序获取经纬度所在城市

    小程序的wx.getLocation()获得是经纬度并不包含地名,所以要通过经纬度用相应的地图转换出地名(本文使用的是百度地图) // 获取坐标 onLoad: function (options)  ...

  9. 利用while循环写的简单小游戏猜数字

    猜数字的大小游戏 C:\Users\Administrator>python Python 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 23 2018, 23:31:1 ...

  10. 大学英语四级之听力Key Words

    Key Words关键词 所谓关键词,指的是短文中能够标志着正确答案的词,也就是说,关键词后面往往是正确答案 听力中的关键词可为宏观和微观两方面,一般出现在如下10种位置. 一.宏观方向(主旨大意) ...