代码生成工具更新--快速生成Winform框架的界面项目
在之前版本的代码生成工具Database2Sharp中,由于代码生成都是考虑Winform和Web通用的目的,因此Winform界面或者Web界面都是单独生成的,在工具中生成相应的界面后,复制到项目里面去使用即可。由于我们Winform的界面是模块化的方式独立开发,因此对某些表来说,我们可以独立开发模块,那么它的Winform窗体界面也应该是在独立的项目上,开发完毕后,我们在主体框架里面通过菜单动态配置即可加入到系统中使用的。
1、框架插件化回顾
在Winform开发框架的程序中,实现基于插件化的应用,如下所示。

通过在权限系统中的预先的配置,独立模块的窗体可以进行动态加载解析,就能实现插件模块的热插拔功能了。实际插件化框架的菜单配置界面效果如下所示。

下图是菜单管理里面的 “Winform窗体类型” 信息的具体内容。

通过动态的配置,可以实现模块的独立开发,动态整合的插件化特性,非常适合我们企业的分工开发,从而提高开发效率。
2、快速生成Winform框架的界面项目
前面我们介绍了,通过模块化的独立来发,动态整合,可以提高开发效率。
其实就是我们对大型项目的横向切割,把大型项目分为各个独立的模块,给不同的开发人员或者团队进行开发,可以极大提高效率,也减少对某个人的过度依赖,也同时可以极大提高开发效率。
在实际使用中,一些客户就提出其实模块化的Winform界面项目可以使用代码生成工具一键生成,和其他模块一样,选定数据库后生成项目一并生成,这样可以更加人性化,减少创建空白界面项目,然后引入所需DLL和文件引用等操作0所花费的时间。
如一般我们创建一个基于DevExpress的空白项目过程是这样的。
先准备创建一个基于DevExpress的模板项目

接着就是选择一个空白的DevExpress项目,这样可以在创建项目的时候,包含一些基础的DevExpress应用,减少我们后续引用DLL的工作。

然后就可以看到生成空白的窗体项目如下所示。

这样离我们开发独立的模块界面项目,还是有很多工作要做,如还需要引入额外的DevExpress所需的DLL,引入框架支持的相关DLL,另外还有一些业务逻辑层和数据访问层等类文件需要包含进去(这么做是减少文件太多的依赖,一个UIDx程序集或者ClientDx程序集就可以了)。
如果我们能够在生成其他项目工程的时候,一并生成该模块的UI项目就可以减少这部分的时间花费,要知道我们开发人员的时间也是很宝贵的,只应该花在有意义,有深度的地方。
如对于普通的Winform界面项目,我们生成后的项目结构视图如下所示。

而对于混合框架方案的项目,我们生成的界面项目结构视图如下所示。

这样就是我们最终要做的视图,一键就可以快速生成了,包含了相关的DLL应用,也包含了一些所需的文件应用,省却了很多繁琐的处理过程。

下面我们可以回顾下两种不同框架的架构分层图示。
普通Winform框架的分层架构图。

我们在Winform开发框架、混合式开发框架、Web开发框架等各种开发框架,底层都是支持多种数据库的,如MS SQLServer、Oracle、MySQL、SQLite、PostgreSQL等等,如下图所示。

混合框架的多种方式支持


混合框架的分层架构图

主要研究技术:代码生成工具、会员管理系统、客户关系管理软件、病人资料管理软件、Visio二次开发、酒店管理系统、仓库管理系统等共享软件开发专注于Winform开发框架/混合式开发框架、Web开发框架、Bootstrap开发框架、微信门户开发框架的研究及应用。
转载请注明出处:
撰写人:伍华聪 http://www.iqidi.com 代码生成工具更新--快速生成Winform框架的界面项目的更多相关文章
- C#反射实现 C# 反射 判断类的延伸类型 使用代码生成工具Database2Sharp快速生成工作流模块控制器和视图代码 C# ADO.NET的SqlDataReader对象,判断是否包含指定字段 页面中添加锚点的几种方式 .net 简单实用Log4net(多个日志配置文件) C# 常用小点
C#反射实现 一.反射概念: 1.概念: 反射,通俗的讲就是我们在只知道一个对象的内部而不了解内部结构的情况下,通过反射这个技术可以使我们明确这个对象的内部实现. 在.NET中,反射是重要的机制, ...
- 使用代码生成工具Database2Sharp快速生成工作流模块控制器和视图代码
在前面随笔<基于Metronic的Bootstrap开发框架--工作流模块功能介绍>和<基于Metronic的Bootstrap开发框架--工作流模块功能介绍(2)>中介绍了B ...
- 基于HttpRunner,解析swagger数据,快速生成接口测试框架
使用HttpRunner默认生成的项目是这样的 命令:httprunner --startproject 项目名称 so,根据这个项目的目录结构,使用python解析swagger接口参数,可以快速 ...
- 开源工具 DotnetRSA 快速生成和转换RSA秘钥
一.简介 DotnetRSA 是一个利用 .NET Core 2.1 开发的 .NET Global Tool,是可以想npm全局安装一样,安装在你的系统中,只需敲一行命令便可以快速生成RSA加密算法 ...
- 快速搭建SSM框架环境开发项目【配置】
maven在线仓库https://mvnrepository.com/ maven构建项目 pom.xml <project xmlns="http://maven.apache.or ...
- Web API应用架构在Winform混合框架中的应用(4)--利用代码生成工具快速开发整套应用
前面几篇介绍了Web API的基础信息,以及如何基于混合框架的方式在WInform界面里面整合了Web API的接入方式,虽然我们看似调用过程比较复杂,但是基于整个框架的支持和考虑,我们提供了代码生成 ...
- 利用代码生成工具生成基于ABP框架的代码
在前面随笔,我介绍了整个ABP优化过框架的分层模型,包括尽量简化整个ABP框架的各个层的关系,以及纳入一些基类的辅助处理,使得我们对应业务分层类或者接口尽可能减少代码,并具有生产环境所需要的基类接口, ...
- 使用代码生成工具快速开发ABP框架项目
在一般系统开发中,我们一般要借助于高度定制化的代码生成工具,用于统一代码风,节省开发时间,提高开发效率.不同的项目,它的项目不同分层的基类定义不同,我们需要在框架基类的基础上扩展我们的业务类代码,尽量 ...
- 代码生成工具Database2Sharp中增加视图的代码生成以及主从表界面生成功能
在代码生成工具的各种功能规划中,我们一向以客户的需求作为驱动,因此也会根据需要增加一些特殊的功能或者处理.在实际的开发中,虽然我们一般以具体的表进行具体业务开发,但是有些客户提出有时候视图开发也是很常 ...
随机推荐
- Go语言嵌入类型
一.什么是嵌入类型 先看如下代码: type user struct { name string email string } type admin struct { user // Embedded ...
- 数据分析---《Python for Data Analysis》学习笔记【01】
<Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...
- Codeforces 1079C Playing Piano(记忆化搜索)
题目链接:Playing Piano 题意:给定长度为n的序列$a_i$,要求得到同样长度的序列$b_i$.满足一下条件: if $a_i < a_{i+1}$ then $b_i < b ...
- Mac spotlight无法搜索的解决方法
出现问题: 1. 在打开spotlight快速搜索的时候输入两个字符,后该搜索框自动会消失,很是奇怪重启等操作也没有效果 问题原因: 可能因为之前因为耗电原因关闭的全局搜索的索引,或者由于索引出现错误 ...
- 深入理解JVM(1)——栈和局部变量操作指令
将常量压入栈的指令 aconst_null 将null对象引用压入栈iconst_m1 将int类型常量-1压入栈iconst_0 将int类型常量0压入栈iconst_1 将int类型常量1压入栈i ...
- 分布式监控系统开发【day38】:报警策略队列处理(五)
一.目录结构 二.报警策略队列处理 1.入口MonitorServer import os import sys if __name__ == "__main__": os.env ...
- python django初识ajax
什么是json json是轻量级文本数据交互格式 json独立语言 符合的json对象 ["one", "two", "three"] { ...
- JS的基础知识回顾
前言:JS应用在浏览器端,基于浏览器事件执行,功能十分强大,不容错过
- 点评cat系列-简介
面上有很多优秀的 OS 级监控系统 (比如 falcon), 这些监控系统主要聚焦在 CPU/IO/Mem/Disk 和应用端口, falcon 甚至可以监控到 JVM. 但对于应用系统内部的一些监控 ...
- 数据结构Java实现03----栈:顺序栈和链式堆栈
一.堆栈的基本概念: 堆栈(也简称作栈)是一种特殊的线性表,堆栈的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置进行插入和删除操作,而堆栈只允许在固定一端进行插入和删除 ...