本项目是一个Winform应用编程框架和UI库。通过这个该框架,不需任何代码,通过XML配置文件,搭建任意复杂的Windows应用界面,以类似Execel公式的方式实现基本的过程控制(赋值、条件判断、循环、跳转)和功能(字符处理、文件处理、Windows脚本执行、逻辑运算、数学运算、数据输入输出-支持String、Jonson、DataTable类型的数据);动态加载“即插即用“的.Net组件实现特定的业务处理功能;支持多线程、多语言。
程序启动运行示意图:
**说明:SeqExec.exe是一个用C编写的.net程序的启动程序,用于检测.net版本并安装指定的版本,然后运行主执行程序并传递参数。(代码和示例详见:https://www.github.com/liggin2019/Ligg.SeqExec)
说明:
Application:一个应用,对应一个CBLP.dll
Function:一个应用的功能界面,一个应用对应多个Function;如某应用可分为管理员界面、用户界面。
View:一个Function对应多个View,本框架用View实现多窗体(MDI)的效果。 一个View由多个Area组成,Area是在不同Region上的非连贯的区域(Panel)的集合,即Region是Area的容器;Region是Section上一个连贯的区域(Panel), 即Section是Region的容器;Section是FunctionForm的一个横跨窗体的连贯的区域(Panel, Dock =System.Windows.Forms.DockStyle.Top/Down)。
PublicView是总是显示(不会被隐藏)的View,其他View如果不是当前View,会被隐藏。
Zone:可以看成是一个表单,一个View里面有多个Zone(Panel),Area是Zone的容器,Zone里面包含多个控件和Transaction Items。每个Zone是一个独立自信单元(IEU),可以单独组成一个View独立运行,或者是以模态(Dialog)的方式弹出对话框。
Procedures:一个过程控制的配置文件,实现赋值、条件判断、循环、跳转等,分为function级别和Zone级别;Procedure有以下类型,见下图。
启动运行步骤:
步骤1:运行启动程序SeqExec.exe》传参>>运行.WinForm\Ui.exe
步骤2:读取Application级别配置文件》设置Culture和当前/缺省语言》验证启动密码》其他验证》启动登录》显示软件封面》创建 ReleaseForm的实例(调试阶段是DebugForm)》初始化CBLP.dll
步骤3:读取Function级别配置文件》确定FunctionForm样式/风格》初始化FunctionForm
步骤4:读取PublicView配置文件》初始化PublicView
步骤5:读取首个View配置文件》初始化View
步骤6:读取各个Zone的配置文件》初始化Zones
下面将分几个章节来介绍设计思路和分析源码:
Ligg.EasyWinForm:启动:传入参数、验证密码、软件封面、启动登录、ReleaseForm和DebugForm
Ligg.EasyWinForm:Application
Ligg.EasyWinForm:Function: menu、tray、ControlBox
Ligg.EasyWinForm:View
Ligg.EasyWinForm:Procedure
Ligg.EasyWinForm:Zone
Ligg.EasyWinForm:Control、 StyleClass、StyleText
Ligg.EasyWinForm:ResolveConstant, GetText、Action
Ligg.EasyWinForm:各控件介绍
Ligg.EasyWinForm:控件字段验证
Ligg.EasyWinForm:支持多语言
Ligg.EasyWinForm:支持多线程
Ligg.EasyWinForm:如何调试和发布
Ligg.EasyWinForm:与Windows域帐号集成实现SSO
Ligg. EasyWinForm:“即插即用“.Net组件---核心业务逻辑处理组件(CBLP)组件
Ligg.EasyWinForm:CBLP组件与数据库接口(MySQL/MSSQL)
Ligg.EasyWinForm:CBLP组件与服务器端接口(WCF/RESTful)
Ligg.EasyWinForm:CBLP组件与嵌入式设备接口(基于OPC标准协议)