CN109614084A - web程序及其快速开发框架、开发方法与相关设备 - Google Patents
web程序及其快速开发框架、开发方法与相关设备 Download PDFInfo
- Publication number
- CN109614084A CN109614084A CN201811244876.5A CN201811244876A CN109614084A CN 109614084 A CN109614084 A CN 109614084A CN 201811244876 A CN201811244876 A CN 201811244876A CN 109614084 A CN109614084 A CN 109614084A
- Authority
- CN
- China
- Prior art keywords
- module
- page
- web program
- data
- xml
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及web开发技术领域,具体涉及一种web程序及其快速开发框架、开发方法与相关设备,旨在提高web程序的开发效率。本发明的开发框架包括web程序生成模块、界面模块、控制模块和框架内核模块;其中,web程序生成模块配置为:基于界面模块、控制模块和框架内核模块生成目标web程序;界面模块配置为显示目标web程序的页面;控制模块配置为接收页面请求并转发到框架内核模块进行处理,获取返回的处理结果,并通过界面模块进行显示;框架内核模块配置为加载目标web程序,根据页面请求对目标web程序的数据/逻辑业务进行处理,并将处理结果返回到控制模块。本发明缩短了重复工作花费的时间且减少了人为导致的错误。
Description
技术领域
本发明涉及web开发技术领域,具体涉及一种web程序及其快速开发框架、开发方法与相关设备。
背景技术
随着互联网技术的发展,企业在面向内部管理和面向用户服务时都广泛地使用了web技术。
传统的web业务开发流程需要页面设计、数据库结构设计、构建B/S架构的平台、数据库端代码编写、业务逻辑代码开发、控制流程代码开发、用户界面层开发、部署测试调整页面等一系列繁琐的步骤。因此,需要编写大量的代码,开发效率较低,而且大量代码的编写必然容易造成较多的人为错误,需要较长的调试时间。
发明内容
为了解决现有技术中的上述问题,本发明提出了一种web程序及其快速开发框架、开发方法与相关设备,提高了开发效率或减少了人为因素导致的错误。
本发明的第一方面,提出一种web程序快速开发框架,所述开发框架包括:web程序生成模块、界面模块、控制模块和框架内核模块;
所述web程序生成模块配置为:基于所述界面模块、所述控制模块和所述框架内核模块生成目标web程序;
所述界面模块配置为:显示所述目标web程序的页面,接收页面输入的数据,并向所述控制模块发出页面请求;
所述控制模块配置为:接收所述页面请求,并转发到所述框架内核模块进行处理;获取所述框架内核模块返回的处理结果,并通过所述界面模块进行显示;
所述框架内核模块配置为:加载所述目标web程序;根据所述页面请求对所述目标web程序的数据/逻辑业务进行处理,并将处理结果返回到所述控制模块。
优选地,web程序生成模块包括:基础项目生成单元;
所述基础项目生成单元配置为:创建数据库,并根据预置的数据表在所述数据库中生成基本数据库表;根据预置的基础功能组件和所述数据库生成所述目标web程序。
优选地,所述web程序生成模块还包括:业务功能模块生成单元;
所述业务功能模块生成单元配置为:根据自定义的数据表结构,生成业务功能组件,并将所述业务功能组件加入到所述目标web程序中。
优选地,每一个所述基础功能组件和每一个所述业务功能组件均包括:XML配置文件和业务处理类;
所述XML配置文件包括:一个Module Xml文件,以及一个或多个Data Xml文件;
其中,所述Module Xml文件为所述基础功能组件或所述业务功能组件对应页面的配置文件;每个所述Data Xml文件对应该页面中的一张表;所述业务处理类用于执行该页面中对应的业务处理功能。
优选地,所述框架内核模块包括:组件识别与加载单元、页面请求处理单元;
所述组件识别与加载单元配置为:根据预设的属性标签对预设路径下的组件进行识别与加载;
所述页面请求处理单元配置为:根据所述页面请求解析对应组件中的XML配置文件,根据解析结果对所述数据库进行读写操作和/或调用对应组件的所述业务处理类进行逻辑业务处理,将访问结果和/或处理结果发送到所述控制模块。
优选地,所述控制模块包括:转发单元、绑定单元;
所述转发单元配置为:接收所述界面模块发出的所述页面请求,并转发到所述框架内核模块进行处理;
所述绑定单元配置为:将所述页面请求对应的XML配置文件以及所述框架内核模块获取的数据或处理结果进行绑定,并通过所述界面模块进行显示。
优选地,所述基本数据库表包括:用户表、权限表、菜单表、角色表、组织架构表,以及初始数据。
优选地,所述基础项目生成单元还配置为:将预置的通用页面拷贝至所述目标web程序的对应目录;
所述预置的通用页面包括:列表页面、新增页面、修改页面、删除页面和详情页面。
优选地,所述基础项目生成单元还配置为:在所述Module Xml文件中设置自定义的局部页面。
优选地,所述业务处理类中包括:一个或多个预置的处理函数和/或对所述预置的处理函数修改后得到的处理函数和/或扩展的处理函数。
优选地,所述页面请求处理单元还配置为:对页面配置文件进行缓存。
优选地,所述页面请求处理单元还配置为:根据预置的校验规则和/或扩展的校验规则对当前页面输入的数据进行约束校验。
本发明的第二方面,提出一种web程序快速开发方法,基于上面所述的web程序快速开发框架进行开发,所述开发方法包括:
创建数据库,并根据预置的数据表在所述数据库中生成基本数据库表;
根据预置的基础功能组件和所述数据库生成所述目标web程序。
优选地,所述开发方法还包括:
根据自定义的数据表结构生成业务功能组件,并将所述业务功能组件加入所述目标web程序中。
优选地,所述基础功能组件和所述业务功能组件均包括:XML配置文件和业务处理类;
所述XML配置文件包括:一个Module Xml文件,以及一个或多个Data Xml文件。
优选地,所述开发方法还包括:
将所述预置的通用页面拷贝至所述目标web程序的对应目录。
优选地,所述开发方法还包括:
在所述Module Xml文件中设置自定义的局部页面。
优选地,所述开发方法还包括:
对所述业务处理类中预置的处理函数进行修改和/或增加扩展的处理函数。
优选地,所述开发方法还包括:
增加扩展的校验规则。
本发明的第三方面,提出一种web程序,所述web程序的开发方法为上面所述的web程序快速开发方法。
本发明的第四方面,提出一种存储设备,其中存储有程序,所述程序适于由处理器加载并执行,以实现上面所述的web程序快速开发方法。
本发明的第五方面,还提出一种处理设备,包括:
处理器,适于执行程序;
存储器,适于存储所述程序;
所述程序适于由所述处理器加载并执行,以实现上面所述的web程序快速开发方法。
与最接近的现有技术相比,本发明具有如下有益效果:
本发明的快速开发框架中预置了一些常规页面的操作,并且支持扩展开发,既可以快速生成统一框架又不失其灵活性。因此,本发明大大缩短了web程序开发人员在一些重复繁琐工作上花费的时间,而且减少了人为导致的错误,从而推进产品快速上线,大幅度提高了工作效率。
方案1、一种web程序快速开发框架,其特征在于,所述开发框架包括:web程序生成模块、界面模块、控制模块和框架内核模块;
所述web程序生成模块配置为:基于所述界面模块、所述控制模块和所述框架内核模块生成目标web程序;
所述界面模块配置为:显示所述目标web程序的页面,接收页面输入的数据,并向所述控制模块发出页面请求;
所述控制模块配置为:接收所述页面请求,并转发到所述框架内核模块进行处理;获取所述框架内核模块返回的处理结果,并通过所述界面模块进行显示;
所述框架内核模块配置为:加载所述目标web程序;根据所述页面请求对所述目标web程序的数据/逻辑业务进行处理,并将处理结果返回到所述控制模块。
方案2、根据方案1所述的开发框架,其特征在于,
web程序生成模块包括:基础项目生成单元;
所述基础项目生成单元配置为:创建数据库,并根据预置的数据表在所述数据库中生成基本数据库表;根据预置的基础功能组件和所述数据库生成所述目标web程序。
方案3、根据方案2所述的开发框架,其特征在于,所述web程序生成模块还包括:业务功能模块生成单元;
所述业务功能模块生成单元配置为:根据自定义的数据表结构,生成业务功能组件,并将所述业务功能组件加入到所述目标web程序中。
方案4、根据方案3所述的开发框架,其特征在于,每一个所述基础功能组件和每一个所述业务功能组件均包括:XML配置文件和业务处理类;
所述XML配置文件包括:一个Module Xml文件,以及一个或多个Data Xml文件;
其中,所述Module Xml文件为所述基础功能组件或所述业务功能组件对应页面的配置文件;每个所述Data Xml文件对应该页面中的一张表;所述业务处理类用于执行该页面中对应的业务处理功能。
方案5、根据方案4所述的开发框架,其特征在于,所述框架内核模块包括:组件识别与加载单元、页面请求处理单元;
所述组件识别与加载单元配置为:根据预设的属性标签对预设路径下的组件进行识别与加载;
所述页面请求处理单元配置为:根据所述页面请求解析对应组件中的XML配置文件,根据解析结果对所述数据库进行读写操作和/或调用对应组件的所述业务处理类进行逻辑业务处理,将访问结果和/或处理结果发送到所述控制模块。
方案6、根据方案5所述的开发框架,其特征在于,所述控制模块包括:转发单元、绑定单元;
所述转发单元配置为:接收所述界面模块发出的所述页面请求,并转发到所述框架内核模块进行处理;
所述绑定单元配置为:将所述页面请求对应的XML配置文件以及所述框架内核模块获取的数据或处理结果进行绑定,并通过所述界面模块进行显示。
方案7、根据方案2所述的开发框架,其特征在于,所述基本数据库表包括:用户表、权限表、菜单表、角色表、组织架构表,以及初始数据。
方案8、根据方案4所述的开发框架,其特征在于,所述基础项目生成单元还配置为:将预置的通用页面拷贝至所述目标web程序的对应目录;
所述预置的通用页面包括:列表页面、新增页面、修改页面、删除页面和详情页面。
方案9、根据方案8所述的开发框架,其特征在于,所述基础项目生成单元还配置为:在所述Module Xml文件中设置自定义的局部页面。
方案10、根据方案9所述的开发框架,其特征在于,所述业务处理类中包括:一个或多个预置的处理函数和/或对所述预置的处理函数修改后得到的处理函数和/或扩展的处理函数。
方案11、根据方案5所述的开发框架,其特征在于,所述页面请求处理单元还配置为:对页面配置文件进行缓存。
方案12、根据方案11所述的开发框架,其特征在于,所述页面请求处理单元还配置为:根据预置的校验规则和/或扩展的校验规则对当前页面输入的数据进行约束校验。
方案13、一种web程序快速开发方法,其特征在于,基于方案1-12中任一项所述的web程序快速开发框架进行开发,所述开发方法包括:
创建数据库,并根据预置的数据表在所述数据库中生成基本数据库表;
根据预置的基础功能组件和所述数据库生成所述目标web程序。
方案14、根据方案13所述的开发方法,其特征在于,所述开发方法还包括:
根据自定义的数据表结构生成业务功能组件,并将所述业务功能组件加入所述目标web程序中。
方案15、根据方案14所述的开发方法,其特征在于,所述基础功能组件和所述业务功能组件均包括:XML配置文件和业务处理类;
所述XML配置文件包括:一个Module Xml文件,以及一个或多个Data Xml文件。
方案16、根据方案15所述的开发方法,其特征在于,所述开发方法还包括:
将所述预置的通用页面拷贝至所述目标web程序的对应目录。
方案17、根据方案16所述的开发方法,其特征在于,所述开发方法还包括:
在所述Module Xml文件中设置自定义的局部页面。
方案18、根据方案17所述的开发方法,其特征在于,所述开发方法还包括:
对所述业务处理类中预置的处理函数进行修改和/或增加扩展的处理函数。
方案19、根据方案18所述的开发方法,其特征在于,所述开发方法还包括:
增加扩展的校验规则。
方案20、一种web程序,其特征在于,所述web程序的开发方法为方案13-19中任一项所述的web程序快速开发方法。
方案21、一种存储设备,其中存储有程序,其特征在于,所述程序适于由处理器加载并执行,以实现方案13-19中任一项所述的web程序快速开发方法。
方案22、一种处理设备,包括:
处理器,适于执行程序;
存储器,适于存储所述程序;
其特征在于,所述程序适于由所述处理器加载并执行,以实现方案13-19中任一项所述的web程序快速开发方法。
附图说明
图1是本发明的一种web程序快速开发框架实施例的构成示意图;
图2是本发明的另一种web程序快速开发框架实施例的构成示意图;
图3是本发明的web程序快速开发方法实施例的主要步骤示意图。
具体实施方式
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。
本发明使用的是自创的XML配置解决方案,相比传统技术中页面开发时繁琐的代码编写,开发界面不仅编写步骤少,而且开发人员可以根据需求更改默认代码,具有很强的一致性和灵活性。开发界面几乎无代码是该开发套件的亮点之一,只需编写几行XML代码,就可以实现一个标准的web页面(如果需要自定义,程序员也可用所需的方式重写默认代码)。
图1是本发明的一种web程序快速开发框架实施例的构成示意图。如图1所示,本实施例的web程序快速开发框架10包括:界面模块11、控制模块12、框架内核模块13和web程序生成模块14。
其中,界面模块11配置为:显示目标web程序的页面,接收页面输入的数据,并向控制模块发出页面请求;控制模块12配置为:接收页面请求,并转发到框架内核模块进行处理;获取框架内核模块返回的处理结果,并通过界面模块进行显示;框架内核模块13配置为:加载目标web程序;根据页面请求对目标web程序的数据/逻辑业务进行处理,并将处理结果返回到控制模块;web程序生成模块14配置为:基于界面模块、控制模块和框架内核模块生成目标web程序。
本实施例中,web程序生成模块14包括:基础项目生成单元141。基础项目生成单元141具体配置为:创建数据库,并根据预置的数据表在数据库中生成基本数据库表;根据预置的基础功能组件和数据库生成目标web程序。其中,基本数据库表包括:用户表、权限表、菜单表、角色表、组织架构表等,以及这些表中的初始数据。
可选地,基础项目生成单元141还配置为:将预置的通用页面拷贝至目标web程序的对应目录。预置的通用页面包括:列表页面、新增页面、修改页面、删除页面和详情页面等。
每一个基础功能组件均包括:XML配置文件和业务处理类。其中,XML配置文件包括:一个Module Xml文件,以及一个或多个Data Xml文件;Module Xml文件为基础功能组件对应页面的配置文件;每个Data Xml文件对应该页面中的一张表;业务处理类用于执行该页面中对应的业务处理功能。业务处理类中预置了一个或多个处理函数,我们还可以对其中预置的处理函数进行修改,也可以另外编写扩展的处理函数。
本实施例中,web程序生成模块14实际上是一个与框架配套的web项目生成工具,该生成工具中预置了编译后的基础web项目,内容包括基础功能组件及资源文件。利用该工具新建项目时,首先创建空数据库,然后把数据库链接地址配置在工具中,并选择相应的数据库类型,填写相应的解决方案名称,以及需要生成程序的虚拟目录,工具会记录这些信息以便在后续操作中使用。在该工具中点击生成按钮,工具会根据配置的数据库链接以及所属的数据库类型,利用工具中预置好的sql脚本文件在数据库中生成系统需要用到的基本数据库表,比如:用户表、权限表、菜单表、角色表等等,以及一些初始数据,如默认超级用户以及初始的系统菜单(用户管理、角色管理、菜单管理等)。工具将预置的基础功能组件拷贝至用户配置的目录中,然后生成虚拟站点,用户即可访问该基础web应用,其中包含基础系统功能,如用户管理、角色管理、菜单管理等等。
在传统的web项目开发中,每个实体的List、Detail、Update页面都很繁琐,需要重复地编写代码,浪费了大量的人力,本实施例的框架采用通用页面的方法解决了这个问题。本实施例的通用页面主要包括:列表页面(ListPage)、新增页面(InsertPage)、修改页面(UpdatePage)、详情页面(DetailPage)等,通过在访问页面的时候,在Url加上所用实体名称的路径参数(例如,ListPage?Source=Signature/SignList,即获取Module Xml目录下的Signature文件夹下的SignList Module Xml对象,Module Xml引用Data Xml进而获取实体对象),一个Module Xml文件可对应多个Data Xml文件,在同一个页面可加载不同的实体。在获取到Module Xml路径参数后,程序去找到相应的XML文件,即Module下的XML文件。通过解析Module Xml和Data Xml中的各项属性,使用框架内置的通用页面(ListPage\InsertPage\UpdatePage\DetailPage)来为该功能界面生成统一样式控件或者列表。
当通用页面无法完成我们的需求的时候,我们还可以在Module Xml文件中设置自定义的局部页面。将我们需要的内容写在自定义的页面中,通过Module Xml文件中的ListButtonCustom、ListButtonBottom、ListButtonExcel等属性设置自定义局部页面的路径,通用页面会读取这些属性值,如果为空则用框架默认的页面,如果不为空则使用自定义的局部页面,然后再加载到通用页面中,这样就实现了个别功能的自定义扩展页面。
本实施例中,框架内核模块13包括:组件识别与加载单元131、页面请求处理单元132。
其中,组件识别与加载单元131配置为:根据预设的属性标签对预设路径下的组件进行识别与加载;页面请求处理单元132配置为:根据页面请求解析对应组件中的XML配置文件,根据解析结果对数据库进行读写操作和/或调用对应组件的业务处理类进行逻辑业务处理,将访问结果和/或处理结果发送到控制模块。
即使将不同项目的Module Xml和Data Xml以及业务处理类生成的程序集文件,放入另一个相同框架的项目中,组件识别与加载单元131也可以自动获取动态库信息并注册。只需要在菜单管理中配置一下菜单,就可以正常使用,像组件一样,可即插即用。解决了传统开发系统中重复编程的弊端,各模块可自由组装。
可选地,页面请求处理单元132还配置为:对页面配置文件进行缓存。
本实施例的快速开发框架大量使用了缓存技术,提高了系统运行性能,但并没有影响到开发调试工作,利用Cache技术不仅提高了运行效率还做到了开发与运行无缝衔接。
可选地,页面请求处理单元132还配置为:根据预置的校验规则和/或扩展的校验规则对当前页面输入的数据进行约束校验。
本实施例中,框架内核模块中预置了20多种常用的校验规则,只要将其和需要检查的字段关联即可。与此同时,客户程序也可以根据用户需求扩展开发适用于本框架的约束类。页面请求处理单元132根据Data Xml里配置的数据类型,可以自动做一些数据检验。例如,当某个字段类型为整型Int,则在新建或修改时自动检查其数据必须为整数,否则提醒用户重新输入;又如,当某个字段的Length属性为50时,则自动检查其录入数据的长度不能超过50。
另外我们还可以新建自己的约束类(即添加扩展的校验规则),并继承框架中的BaseConstraint,实现自己的检查逻辑;在需要用到该约束的界面对应的业务处理类的AddConstraints方法里添加该约束类。
本实施例中,控制模块12包括:转发单元121、绑定单元122。
其中,转发单元121配置为:接收界面模块11发出的页面请求,并转发到框架内核模块13进行处理;绑定单元122配置为:将页面请求对应的XML配置文件以及框架内核模块13获取的数据或处理结果进行绑定,并通过界面模块11进行显示。
图2是本发明的另一种web程序快速开发框架实施例的构成示意图。如图2所示,本实施例的web程序快速开发框架20包括:界面模块21、控制模块22、框架内核模块23和web程序生成模块24。
其中,界面模块21、控制模块22、框架内核模块23的配置分别与图1中的界面模块11、控制模块12、框架内核模块13对应相同,此处不再赘述。
区别在于,本实施例的web程序生成模块24除了包括基础项目生成单元241之外,还包括:业务功能模块生成单元242。
其中,基础项目生成单元241的配置与图1中的基础项目生成单元141相同,此处不再赘述。业务功能模块生成单元242配置为:根据自定义的数据表结构,生成业务功能组件,并将业务功能组件也加入目标web程序中,从而得到扩展后的目标web程序。与基础功能组件一样,每一个业务功能组件也包括:XML配置文件和业务处理类。其中,XML配置文件包括:一个Module Xml文件,以及一个或多个Data Xml文件。Module Xml文件为业务功能组件对应页面的配置文件;每个Data Xml文件对应该页面中的一张表。
本实施例中业务功能模块生成单元242可以导入PDM文件(PowerDesigner设计好的表结构),也可以直接从数据库中导入数据表。然后会自动识别每张表的每个字段的数据类型,并根据数据类型自动匹配控件类型,比如时间为DateTime型、性别是CheckBox控件、城市是Combo型(下拉框),我们也可以手动调整控件类型,框架提供10几种常用控件,在配置完成后,点击生成按钮,工具会自动生成Module Xml和Data Xml文件,Module Xml里引用了Data Xml,框架运行时根据各个菜单配置的XML路径解析XML文件并缓存,用户访问列表页面或编辑页面的时候,框架会根据这些字段的控件类型,渲染对应的html5及css控件。
除两个XML文件之外,业务功能模块生成单元242还会生成一个业务处理类(TableResolver),该类被打上框架定义的TableReloverAttribute属性标签,该Attribute包含RegName(注册名)、Author(作者)等属性。一组类可放在一个模块/程序集下,项目启动时,框架内核模块的组件识别与加载单元通过反射识别拥有TableReloverAttribute属性的类进行加载,然后根据注册名映射并缓存对应的配置文件。当接收到业务请求时,框架内核模块的页面请求处理单元可以通过Module Xml中配置的RegName(注册名)从映射表中找到对应的业务处理类并进行实例化。该业务处理类中包含了预置的处理函数,比如:将当前时间赋值给表的修改时间字段,程序员可根据实际情况重写该函数达到扩展开发的目的。一般情况下增加、删除、修改和查询数据的功能不需要重写该函数,只有需要实现特殊逻辑时才重写。
鉴于Data Xml和Module Xml在本发明中的重要性,下面专门对这两种文件进行说明。
(1)Data Xml:
在图1和图2的实施例中,Data Xml是最重要的XML格式文件,它存放在web项目根目录的Xml\Data路径下。
每个Data Xml文件实际上就是后台数据库表的一张表的字段映射。它被框架内核模块、控制模块和界面模块共同使用,在数据处理和显示时都共享Data Xml文件,这样做使得开发web程序变得更加便捷。
在Data Xml文件中,通过TableName、tk:FieldName、tk:DisplayName、tk:Length、IsKey、DataType、IsEmpty、tk:DefaultValue等标签,为框架程序提供了必要的数据信息,程序通过这些信息,自动给相关的属性赋值、添加相应的数据校验等等,这样不需要在XML文件中写一遍,又到程序中写一遍,大大降低了代码量。
同时,在Data Xml中,通过TableName、tk:FieldName、tk:DisplayName、tk:Display、tk:Extension、tk:HtmlCtrl等标签,为界面模块提供了足够多的显示信息。界面模块通过分析此XML文件,自动生成Insert、Update、Detail和List等界面,通常情况下,界面模块无需写任何代码就可以完成显示。
tk:HtmlCtrl控件类型包括:Text、Hidden、Detail、CheckBox、File、Password、Combo、TextArea、Radio、DetailHidden、CheckBoxList、MultiSelect、Upload、DetailUpload、DetailMultiSelect、HTML、DetailHTML、DetailTextArea。框架依据XML配置不同的类型生成对应的html控件,例如,Text对应生成的html控件类型为<input type=”text”/>;Hidden对应生成的html控件类型为<input type=”hidden”/>;CheckBox对应生成的html控件类型为<input type=”checkbox”/>。
Data Xml的全部格式都定义在Data.dtd和Data.xsd中,Data.dtd和Data.xsd存放于Xml\DTD2路径下。DTD是传统的XML格式定义,XSD则是Schema的定义格式。由于XSD支持数据类型、正则表达式等新的特性,因此它的校验功能比DTD更加强大有效。
下面是一个Data Xml文件的例子,它由辅助生成工具直接生成,并在此基础上进行微调后得到。
(2)Module Xml:
在图1和图2的实施例中,Module XML是功能最多,也是较复杂的一个XML格式。它存放在web根目录的Xml\Module路径下。
Module Xml文件是为系统注册的XMLDataSet服务,它的每个文件实际上就是一个功能的说明,被框架内核模块、控制模块和界面模块共同使用。
Module Xml的tk:DataSet标签注明了将使用哪一种注册的XMLDataSet,相应的DataSet就会读取Module Xml中的信息,然后产生相应的行为。不同的DataSet表示编辑页面不同模式,如单表、多表、主从表。
同时,在Module Xml中,通过tk:Resolver、tk:Xml、Style、List、DetailList、Main、Type等标签,定义了每张表是否需要显示,以及显示的格式。这样界面模块通过分析此XML文件,自动组合出所需要的界面。
Module Xml就是通过组合Data Xml以及业务处理类TableResolver来形成各种功能。本实施例的开发框架提供了十种左右的表单模型,涵盖了常用的web页面模式。此外,因为Module Xml也是程序与显示共享,所以在功能方面,无需编程,仅仅通过配置相关的Module Xml,然后由框架来解析它,就可以完成功能开发。
本实施例中Module Xml主要支持的模式如表1所示:
表1
下面是一个Module Xml文件的示例(主从表模式):
与上述的web程序快速开发框架基于同样的技术构思,本发明还提出一种web程序快速开发方法。图3是本发明的web程序快速开发方法实施例的主要步骤示意图。如图3所示,本实施例的开发方法只要包括步骤S10-S20:
步骤S10,创建数据库,并根据预置的数据表在数据库中生成基本数据库表;
步骤S20,在生成工具中,根据预置的基础功能组件和数据库生成目标web程序。
至此,我们已经实现了一个基本的web程序,它可以启动运行,其中包含了框架预置的基础功能。
可选地,本实施例的开发方法还可以包括:
步骤S30,将预置的通用页面拷贝至目标web程序的对应目录。
可选地,本实施例的开发方法还可以包括:
步骤S40,在Module Xml文件中设置自定义的局部页面。
可选地,本实施例的开发方法还可以包括:
步骤S50,根据自定义的数据表结构生成业务功能组件,并将业务功能组件加入目标web程序中。
将添加了业务功能组件的目标web程序启动以后,可在基础组件中包含的“菜单管理”中新建一个与业务功能组件对应的菜单;然后在“角色管理”中将新建菜单及子功能权限配置好,然后重新登陆就可以正常使用该业务功能了。
可选地,本实施例的开发方法还可以包括:
步骤S60,对业务处理类中预置的处理函数进行修改和/或增加扩展的处理函数。
可选地,本实施例的开发方法还可以包括:
步骤S70,增加扩展的校验规则。
上述实施例中虽然将各个步骤按照上述先后次序的方式进行了描述,但是本领域技术人员可以理解,为了实现本实施例的效果,不同的步骤之间不必按照这样的次序执行,其可以同时(并行)执行或以颠倒的次序执行,这些简单的变化都在本发明的保护范围之内。
基于上面的开发方法实施例,本发明还提出一种web程序的实施例,该web程序是采用了上面所述的web程序快速开发方法得到的。
进一步地,本发明还提出一种存储设备的实施例,其中存储有程序,所述程序适于由处理器加载并执行,以实现上面所述的web程序快速开发方法。
进一步地,本发明还提出一种处理设备的实施例,包括:处理器和存储器。其中,处理器适于执行程序,存储器适于存储所述程序,所述程序适于由所述处理器加载并执行,以实现上面所述的web程序快速开发方法。
本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
Claims (10)
1.一种web程序快速开发框架,其特征在于,所述开发框架包括:web程序生成模块、界面模块、控制模块和框架内核模块;
所述web程序生成模块配置为:基于所述界面模块、所述控制模块和所述框架内核模块生成目标web程序;
所述界面模块配置为:显示所述目标web程序的页面,接收页面输入的数据,并向所述控制模块发出页面请求;
所述控制模块配置为:接收所述页面请求,并转发到所述框架内核模块进行处理;获取所述框架内核模块返回的处理结果,并通过所述界面模块进行显示;
所述框架内核模块配置为:加载所述目标web程序;根据所述页面请求对所述目标web程序的数据/逻辑业务进行处理,并将处理结果返回到所述控制模块。
2.根据权利要求1所述的开发框架,其特征在于,
web程序生成模块包括:基础项目生成单元;
所述基础项目生成单元配置为:创建数据库,并根据预置的数据表在所述数据库中生成基本数据库表;根据预置的基础功能组件和所述数据库生成所述目标web程序。
3.根据权利要求2所述的开发框架,其特征在于,所述web程序生成模块还包括:业务功能模块生成单元;
所述业务功能模块生成单元配置为:根据自定义的数据表结构,生成业务功能组件,并将所述业务功能组件加入到所述目标web程序中。
4.根据权利要求3所述的开发框架,其特征在于,每一个所述基础功能组件和每一个所述业务功能组件均包括:XML配置文件和业务处理类;
所述XML配置文件包括:一个Module Xml文件,以及一个或多个Data Xml文件;
其中,所述Module Xml文件为所述基础功能组件或所述业务功能组件对应页面的配置文件;每个所述Data Xml文件对应该页面中的一张表;所述业务处理类用于执行该页面中对应的业务处理功能。
5.根据权利要求4所述的开发框架,其特征在于,所述框架内核模块包括:组件识别与加载单元、页面请求处理单元;
所述组件识别与加载单元配置为:根据预设的属性标签对预设路径下的组件进行识别与加载;
所述页面请求处理单元配置为:根据所述页面请求解析对应组件中的XML配置文件,根据解析结果对所述数据库进行读写操作和/或调用对应组件的所述业务处理类进行逻辑业务处理,将访问结果和/或处理结果发送到所述控制模块。
6.根据权利要求5所述的开发框架,其特征在于,所述控制模块包括:转发单元、绑定单元;
所述转发单元配置为:接收所述界面模块发出的所述页面请求,并转发到所述框架内核模块进行处理;
所述绑定单元配置为:将所述页面请求对应的XML配置文件以及所述框架内核模块获取的数据或处理结果进行绑定,并通过所述界面模块进行显示。
7.根据权利要求2所述的开发框架,其特征在于,所述基本数据库表包括:用户表、权限表、菜单表、角色表、组织架构表,以及初始数据。
8.根据权利要求4所述的开发框架,其特征在于,所述基础项目生成单元还配置为:将预置的通用页面拷贝至所述目标web程序的对应目录;
所述预置的通用页面包括:列表页面、新增页面、修改页面、删除页面和详情页面。
9.根据权利要求8所述的开发框架,其特征在于,所述基础项目生成单元还配置为:在所述Module Xml文件中设置自定义的局部页面。
10.根据权利要求9所述的开发框架,其特征在于,所述业务处理类中包括:一个或多个预置的处理函数和/或对所述预置的处理函数修改后得到的处理函数和/或扩展的处理函数。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811244876.5A CN109614084A (zh) | 2018-10-24 | 2018-10-24 | web程序及其快速开发框架、开发方法与相关设备 |
CN201910464915.0A CN110162299A (zh) | 2018-10-24 | 2019-05-30 | web程序及其快速开发框架、开发方法与相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811244876.5A CN109614084A (zh) | 2018-10-24 | 2018-10-24 | web程序及其快速开发框架、开发方法与相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109614084A true CN109614084A (zh) | 2019-04-12 |
Family
ID=66002367
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811244876.5A Pending CN109614084A (zh) | 2018-10-24 | 2018-10-24 | web程序及其快速开发框架、开发方法与相关设备 |
CN201910464915.0A Pending CN110162299A (zh) | 2018-10-24 | 2019-05-30 | web程序及其快速开发框架、开发方法与相关设备 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910464915.0A Pending CN110162299A (zh) | 2018-10-24 | 2019-05-30 | web程序及其快速开发框架、开发方法与相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN109614084A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110297636A (zh) * | 2019-07-03 | 2019-10-01 | 广州鲁邦通物联网科技有限公司 | 一种基于页面配置文件的页面自动生成和参数管理方法、系统和装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112068827A (zh) * | 2020-07-31 | 2020-12-11 | 广东飞企互联科技股份有限公司 | 附件控件的生成方法、装置、系统、设备以及介质 |
CN114064021A (zh) * | 2021-11-05 | 2022-02-18 | 青岛美迪康数字工程有限公司 | 基于用户需求的医院管理平台定制方法、装置及存储介质 |
-
2018
- 2018-10-24 CN CN201811244876.5A patent/CN109614084A/zh active Pending
-
2019
- 2019-05-30 CN CN201910464915.0A patent/CN110162299A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110297636A (zh) * | 2019-07-03 | 2019-10-01 | 广州鲁邦通物联网科技有限公司 | 一种基于页面配置文件的页面自动生成和参数管理方法、系统和装置 |
CN110297636B (zh) * | 2019-07-03 | 2023-06-27 | 广州鲁邦通物联网科技股份有限公司 | 一种基于页面配置文件的页面自动生成和参数管理方法、系统和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110162299A (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8234308B2 (en) | Deliver application services through business object views | |
US7917815B2 (en) | Multi-layer context parsing and incident model construction for software support | |
US8196100B2 (en) | Content management system for computer software with dynamic traceability between code and design documents | |
CN108959076A (zh) | 一种api在线调试方法 | |
US20060112370A1 (en) | Runtime Services for Network Software Platform | |
US10445675B2 (en) | Confirming enforcement of business rules specified in a data access tier of a multi-tier application | |
US8260813B2 (en) | Flexible data archival using a model-driven approach | |
JP2012079332A (ja) | コンピュータプラットフォームのプログラミングインターフェース | |
DE202014010938U1 (de) | Omega-Namen: Namenserzeugung und -ableitung | |
US7877417B2 (en) | Method and apparatus for exchanging data with a database | |
US8127225B2 (en) | Document specialization processing in a content management system | |
CN103473108A (zh) | 一种Java代码生成方法 | |
CA2400590A1 (en) | Method and apparatus for converting legacy programming language data structures to schema definitions | |
CN101699397A (zh) | 实现Java与XML数据绑定的方法 | |
CN104461531B (zh) | 一种报表系统自定义函数的实现方法 | |
EP1896939A2 (en) | Data centric workflows | |
CN101546311A (zh) | 回收站的数据处理方法及数据处理装置 | |
CN109614084A (zh) | web程序及其快速开发框架、开发方法与相关设备 | |
CN101714078A (zh) | 代码生成方法及装置 | |
CN106776314A (zh) | 一种测试系统 | |
US20090024640A1 (en) | Apparatus and method for improving efficiency of content rule checking in a content management system | |
CN105589959A (zh) | 表单处理方法和表单系统 | |
US20090210748A1 (en) | Methods and systems to test airline information systems | |
US7475090B2 (en) | Method and apparatus for moving data from an extensible markup language format to normalized format | |
D'Ambrogio et al. | A MDA-based approach for the development of DEVS/SOA simulations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190412 |