Ligg.EasyWinApp-100-Ligg.EasyWinForm:一款Winform应用编程框架和UI库介绍
本项目是一个Winform应用编程框架和UI库。通过这个该框架,不需任何代码,通过XML配置文件,搭建任意复杂的Windows应用界面,以类似Execel公式的方式实现基本的过程控制(赋值、条件判断、循环、跳转)和功能(字符/文件处理、Windows脚本执行、逻辑运算、数学运算、数据输入输出及输入验证、数据格式转换、加密解密、表单字段验证等);动态加载“即插即用“的核心业务处理动态链接库(CBLP Dll)实现特定的业务处理功能;支持多线程、多语言。
程序启动运行示意图:

**备注:SeqExec.exe是一个用C编写的.net程序的启动程序,用于检测.net版本并安装指定的版本,然后运行主执行程序并传递参数。(代码和示例详见:https://www.github.com/liggin2019/Ligg.SeqExec)
说明:
Application(应用):一个应用,对应一个CBLP.dll。例如,如果都是基于本框架, ERP、HR、CRM各是一个应用;在本人即将开源的应用项目里,企业网盘、Windows运维自动化、电脑工具箱各是一个应用。
Function(功能):一个应用的功能界面,一个应用对应多个Function(功能);如某应用可分为管理员界面、用户界面。
View(视图):一个Function(功能)对应多个View(视图),本框架用View(视图)实现多窗体(MDI)的效果。 一个View(视图)由多个Area(域)组成,Area(域)是Form上在不同位置的一个Panel。。
PublicView(公共视图)是总是显示(不会被隐藏)的View(视图),其他View(视图)如果不是当前View(视图),会被隐藏。
Zone(区):可以看成是一个表单,一个View(视图)里面有多个Zone(区),Area是Zone(区)的容器,Zone(区)里面包含多个控件和Transaction Items。每个Zone(区)是一个独立作业单元(IEU),可以单独组成一个View(视图)独立运行,或者是以模态(Dialog)的方式弹出对话框。
Process/Procedures(过程):一个过程控制的配置文件,实现赋值、条件判断、循环、跳转等,分为Function(功能)级别和Zone(区)级别;Procedure(过程)有以下类型,见下图。

启动运行步骤:
步骤1:运行启动程序SeqExec.exe>>传参>>运行.\Clients\Form\Run.exe
步骤2:读取Application级别配置文件>>设置Culture和当前/缺省语言>>验证启动密码>>其他验证>>启动登录>>显示软件封面>>创建StartForm的实例>>初始化CBLP.dll
步骤3:读取Function级别配置文件>>确定FunctionForm样式/风格>>初始化FunctionForm
步骤4:读取PublicView配置文件>>初始化PublicView
步骤5:读取PublicView包含的各个Zone配置文件>>初始化Zones
步骤6:读取首个View配置文件>>初始化View
步骤7:读取首个View包含的各个Zone的配置文件>>初始化Zones
下面将分几个章节来介绍设计思路和分析源码:
请先在Github fork我们的项目(https://github.com/liggin2019/ligg.EasyWinApp)并下载Src、Debug和Release文件夹, 开发环境:VS 2017,.NET Framework 4.6.01586
LiggEasyWinApp-102-Ligg.EasyWinForm:Function--ControlBox、Tray、Resize、Menu
LiggEasyWinApp-103-Ligg.EasyWinForm:View
LiggEasyWinApp-104-Ligg.EasyWinForm:Procedure
LiggEasyWinApp-105-Ligg.EasyWinForm:Zone
LiggEasyWinApp-106-Ligg.EasyWinForm:Control、 StyleClass、StyleText
LiggEasyWinApp-107-Ligg.EasyWinForm:ResolveConstant, GetText、Action
LiggEasyWinApp-108-Ligg.EasyWinForm:各控件介绍
LiggEasyWinApp-109-Ligg.EasyWinForm:控件字段验证
LiggEasyWinApp-110-Ligg.EasyWinForm:支持多语言
LiggEasyWinApp-111-Ligg.EasyWinForm:支持多线程
LiggEasyWinApp-112-Ligg.EasyWinForm:如何调试和发布
LiggEasyWinApp-113-Ligg.EasyWinForm:与Windows域帐号集成实现SSO
LiggEasyWinApp-114-Ligg. EasyWinForm:“即插即用“.Net组件---核心业务逻辑处理组件(CBLP)组件
LiggEasyWinApp-115Ligg.EasyWinForm:CBLP组件与数据库接口(MySQL/MSSQL)
LiggEasyWinApp-116-Ligg.EasyWinForm:CBLP组件与服务器端接口(WCF/RESTful)
LiggEasyWinApp-117Ligg.EasyWinForm:CBLP组件与嵌入式设备接口(基于OPC标准协议)
Ligg.EasyWinApp-100-Ligg.EasyWinForm:一款Winform应用编程框架和UI库介绍的更多相关文章
- Ligg.EasyWinApp-000: 一款Windows应用编程框架介绍
本框架(解决方案)是一个Windows应用编程框架和UI库,通过该框架,不需任何代码,通过XML配置文件,搭建任意复杂的Windows应用界面,以类似Execel公式的方式实现基本的过程控制( ...
- 介绍一款倍受欢迎的.NET 开源UI库
概述 今天要带大家了解的是一款WPF的开源控件库MahApps.Metro.MahApps.Metro是用于创建现代WPF应用程序的工具包,它许多开箱即用的好东西. 目前支持的NET Framewor ...
- vue下超级滚动条perfect-scrollbar(在特定框架里使用一款并非为该框架定制的库/插件)
点我查看
- GitHub上排名前100的iOS开源库介绍(来自github)
主要对当前 GitHub 排名前 100 的项目做一个简单的简介,方便初学者快速了解到当前 Objective-C 在 GitHub 的情况. 若有任何疑问可通过微博@李锦发联系我 项目名称 项目信息 ...
- GitHub上排名前100的Android开源库介绍
GitHub上排名前100的Android开源库介绍 文章来源: http://www.open-open.com/news/view/1587067#6734290-qzone-1-31660-bf ...
- 浅述WinForm多线程编程与Control.Invoke的应用
VS2008.C#3.0在WinForm开发中,我们通常不希望当窗体上点了某个按钮执行某个业务的时候,窗体就被卡死了,直到该业务执行完毕后才缓过来.一个最直接的方法便是使用多线程.多线程编程的方式在W ...
- WinForm多线程编程简单Demo
需要搭建一个可以监控报告生成的CS(WinForm)工具,即CS不断Run,执行获取数据生成报告,经过研究和实践,选择了使用"WinForm多线程编程"的解决方案.当然参考了园中相 ...
- LiteHttp:一款‘智能’的HTTP框架类库
LiteHttp:一款‘智能’的HTTP框架类库(转自github) 简介 LiteHttp是一款简单.智能.灵活的HTTP框架库,它在请求和响应层面做到了全自动构建和解析,主要用于Android快速 ...
- 推荐10款优秀的JavaScript Web UI库 框架和套件
在进行Web开发时,并非所有的库都适合你的项目,但真正开发的时候,你任然需要依赖一款UI框架.特别在你时间紧迫的时候,它是你忠实的朋友. 他们都是些广泛使用包含不同语言实现的WEB UI框架.今天我就 ...
随机推荐
- iOS13暂时关闭黑暗模式+应用内状态栏无法显示问题解决办法
现象: iOS13黑暗模式开启后,app显示会出现很多意外显示情况.暂时屏蔽是最好的选择.当开启黑暗模式,且在项目的target对应的info.plist中添加以下设置时(禁用黑暗模式): <k ...
- js2——定时跳转
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 【读一本书】《昇腾AI处理器架构与编程》--神经网络基础知识(2)
1 卷积神经网络:输入层 之前提到多层感知机的参数太多,导致训练耗时长并且对图像处理也不具有优势,因此大神们 就提出了多层神经网络,其中最经典的是卷积神经网络(Convolution Neural N ...
- 漫谈边缘计算(三):5G的好拍档
边缘计算的热度迅速攀升,还有一个不得不提的因素,就是5G的发展. [5G推动云计算从集中化向分布式演进] 在第一篇文章(<漫谈边缘计算(一):边缘计算是大势所趋>)中我提到,传统的云计算技 ...
- 前后台分离的 NET Core 通用权限管理系统
前言 从事软件开发这个行业现在已经有十几年了,项目无论大小权限认证.授权模块总是或多或少有功能需求的,这一块费时费力但是又存在于后台,使用最多的可能是运维人员所以处于出力不讨好的尴尬地位,每次有新的项 ...
- Nacos集群配置实例(windows下测试)
1.首先 fork 一份 nacos 的代码到自己的 github 库,然后把代码 clone 到本地. git地址:https://github.com/alibaba/nacos.git 2.然后 ...
- JNI用法小例子
一.准备包含本地方法的.java文件(ContentVideo.java),包括set()和get()两个方法. public class ContentVideo { public native s ...
- python实现十大核心算法(桶排没实例)
# author:sevenduke # 2019-06-11 # 一.交换排序 # 排序算法的温故:冒泡排序 def dubblesort(arr): for i in range(0, len(a ...
- HDU-3577-------Fast Arrrangement
Chinese always have the railway tickets problem because of its' huge amount of passangers and statio ...
- 通过Centreon监控apache、MySQL、Hadoop服务状态
在上面的章节中,只是简单介绍了Centreon的几个基础监控项,例如添加主机.服务等,这些对于一个监控系统来说是远远不够的,本节将重点介绍对一些扩展服务的监控,也就是对一些常见应用的监控. 一. Na ...