Ligg.EasyWinApp-100-Ligg.EasyWinForm:一款Winform应用编程框架和UI库介绍

本项目是一个Winform应用编程框架和UI库。通过这个该框架,不需任何代码,通过XML配置文件,搭建任意复杂的Windows应用界面,以类似Execel公式的方式实现基本的过程控制(赋值、条件判断、循环、跳转)和功能(字符处理、文件处理、Windows脚本执行、逻辑运算、数学运算、数据输入输出-支持StringJonsonDataTable类型的数据);动态加载即插即用.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:启动:传入参数、验证密码、软件封面、启动登录、ReleaseFormDebugForm

Ligg.EasyWinFormApplication

Ligg.EasyWinFormFunction: menutrayControlBox

Ligg.EasyWinFormView

Ligg.EasyWinFormProcedure

Ligg.EasyWinFormZone

Ligg.EasyWinFormControl StyleClassStyleText

Ligg.EasyWinFormResolveConstant, GetTextAction

Ligg.EasyWinForm:各控件介绍

Ligg.EasyWinForm:控件字段验证

Ligg.EasyWinForm:支持多语言

Ligg.EasyWinForm:支持多线程

Ligg.EasyWinForm:如何调试和发布

Ligg.EasyWinForm:与Windows域帐号集成实现SSO

Ligg. EasyWinForm即插即用“.Net组件---核心业务逻辑处理组件(CBLP)组件

Ligg.EasyWinFormCBLP组件与数据库接口(MySQL/MSSQL

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

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

原文地址:https://www.cnblogs.com/liggin2019/p/11824064.html

时间: 2024-10-18 10:00:38

Ligg.EasyWinApp-100-Ligg.EasyWinForm:一款Winform应用编程框架和UI库介绍的相关文章

Ligg.EasyWinApp: 一款WIndows应用编程框架介绍

本解决方案是一个Windows应用编程框架和UI库,包括四个项目: Ligg.EasyWinForm是一个Winform应用编程框架和UI库.通过这个该框架,不需任何代码,通过XML配置文件,搭建任意复杂的Windows应用界面,以类似Execel公式的方式实现基本的过程控制(赋值.条件判断.循环.跳转)和功能(字符处理.文件处理.Windows脚本执行.逻辑运算.数学运算.数据输入输出-支持String.Jonson.DataTable类型的数据):动态加载“即插即用“的.Net组件或COM组

27款经典的CSS框架

利用 CSS 框架,可以简化你的工作,提高工作效率.CSS 框架是一系列 CSS 文件的集合体,包含了基本的元素重置,页面排版.网格布局.表单样式.通用规则等代码块.下面给你推荐了27款优秀的CSS框架,你可以选用. 1. 960gs 960 像素的页面宽度似乎成为了一种设计标准,在当前各种分辨率下,能够很好地展现网页内容.提供较为常用的尺寸来简化网页设计过程,使工作简单高效. 2. YUI 2: Grids CSS 芒果曾经介绍过由雅虎开发小组推出的 YUI,而这个 YUI Grids CSS

学iOS开发(一)——实现一款App之Foundation框架的使用

当你着手为你的应用编写代码的时候,你会发现有许多可供使用的Objective-C的框架类,其中尤其重要的就是基础框架类,它为平台所有的应用提供基础服务.基础框架类中包括了表示字符串和数字等基本数据类型的值类(value classes),也有用来存储其他对象的集合类(collection classes).你将会依赖值类和集合类为你的ToDoList app编写大量代码. 值对象(Value Objects) Foundation框架提供了生成字符串.二进制数据.日期和时间.数字以及其他值对象的

winform网络编程(二)

mnesia在频繁操作数据的过程可能会报错:** WARNING ** Mnesia is overloaded: {dump_log, write_threshold},可以看出,mnesia应该是过载了.这个警告在mnesia dump操作会发生这个问题,表类型为disc_only_copies .disc_copies都可能会发生. 如何重现这个问题,例子的场景是多个进程同时在不断地mnesia:dirty_write/2 mnesia过载分析 1.抛出警告是在mnesia 增加dump

Winform开发全套31个UI组件开源共享[转]

一.前言 这套UI库是上一个公司(好几年前了)完成的.当时主要为开发公司内部ERP系统,重新设计实现了所有用到的Winform组建,包括Form窗体组建6个(支持换肤),基础控件25个.其中有很多参考借鉴其他开源组件,也有几个是集成的别人的组件,然后做了些调整. 现在已经好几年不做Winform开发了,整理一下共享出来,希望能够给需要的朋友一些帮助.在Win8.win10上运行是没有什么大的问题的,好像有写重绘的小bug,应该是个很容易解决的问题,没有继续深究它了. 二.Form窗体组件 2.1

WinForm多线程编程与Control.Invoke的应用浅谈

在WinForm开发中,我们通常不希望当窗体上点了某个按钮执行某个业务的时候,窗体就被卡死了,直到该业务执行完毕后才缓过来.一个最直接的方法便是使用多线程.多线程编程的方式在WinForm开发中必不可少. 本文介绍在WinForm开发中如何使用多线程,以及在线程中如何通过Control.Invoke方法返回窗体主线程执行相关操作. -. WinForm多线程编程 1. new Thread() 新开一个线程,执行一个方法,没有参数传递 private void DoWork() { Thread

c# winform编程之多线程ui界面资源修改总结篇

单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello World!";就搞定了,但是如果在一个新线程中这么做,比如: private void btnSet_Click(object sender, EventArgs e) {        Thread t = new Thread(new ParameterizedThreadStart(SetTextBoxValue));     //当然也可以用匿名委托

winform网络编程(三)

TcpClient类和TcpListener类 (1)TcpClient的用途: 用于在同步阻止模式下通过网络来链接.发送和接受流数据,在此情况下,必须有侦听此连接的请求,而侦听的任务就交给TcpListener实例或Socket实例 (2)TcpClient的两种方法连接到侦听器 第一种:创建一个TcpClient,并调用3个可用的Connect方法之一 第二种:使用远程主机的主机名和端口号创建TcpClient,此构造函数将自动尝试一个连接 (3)TcpClient的常用属性和方法 Avai

7款Android开发者常用的Android UI组件

7款Android开发者常用的Android UI组件 原文  http://news.cnblogs.com/n/506366/ Android 开发是目前最热门的移动开发技术之一,随着开发者的不断努力和 Android 社区的进步,Android 开发技术已经日趋成熟,当然,在 Android 开源社区中也涌现了很多不错的开源 UI 项目,它们可以帮助 Android 开发者更方便快捷地完成想要的功能.本文是 Android 系列的第一篇,主要是向大家推荐一些常用的 Android UI 组