• 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。例如,如果都是基于本框架, ERPHRCRM各是一个应用;在本人即将开源的应用项目里,企业网盘、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>>传参>>运行.ClientsFormRun.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、DebugRelease文件夹,  开发环境:VS 2017,.NET Framework 4.6.01586

     

    Ligg.EasyWinApp-101-Ligg.EasyWinFormApplication--启动,传入参数、读取Application级别配置文件、验证密码、软件封面、启动登录、StartForm

    LiggEasyWinApp-102-Ligg.EasyWinFormFunction--ControlBox、Tray、Resize、Menu

    LiggEasyWinApp-103-Ligg.EasyWinFormView

    LiggEasyWinApp-104-Ligg.EasyWinFormProcedure

    LiggEasyWinApp-105-Ligg.EasyWinFormZone

    LiggEasyWinApp-106-Ligg.EasyWinFormControl StyleClassStyleText

    LiggEasyWinApp-107-Ligg.EasyWinFormResolveConstant, GetTextAction

    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.EasyWinFormCBLP组件与数据库接口(MySQL/MSSQL

    LiggEasyWinApp-116-Ligg.EasyWinFormCBLP组件与服务器端接口(WCF/RESTful)

    LiggEasyWinApp-117Ligg.EasyWinFormCBLP组件与嵌入式设备接口(基于OPC标准协议)

  • 相关阅读:
    nginx&http 第二章 ngx 事件event处理 数据结构
    nginx&http 第二章 ngx启动多进程
    PF_PACKET抓包mmap
    PF_PACKET&&tcpdump
    tcpack--3快速确认模式- ack状态发送&清除
    tcpack---1简述
    tcpack--3快速确认模式
    tcpack--4延时ack
    linux tcp Nagle算法,TCP_NODELAY和TCP_CORK 转载
    tcpack----- 2sack dack
  • 原文地址:https://www.cnblogs.com/liggin2019/p/11824064.html
Copyright © 2020-2023  润新知