zoukankan      html  css  js  c++  java
  • 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标准协议)

  • 相关阅读:
    pipelinewise 学习二 创建一个简单的pipeline
    pipelinewise 学习一 docker方式安装
    Supercharging your ETL with Airflow and Singer
    ubuntu中使用 alien安装rpm包
    PipelineWise illustrates the power of Singer
    pipelinewise 基于singer 指南的的数据pipeline 工具
    关于singer elt 的几篇很不错的文章
    npkill 一个方便的npm 包清理工具
    kuma docker-compose 环境试用
    kuma 学习四 策略
  • 原文地址:https://www.cnblogs.com/liggin2019/p/11824064.html
Copyright © 2011-2022 走看看