CN103617037B - 用于web开发系统的开发方法和web开发系统 - Google Patents

用于web开发系统的开发方法和web开发系统 Download PDF

Info

Publication number
CN103617037B
CN103617037B CN201310616861.8A CN201310616861A CN103617037B CN 103617037 B CN103617037 B CN 103617037B CN 201310616861 A CN201310616861 A CN 201310616861A CN 103617037 B CN103617037 B CN 103617037B
Authority
CN
China
Prior art keywords
code
function
development system
web
modification
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.)
Active
Application number
CN201310616861.8A
Other languages
English (en)
Other versions
CN103617037A (zh
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhang Jie
Original Assignee
邵寻
张洁
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 邵寻, 张洁 filed Critical 邵寻
Priority to CN201310616861.8A priority Critical patent/CN103617037B/zh
Publication of CN103617037A publication Critical patent/CN103617037A/zh
Priority to PCT/CN2014/092054 priority patent/WO2015078343A1/zh
Priority to US15/038,602 priority patent/US9904522B2/en
Application granted granted Critical
Publication of CN103617037B publication Critical patent/CN103617037B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供用于web开发系统的开发方法和web开发系统。所述用于web开发系统的开发方法包括以下步骤:在web开发系统运行时,生成或修改脚本代码;经由脚本解析器解析生成或修改的脚本代码以生成新功能的对象类型或修改已有功能的对象类型;以及由对象管理器根据生成的新功能的对象类型或修改的已有功能的对象类型生成新功能的对象或修改的已有功能的对象,并组织该对象与其他对象之间的调用关系,从而在web开发系统运行时生成或改变web开发系统的功能。

Description

用于web开发系统的开发方法和web开发系统
技术领域
本发明涉及网络应用程序开发领域,更具体地,涉及用于web开发系统的开发方法和web开发系统。
背景技术
用于开发网络应用程序的web系统目前得到广泛应用。网络应用程序(简称webapp)是一种使用网页浏览器在互联网或企业内部网上操作的应用软件,其是一种以网页语言(例如HTML、JavaScript、Java等编程语言)撰写的应用程序,需要通过浏览器来运行。web系统是客户机——服务器模式。web客户机是客户端的浏览器。web服务器是资源存放的主机。
当前web系统的开发应用主要分为开发阶段和运行时阶段。在开发阶段,开发人员通过web系统进行如下操作:编写、编译、部署和运行。具体而言,开发人员利用各种IDE(集成开发环境)开发工具在本地直接编写功能代码或程序包。开发完功能代码或程序包之后再用IDE开发工具编译,并且部署到服务器来生成功能页面。对功能页面进行运行和调试。功能全部开发测试完成后再交给最终用户运行使用以进入运行时阶段。
由于技术条件限制,目前,在开发阶段,开发人员无法以所见即所得的方式看到所开发的功能页面。即,开发人员在开发时看到的只是代码或程序包,而无法直接看到要生成的功能页面。并且,在运行功能页面时,如果要进行一些修改,则必须重新返回到代码编写步骤以进行代码编辑或修改。并且需要重新编译代码或程序包并将其部署到服务器,并且重新启动服务器来重新生成功能页面。之后,才能在运行该功能页面时看到所述修改的生效。这使得开发人员在开发效率上受到影响。
同时,对于系统不熟悉的开发人员而言,需要花大量时间来读懂代码逻辑才能掌握现有代码继续开发工作。这需要相当多的学习成本,学习成本的大小由系统的复杂程度决定。
发明内容
发明人针对上述问题提出了一种全新的用于web开发系统的开发方法和web开发系统。本发明的用于web开发系统的开发方法和web开发系统直接在系统运行的状态下进行开发,代码无需在本地进行编写、编译并部署到服务器,而是在服务器上直接加载即可运行。
本发明的一方面提供一种用于web开发系统的开发方法,包括以下步骤:在web开发系统运行时,生成或修改脚本代码;经由脚本解析器解析生成或修改的脚本代码以生成新功能的对象类型或修改已有功能的对象类型;以及由对象管理器根据生成的新功能的对象类型或修改的已有功能的对象类型生成新功能的对象或修改的已有功能的对象,并组织该对象与其他对象之间的调用关系,从而在web开发系统运行时生成或改变web开发系统的功能。
优选地,在所述用于web开发系统的开发方法中,所述生成或修改脚本代码的步骤包括:通过输入的参数来调用功能模板库中的与预定功能对应的模板,所述功能模板库包括至少一个与功能对应的脚本代码的模板;以及生成与该预定功能对应的脚本代码。
优选地,在所述用于web开发系统的开发方法中,所述生成或修改脚本代码的步骤包括:自动调用与要修改的已有功能对应的脚本代码来进行修改。
优选地,在所述用于web开发系统的开发方法中,所述生成或修改脚本代码的步骤包括:以可视化方式对功能的呈现效果进行设计以自动生成或修改与所述功能的呈现效果对应的脚本代码。
本发明的另一方面提供一种web开发系统,包括:脚本代码生成和修改装置,用于在web开发系统运行时生成或修改脚本代码;脚本解析器,用于解析生成或修改的脚本代码以生成新功能的对象类型或修改已有功能的对象类型;以及对象管理器,用于根据生成的新功能的对象类型或修改的已有功能的对象类型生成新功能或修改已有功能的对象,并组织该对象与其他对象之间的调用关系,从而在web开发系统运行时生成或改变web开发系统的功能。
优选地,在所述web开发系统中,所述脚本代码生成和修改装置包括:功能模板库,包括至少一个与功能对应的脚本代码的模板;以及代码生成器,用于通过输入的参数来调用功能模板库中的与预定功能对应的模板,以生成与该预定功能对应的脚本代码。
优选地,在所述web开发系统中,所述脚本代码生成和修改装置包括:代码编辑器,用于自动调用与要修改的功能对应的脚本代码来进行修改。
优选地,在所述web开发系统中,所述脚本代码生成和修改装置包括:页面设计器,用于以可视化方式对功能的呈现效果进行设计以自动生成或修改与所述功能的呈现效果对应的脚本代码。
优选地,在所述web开发系统中,所述对象管理器与代码生成器、代码编辑器和/或页面设计器连接,以将代码生成器、代码编辑器和/或页面设计器生成的或编辑的代码生成为对象以及对象之间的关系。
根据本发明的用于web开发系统的开发方法和web开发系统通过在开发阶段使开发人员直接在web开发系统运行状态下以所见即所得或者模板的方式,通过框架运行脚本代码将具有新功能的对象动态地创建到系统的内存里,或者更新已有功能的对象,快速生成功能从而做到在运行状态下以所见即所得方式快速地开发系统功能。并且该web开发系统可以快速连接到与已开发功能对应的代码,方便开发人员快速了解原有系统并且对原有功能进行修改。
此外,用此web开发系统开发的每个功能模块都可以被控件化,从而每个功能模块可以被其他功能模块直接调用。这样每个模块的代码可以做到高度的重用。大大提高了开发的效率。另外,系统在升级时,无需停机,直接加载新功能的代码即可升级。这样大大减少了升级时的工作量,提高了工作效率。
综上所述,根据本发明的上述用于web开发系统的开发方法和web开发系统可以改变目前的开发方式,提高开发效率,提高软件生产企业的生产力。
附图说明
图1是本发明的web开发系统的工作原理的框图;
图2是本发明的web开发系统的系统层级架构的示意图;
图3是本发明的web开发系统的工作原理的流程图;
图4是本发明的web开发系统中的代码生成的流程图;
图5为本发明的第一实施例的web开发系统中的脚本代码生成和修改装置的框图;
图6A到6D是本发明的第一实施例的web开发系统的在运行状态下的开发过程的示例的示意图;
图7是本发明的第二实施例的web开发系统中的脚本代码生成和修改装置的框图;
图8是本发明的第二实施例的web开发系统在运行状态下进行功能修改的流程图;
图9是本发明的第二实施例的web开发系统在运行状态下的其中包含的代码编辑器的代码编辑页面的示例的示意图;
图10是本发明的第三实施例的web开发系统中的脚本代码生成和修改装置的框图;
图11是本发明的第三实施例的web开发系统在运行状态下的其中包含的页面设计器进行页面布局的流程图;
图12是本发明的第三实施例的web开发系统在运行状态下的其中包含的页面设计器进行设计的示意图;
图13是本发明的第四实施例的web开发系统中的脚本代码生成和修改装置的框图;以及
图14是本发明的第四实施例的web开发系统的系统架构示意图。
具体实施方式
现在将按照附图详细描述本发明的优选实施例。注意,实施例中的组件的相对布置和器件的形状仅被描述为例子,并且并不旨在将本发明的范围限制于这些例子。此外,相似的附图标记和字母在图中指代类似的项,由此,只要在一个图中定义一项,则无需对于后续的图讨论该项。
本发明的web开发系统可以在系统运行状态下进行开发。代码无需编译、部署,只需加载到服务器上就可运行。在本发明中实现了在web系统的运行状态下编写和修改代码。具体地,为了实现上述目的,本发明采用了图1所示的web开发系统。图1是本发明的web开发系统的工作原理的框图。
所述web开发系统包括:脚本代码生成和修改装置11、脚本解析器12和对象管理器13。
1、脚本代码生成和修改装置11以及脚本解析器12
现有技术中,开发人员通过Java语言编写Java应用代码,编写完成之后对代码进行编译,部署到服务器上,并且运行服务器才能实现具体预定功能的web应用系统。在需要改变功能时,需要重新编写代码,并且重新进行编译、部署,并且重新启动服务器来运行具有改变的功能的web应用系统。而在本发明中,利用了脚本代码生成和修改装置以及脚本解析器来进行代码的编写和修改。所述脚本代码生成和修改装置11对脚本代码进行开发和修改。脚本解析器12对脚本代码进行解析以生成新功能的对象类型或者修改已有功能的对象类型。
利用脚本代码和脚本解析器使得能够在web系统的运行状态下进行代码的编写和修改。并且只需将代码加载即可实现新功能或改变的功能。这使得完全摆脱了传统方式的限制,使web应用的开发和修改变得更加方便和快捷。
具体而言,所述脚本代码例如为符合groovy脚本语法规范的代码。所述脚本解析器12例如为groovy脚本语言解析器。当然,本领域技术人员可以理解,所述脚本代码可以为能够应用于web开发系统的任何其他脚本代码。脚本解析器12为能够解析脚本代码以生成功能的对象类型的任何脚本解析器。
2、对象管理器13
对象管理器13用于根据所生成的功能的对象类来生成对象,并且对功能的对象进行存储和管理。更具体地,对象管理器对每个功能对象赋予唯一标识ID,设置功能对象之间的关系。所述关系可以为当点击一个功能对象时,可以调用另一个功能对象。所述对象管理器13可以通过spring开源技术或其他能够进行功能对象的管理和设置的技术来实现。
图2是本发明的web开发系统的系统层级架构的示意图。
如图2所示,在所述web开发系统中,对象管理器对于从代码生成的对象进行管理。所述代码对象进一步与由代码生成器、代码编辑器和页面设计器生成和/或修改的脚本代码对应。
具体而言,所述代码对象包括用户接口(UI)层对象、业务逻辑层(service层)对象和数据库持久层(dao层)对象。
所述UI层对象是与最终呈现给用户的可视化页面对应的对象。例如,呈现给用户的页面中表单的格式、布局以及各字段的字体、颜色等以及其他与所呈现的页面相关的属性。
所述业务逻辑层对象是与实现业务的处理相关的对象。业务功能包括对数据库里某张业务表的数据的增删改查功能,当用户在新增页面录入业务数据后提交到系统,系统会调用业务逻辑层相应的对象和函数把用户提交的数据存入对应的数据库表中。
所述数据库持久层对象用于对数据库进行访问和存储。在所述web开发系统中,对数据库的访问和存储是以对象的形式由数据库访问器(未示出)来进行的。从而通过查询对象即可访问数据库内容。
所述数据库持久层对象访问数据库持久层引擎。所述数据库持久层引擎将数据库里的表与程序里的值对象进行映射绑定,绑定后开发人员只需对值对象里的数据进行增删改查操作,即可修改被映射了的表里的数据,无需再通过调用手工编写的sql语句的方式来对数据库数据进行操作。这一方面简化了数据库访问部分的代码,另一方面隔离了不同数据库的区别和变化,因为不同的数据库的sql语句的语法是不同的,因此使得系统可以很方便地实现对多种数据库的支持。
下面结合图3说明本发明的web开发系统的工作原理。图3是本发明的web开发系统的工作原理的流程图。
如图3所示,在步骤S101中,开发人员在web系统的运行状态下生成或修改脚本代码。在步骤S102中,脚本解析器12解析所生成或修改的代码,以生成新功能的对象类型或修改已有功能的对象类型。在步骤S103中,对象管理器根据对象类型生成对象,并且管理该对象与其他对象之间的关系。从而实现了在web系统运行时生成或改变系统功能。
另选地,在本发明中可以应用vaadin技术。vaadin技术是系统(UI)界面的渲染引擎,它包含一套丰富的(UI)控件库以及(UI)页面的渲染功能。开发人员通过调用UI控件的API来开发界面,利用vaadin开发人员不再需要像以前那样既要设计编写前端页面代码,又要设计编写服务端代码。开发人员只需要在服务端代码里通过调用vaadin就可以实现功能的界面。利用vaadin实现了前端代码和后台服务端代码的二合一,从而简化了功能代码,实现了页面与业务处理代码的统一调用统一加载,使得系统在运行时改变功能成为可能。当然,本领域技术人员可以理解,任何能够将前端代码和后台服务端代码二合一的技术都能够应用于本发明。
下面对在web系统运行状态下的系统功能的生成和修改分别进行详细的描述。
图4是本发明的web开发系统中的代码生成的流程图。
如图4所示,在步骤S201中,开发人员手工编写代码或利用代码生成器(如图5所示,下文将详细描述)快速生成代码。开发人员手工编写代码为符合脚本语法规范的代码。在步骤S202中,web开发系统加载所述代码来生成与该代码对应的功能对象。在步骤S203中,所述web系统通过运行所述功能对象来进行预览或测试,从而能够查看到web系统实际运行时的效果。在步骤S204中,将功能对象绑定到系统菜单里以供用户使用。通过上述过程来实现在web系统运行状态下的代码生成。
下面详细描述利用代码生成器快速生成代码的处理。图5为本发明的第一实施例的web开发系统中的脚本代码生成和修改装置的框图。如图5所示,根据本发明的第一实施例的脚本代码生成和修改装置包含:基础功能模板库301和代码生成器302。
所述基础功能模板库301包含与基础功能对应的代码的模板。本领域技术人员能够理解,所述基础功能为用于实现业务的基础功能。例如,对于数据库而言,所述基本功能例如为数据库内容的增加、删除、修改和查找。
所述代码生成器302用于使开发人员在运行状态下快速生成代码。开发人员在所述代码生成器302中输入参数,例如sql查询语句等,系统会自动将查询的主表名称和包含的字段名解析出来,并初始化到代码生成器的设置页面中,参数包括查询功能查询的表名以及查询列表里包含的查询字段,新增功能的表名及字段,修改功能的表名及字段,删除功能的表名和删除条件字段。开发人员可以在此基础上对参数做进一步修改,修改完成点保存,模板引擎会根据相应的模板和参数生成脚本代码。所述代码生成器302将参数加载到基础功能模板库301,最终生成想要的代码。即,代码生成器302提供一个接口以允许开发人员输入参数从而自动调用基础功能模板库301来生成相应的功能页面的代码。作为一种实现方式,所述代码生成器302可以通过freemarker开源技术将参数加载到基础功能模板库301来生成代码。所述代码生成器302是预先创建的并且已经部署到服务器上从而可直接在服务器上运行,因此,开发人员在进行开发时只需直接使用所述代码生成器302。
下面结合本发明的web系统运行时的画面描述根据第一实施例的web开发系统运行状态下的开发过程的示例。图6A到6D是第一实施例的web开发系统的在运行状态下的开发过程的示例的示意图。
图6A示出了新建项目的画面。如图6A所示,开发人员可以在代码生成器302中选择新建项目,在所述画面的对话框中输入项目的名称等信息作为参数,从而调用模板库中的与新建项目对应的模板,从而将所述参数带入模板来生成脚本代码。
图6B示出了新建应用的画面。一个项目可以由多个应用构成,通过多个应用的组合来实现具有一定功能的项目。如图6B所示,在新建应用的画面中,开发人员可以输入该应用所属于的项目以及应用的名称等来新建应用。随后再调用模板库中的相应模板生成脚本代码。
图6C示出了代码生成画面。在代码生成画面中,开发人员可以输入或选择项目和应用,并且选择与该项目和应用对应的要实现的功能,例如“新建功能”、“修改功能”、“查询功能”和“删除功能”。此后调用模板库中的相应模板来生成脚本代码。
图6D示出了通过图6A到6C的操作所生成的代码。如图6D所示,所述脚本代码中包含了通过图6A创建的项目“test”。项目“test”中包含通过图6B创建的两个应用,即,“UserMng”和“DeptMng”。并且每个项目中包含新建功能的脚本代码“CreateUI.groovy”和/或查询功能“SearchUI.groovy”。
通过图6A到图6D以示例方式示出了如何利用模板库和代码生成器生成脚本代码。当然本领域技术人员能够理解上述图6A到图6D仅是示例,实际中利用模板库和代码生成器能根据实际需要生成各种功能的脚本代码。
通过根据本发明第一实施例的web开发系统,能够在运行状态下以所见即所得的方式生成代码。即,开发人员通过该web开发系统直接访问服务器,在服务器上在运行状态下直接加载代码来生成功能页面。而不是像现有技术那样,需要在本地进行代码编写、编译和部署才能生成功能页面。这样提高了开发效率。
(第二实施例)
图7是根据本发明的第二实施例的web开发系统中的脚本代码生成和修改装置的框图。所述脚本代码生成和修改装置与第一实施例的脚本代码生成和修改装置的不同之处在于除了包含基础功能模板库301和代码生成器302以外,还包含代码编辑器503。开发人员可以通过代码编辑器503直接将脚本代码的内容显示出来进行编辑和修改,以及对一些配置文件进行编写和修改。代码修改完只需重新加载即可改变原有功能。如所述代码生成器302一样,代码编辑器503也是预先创建的并且已经部署到服务器上从而可直接在服务器上运行,因此,开发人员在进行开发时只需直接使用所述代码编辑器503即可。
在第二实施例的web开发系统中,开发人员可以通过选中要修改的功能调用与所述功能对应的代码,从而在所述代码编辑器503中直接呈现与要修改的功能页面对应的代码来进行编辑和修改。所述代码编辑器503基于实际的需求在已有基础功能上进行编辑或修改以在基础功能上实现具有特定特性的功能页面。
图8是本发明的第二实施例的web开发系统的在运行状态下进行功能修改的流程图。在步骤S601中,开发人员在功能导航里选中要修改的功能,从而代码编辑器503自动调用与该功能对应的代码文件。在步骤S602中,开发人员在代码编辑器503中对代码进行手工修改。并且在步骤S603中,重新加载修改后的代码以生成功能对象。在步骤S604中,通过运行功能对象来预览修改的功能。
通过代码编辑器503,可以对与功能对应的代码进行更精细的修改和编辑。并且修改之后的代码通过重新加载功能以修改对象的原有功能,而无需像常规web系统那样由开发人员在本地编辑代码,对代码进行编译并且部署到服务器上才能运行。
图9是示出代码编辑器503的运行状态下的示例的示意图。如图9所示,在系统中直接呈现代码中的名为“CreateUI.groovy”的代码来进行修改。
通过根据本发明的第二实施例的web开发系统,能够在运行状态下通过代码编辑器对代码进行编辑和修改。从而直接在web开发系统中非常容易地定位到要编辑或修改的代码段来进行修改,而无需人工地在源代码中费时地寻找要修改的代码段。并且将修改后的代码直接加载就可运行。无需像常规web系统那样由开发人员在本地编辑代码,对代码进行编译并且部署到服务器上才能运行。
(第三实施例)
图10是根据本发明的第三实施例的web开发系统中的代码生成和修改装置的框图。所述代码生成和修改装置与第一实施例的代码生成和修改装置的不同之处在于除了基础功能模板库301和代码生成器302以外,还包含页面设计器804。
在第三实施例中,页面设计器804用于可视化地对最终呈现给用户的功能页面的效果进行设计。即,页面设计器804对用户接口层代码进行可视化的修改。开发人员可以通过页面设计器804可视化地直观地通过拖拽将新的控件添加到原有页面,或者改变原有控件的位置和颜色等样式属性。开发人员还可以在使用设计器804设计页面的时候给每个控件定义权限,例如可见不可见,可用不可用。控件的权限被定义之后,在权限设置的功能里可以对用户或者角色进行控件权限的授权,有权限的用户才能在相应的页面上看到或使用相应的控件。
图11是本发明的第三实施例的web开发系统的在运行状态下通过页面设计器进行页面修改的流程图。在步骤S901中,开发人员在功能导航里选中要修改的功能,从而页面设计器804自动显示与该功能对应的可视化页面。在步骤S902中,开发人员在页面设计器804中通过控件的选择以及拖拽等操作对页面的呈现效果进行修改,从而对与该页面的呈现效果对应的代码及性能进行修改。并且在步骤S903中,重新加载修改后的代码以生成功能对象。在步骤S904中,通过运行功能对象来预览修改的功能。
图12示出根据第三实施例的页面设计器804的画面的示例示意图。如图12所示,左侧为最终呈现的页面的效果,右侧为可以在所述页面上添加的控件。在左侧可以设置表单的宽度、高度等。如图12右侧所示,所述控件包括页面的颜色、排版等。开发人员可以通过选择控件来对页面的呈现效果进行修改。
通过根据本发明的第三实施例的web开发系统,能够在运行时态下以可视化方式对页面的呈现属性进行修改。从而直接在web开发系统中可视化地修改与UI层对应的代码。而无需人工地在源代码中费时地寻找要修改的UI层代码段。并且将修改后的代码直接加载就可运行。无需像常规web系统那样由开发人员在本地编辑代码,对代码进行编译并且部署到服务器上才能运行。
(第四实施例)
图13是本发明的第四实施例的web开发系统中的代码生成和修改装置的框图。
图13的代码生成和修改装置与图5所示的代码生成和修改装置的不同之处是增加了代码编辑器1103和页面设计器1104。代码编辑器1103与图7所示的代码编辑器503相同,并且页面设计器1104与图10所示的页面设计器804相同。对于代码编辑器1103和页面设计器1104的描述与前文针对代码编辑器503和页面设计器804的描述相同,这里不再赘述。
图14是本发明的第四实施例的web开发系统的系统层级架构的示意图。图14的第四实施例的系统层级架构中详细描绘了代码生成器、代码编辑器与页面设计器与代码对象的各层的关系。从图14可以看出,代码生成器、代码编辑器和页面设计器对与页面层对象和业务逻辑层对象对应的代码进行生成和修改。
虽然针对第四实施例示出了代码生成器、代码编辑器和页面设计器与代码的对象的关系。但是本领域技术人员可以理解,上述关系同样适用于第一实施例到第三实施例。例如,对于第一实施例而言,代码生成器对与页面层对象和业务逻辑层对象对应的代码进行生成和修改。对于第二实施例而言,代码生成器和代码编辑器对与页面层对象和业务逻辑层对象对应的代码进行生成和修改。对于第三实施例而言,代码生成器和页面设计器对与页面层对象和业务逻辑层对象对应的代码进行生成和修改。
通过根据本发明的第四实施例的web开发系统,能够在运行时态下通过代码编辑器对代码进行编辑和修改。从而直接在web开发系统中非常容易地定位到要编辑或修改的代码段来进行修改,而无需人工地在源代码中费时地寻找要修改的代码段。并且将修改后的代码直接加载就可运行。无需像常规web系统那样由开发人员在本地编辑代码,对代码进行编译并且部署到服务器上才能运行。
此外,根据本发明的web开发系统,不仅在开发阶段可以以运行时态以所见即所得的方式进行开发。并且在使用过程中,当系统要进行升级时,只需修改脚本代码并由系统的服务器重新加载脚本代码即可升级。而无需像现有技术中那样需要对系统进行停机,对代码进行重新编译、部署和运行。这样提高了升级效率并且使得用户体验度更加良好。并且这样的升级可以是局部的或者全部的。使得升级变得更加灵活。
此外,用此web开发系统开发的每个功能模块都可以被控件化,从而每个功能模块可以被其他功能模块直接调用。这样每个模块的代码可以做到高度的重用。
虽然上面参照示例性实施例描述了本发明,但是本发明并不仅限于上述具体实施方式。本领域普通技术人员在本发明的实质范围内作出的变化、改型、添加或替换,也应属于本发明的保护范围。

Claims (13)

1.一种用于web开发系统的开发方法,包括以下步骤:
在web开发系统运行时,生成或修改用于预定功能的脚本代码,所述脚本代码为基于面向对象的编程语言的脚本代码;
经由脚本解析器解析生成或修改的脚本代码以生成新功能的对象类型或修改已有功能的对象类型;以及
由对象管理器根据生成的新功能的对象类型或修改的已有功能的对象类型生成新功能的对象或修改的已有功能的对象,并组织该对象与其他对象之间的调用关系,从而在web开发系统运行时生成或改变所述预定功能。
2.根据权利要求1所述的用于web开发系统的开发方法,其中,
所述生成或修改用于预定功能的脚本代码的步骤包括:
通过输入的参数来调用功能模板库中的与所述预定功能对应的模板,所述功能模板库包括至少一个与功能对应的脚本代码的模板;以及
生成与该预定功能对应的脚本代码。
3.根据权利要求1或2所述的用于web开发系统的开发方法,其中,
所述生成或修改用于预定功能的脚本代码的步骤包括:
自动调用与要修改的已有功能对应的脚本代码来进行修改。
4.根据权利要求1或2所述的用于web开发系统的开发方法,其中,
所述生成或修改用于预定功能的脚本代码的步骤包括:
以可视化方式对功能的呈现效果进行设计以自动生成或修改与所述功能的呈现效果对应的脚本代码。
5.根据权利要求3所述的用于web开发系统的开发方法,其中,
所述生成或修改用于预定功能的脚本代码的步骤包括:
以可视化方式对功能的呈现效果进行设计以自动生成或修改与所述功能的呈现效果对应的脚本代码。
6.一种web开发系统,包括:
脚本代码生成和修改装置,用于在web开发系统运行时生成或修改用于预定功能的脚本代码,所述脚本代码为基于面向对象的编程语言的脚本代码;
脚本解析器,用于解析生成或修改的脚本代码以生成新功能的对象类型或修改已有功能的对象类型;
对象管理器,用于根据生成的新功能的对象类型或修改的已有功能的对象类型生成新功能或修改已有功能的对象,并组织该对象与其他对象之间的调用关系,从而在web开发系统运行时生成或改变所述预定功能。
7.根据权利要求6所述的web开发系统,其中,
所述脚本代码生成和修改装置包括:
功能模板库,包括至少一个与功能对应的脚本代码的模板;以及
代码生成器,用于通过输入的参数来调用功能模板库中的与所述预定功能对应的模板,以生成与该预定功能对应的脚本代码。
8.根据权利要求6或7所述的web开发系统,其中,
所述脚本代码生成和修改装置包括:
代码编辑器,用于自动调用与要修改的功能对应的脚本代码来进行修改。
9.根据权利要求6或7所述的web开发系统,其中,
所述脚本代码生成和修改装置包括:
页面设计器,用于以可视化方式对功能的呈现效果进行设计以自动生成或修改与所述功能的呈现效果对应的脚本代码。
10.根据权利要求8所述的web开发系统,其中,
所述脚本代码生成和修改装置包括:
页面设计器,用于以可视化方式对功能的呈现效果进行设计以自动生成或修改与所述功能的呈现效果对应的脚本代码。
11.根据权利要求6或7所述的web开发系统,其中,
所述对象管理器与代码生成器、代码编辑器和/或页面设计器连接,以将代码生成器、代码编辑器和/或页面设计器生成的或编辑的代码生成为对象以及对象之间的关系。
12.根据权利要求8所述的web开发系统,其中,
所述对象管理器与代码生成器、代码编辑器和/或页面设计器连接,以将代码生成器、代码编辑器和/或页面设计器生成的或编辑的代码生成为对象以及对象之间的关系。
13.根据权利要求9所述的web开发系统,其中,
所述对象管理器与代码生成器、代码编辑器和/或页面设计器连接,以将代码生成器、代码编辑器和/或页面设计器生成的或编辑的代码生成为对象以及对象之间的关系。
CN201310616861.8A 2013-11-27 2013-11-27 用于web开发系统的开发方法和web开发系统 Active CN103617037B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201310616861.8A CN103617037B (zh) 2013-11-27 2013-11-27 用于web开发系统的开发方法和web开发系统
PCT/CN2014/092054 WO2015078343A1 (zh) 2013-11-27 2014-11-24 用于web开发系统的开发方法和web开发系统
US15/038,602 US9904522B2 (en) 2013-11-27 2014-11-24 Web development system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310616861.8A CN103617037B (zh) 2013-11-27 2013-11-27 用于web开发系统的开发方法和web开发系统

Publications (2)

Publication Number Publication Date
CN103617037A CN103617037A (zh) 2014-03-05
CN103617037B true CN103617037B (zh) 2017-12-08

Family

ID=50167740

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310616861.8A Active CN103617037B (zh) 2013-11-27 2013-11-27 用于web开发系统的开发方法和web开发系统

Country Status (3)

Country Link
US (1) US9904522B2 (zh)
CN (1) CN103617037B (zh)
WO (1) WO2015078343A1 (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617037B (zh) * 2013-11-27 2017-12-08 邵寻 用于web开发系统的开发方法和web开发系统
CN104899012A (zh) * 2014-03-06 2015-09-09 昆达电脑科技(昆山)有限公司 扩展基于脚本的应用程序的装置和方法
JP5604016B1 (ja) * 2014-07-04 2014-10-08 株式会社 ディー・エヌ・エー スクリプトのキャッシュ方法及びそれを適用した情報処理装置
CN104142824A (zh) * 2014-07-08 2014-11-12 北京彩云动力教育科技有限公司 一种基于类库的代码生成器及其实现方法
CN104598227A (zh) * 2014-12-31 2015-05-06 国家电网公司 一种修改系统展示页面内容的方法
CN105487864B (zh) * 2015-11-26 2019-06-04 北京京东尚科信息技术有限公司 代码自动生成的方法和装置
US10157215B2 (en) * 2016-01-13 2018-12-18 American Express Travel Related Services Company, Inc. System and method for managing data and updates to a database structure
US20180074659A1 (en) * 2016-09-12 2018-03-15 Cerner Innovation, Inc. Application user interface design tool
CN106648587A (zh) * 2016-09-28 2017-05-10 福州宇嘉软件科技有限公司 一种基于注解的Web应用代码生成方法
US10185556B2 (en) * 2017-02-22 2019-01-22 Sap Se Interactive software development kit documentation tool
CN107133044B (zh) * 2017-05-05 2021-01-05 上海携程商务有限公司 数据维护型页面的快速开发方法和系统
CN107368559A (zh) * 2017-07-06 2017-11-21 壹家易(上海)网络科技有限公司 后台系统的交互装置和方法
CN108008943A (zh) * 2017-11-30 2018-05-08 深圳市华力特电气有限公司 一种webAPP开发方法和系统
CN108256025A (zh) * 2018-01-10 2018-07-06 链家网(北京)科技有限公司 基于html5的页面的构建方法及装置
CN108733589B (zh) * 2018-04-12 2021-11-02 创新先进技术有限公司 分布式事务热部署的实现方法和装置
US10831892B2 (en) * 2018-06-07 2020-11-10 Sap Se Web browser script monitoring
CN109101566B (zh) * 2018-07-17 2021-09-10 杭州安恒信息技术股份有限公司 一种对数据库信息进行动态掩码的方法及系统
CN109325203A (zh) * 2018-09-10 2019-02-12 北京亚鸿世纪科技发展有限公司 一种自动化实现Web系统可视化复用的装置
CN110262790B (zh) * 2019-07-04 2024-05-07 平安科技(深圳)有限公司 组件生成方法、装置、存储介质及终端设备
CN110888633B (zh) * 2019-10-18 2023-04-11 福建天晴数码有限公司 一种Unity与H5组件同步方法及系统
CN111078209B (zh) * 2019-11-06 2023-07-07 口碑(上海)信息技术有限公司 业务页面的开发处理方法、装置及设备
CN113050934B (zh) * 2019-12-26 2023-12-26 东软集团(上海)有限公司 表单驱动智能开发方法、装置以存储介质
CN111399811A (zh) * 2020-03-18 2020-07-10 百度在线网络技术(北京)有限公司 可视化页面开发的方法、装置、设备以及存储介质
CN112363713B (zh) * 2020-11-30 2024-06-11 杭州玳数科技有限公司 一种绑定式的sql血缘解析数据流可视化交互方法
CN112477881B (zh) * 2020-12-09 2023-06-16 北京罗克维尔斯科技有限公司 车辆控制指令的生成方法和装置
CN113656037A (zh) * 2021-07-27 2021-11-16 克拉玛依油城数据有限公司 基于微服务管控动态脚本快速开发方法
CN114168121B (zh) * 2021-12-07 2022-08-16 济南红旗信息科技有限公司 一种基于代码工厂模式开发软件系统、终端和存储介质
CN114995879B (zh) * 2022-06-28 2023-02-03 北京慧点科技有限公司 一种基于低代码化平台的信息处理方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101034349A (zh) * 2007-04-06 2007-09-12 西安万年科技实业有限公司 基于功能设计的数据库应用系统开发平台
CN101477461A (zh) * 2009-02-10 2009-07-08 腾讯科技(深圳)有限公司 应用程序界面动态生成装置及方法
CN103309806A (zh) * 2013-05-03 2013-09-18 上海证券交易所 一种快速开发测试的装置及方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7178149B2 (en) * 2002-04-17 2007-02-13 Axeda Corporation XML scripting of soap commands
US7243341B2 (en) * 2002-04-29 2007-07-10 Nvidia Corporation Scripting language for processing typed structured data
US7316003B1 (en) * 2002-12-18 2008-01-01 Oracle International Corp. System and method for developing a dynamic web page
CA2454290C (en) * 2003-12-29 2013-05-21 Ibm Canada Limited-Ibm Canada Limitee Graphical user interface (gui) script generation and documentation
US20080046557A1 (en) * 2005-03-23 2008-02-21 Cheng Joseph C Method and system for designing, implementing, and managing client applications on mobile devices
US8943519B2 (en) * 2007-02-08 2015-01-27 International Business Machines Corporation Smart progress indicator for script processing
US7987446B2 (en) * 2007-04-24 2011-07-26 International Business Machines Corporation Method for automating variables in end-user programming system
CN102271121A (zh) * 2010-06-01 2011-12-07 铜陵玉成软件科技有限责任公司 面向业务模型的云计算开发平台实现方法
US8893081B2 (en) 2010-12-22 2014-11-18 Microsoft Corporation Selectively enabling runtime editing of an application
US9244707B2 (en) * 2011-01-25 2016-01-26 Microsoft Technology Licensing, Llc Transforming user interface actions to script commands
US20120291011A1 (en) * 2011-05-12 2012-11-15 Google Inc. User Interfaces to Assist in Creating Application Scripts
US9141346B2 (en) * 2011-05-12 2015-09-22 Google Inc. Layout management in a rapid application development tool
US8671387B2 (en) * 2011-05-12 2014-03-11 Google Inc. Compilation and injection of scripts in a rapid application development
CN102843393B (zh) * 2011-06-22 2015-02-25 腾讯科技(深圳)有限公司 网络应用的运行装置及方法
CN103135976B (zh) * 2011-11-30 2016-05-11 阿里巴巴集团控股有限公司 代码自动生成方法及装置
US10096022B2 (en) * 2011-12-13 2018-10-09 Visa International Service Association Dynamic widget generator apparatuses, methods and systems
US8799988B2 (en) * 2012-01-25 2014-08-05 Microsoft Corporation Document communication runtime interfaces
CN102810210A (zh) * 2012-05-30 2012-12-05 天津大学 利用flash脚本实现的三维骨骼动画控制系统及方法
US8966441B2 (en) * 2012-07-12 2015-02-24 Oracle International Corporation Dynamic scripts to extend static applications
US20140047413A1 (en) * 2012-08-09 2014-02-13 Modit, Inc. Developing, Modifying, and Using Applications
CN102902537B (zh) * 2012-09-19 2016-03-30 厦门亿联网络技术股份有限公司 基于FastCGI和HTML模板的嵌入式WEB MVC开发框架
CN103020310B (zh) * 2013-01-08 2015-10-28 中国南方电网有限责任公司调峰调频发电公司 一种基于脚本实现电力监控系统功能扩展和定制的方法
CN103617037B (zh) * 2013-11-27 2017-12-08 邵寻 用于web开发系统的开发方法和web开发系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101034349A (zh) * 2007-04-06 2007-09-12 西安万年科技实业有限公司 基于功能设计的数据库应用系统开发平台
CN101477461A (zh) * 2009-02-10 2009-07-08 腾讯科技(深圳)有限公司 应用程序界面动态生成装置及方法
CN103309806A (zh) * 2013-05-03 2013-09-18 上海证券交易所 一种快速开发测试的装置及方法

Also Published As

Publication number Publication date
CN103617037A (zh) 2014-03-05
US20160299745A1 (en) 2016-10-13
US9904522B2 (en) 2018-02-27
WO2015078343A1 (zh) 2015-06-04

Similar Documents

Publication Publication Date Title
CN103617037B (zh) 用于web开发系统的开发方法和web开发系统
US8561048B2 (en) Late and dynamic binding of pattern components
US7953767B2 (en) Developing applications using configurable patterns
US7366723B2 (en) Visual query modeling for configurable patterns
US7694272B2 (en) Method, a language and a system for the definition and implementation of software solutions by using a visualizable computer executable modeling language
CA2304020C (en) Method and system for database application software creation requiring minimal programming
US7493594B2 (en) System and method for designing component based applications
CA2782414C (en) Specifying user interface elements
CA2504082C (en) Method and apparatus for generating user interfaces based upon automation with full flexibility
JP5651121B2 (ja) データオブジェクトの管理および自動的リンク
US7921408B2 (en) System and method for applying development patterns for component based applications
US7734560B2 (en) Loose coupling of pattern components with interface regeneration and propagation
US8156469B2 (en) Single composition of pattern modules
US20190243665A1 (en) Application runtime configuration using design time artifacts
US8126937B2 (en) Visual database modeling
US20060236302A1 (en) System and method for unified visualization of two-tiered applications
US20160170719A1 (en) Software database system and process of building and operating the same
US20050065970A1 (en) System, method and apparatus for developing software
JP2004280821A (ja) ソフトウェアビジネスプロセスモデル
US20050114479A1 (en) System and method for hierarchically representing configuration items
US20050114361A1 (en) Method and apparatus for integrating data repositories and frameworks
JP2004280820A (ja) ビジネスソフトウェアアプリケーションをサポートするフレームワーク
JP2013518321A (ja) パターンベースのユーザインターフェース
CN109814844A (zh) 一种集成的支持元建模的开发和运行系统
CN117215556A (zh) 模块化的页面快速构建方法、系统、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: The inventor has waived the right to be mentioned

Inventor before: The inventor has waived the right to be mentioned

CB03 Change of inventor or designer information
TA01 Transfer of patent application right

Effective date of registration: 20171102

Address after: 100077, No. 18, No. 2006, No. 1 West Garden, Beijing, Fengtai District

Applicant after: Shao Xun

Applicant after: Zhang Jie

Address before: 100049 Beijing city Haidian District Road, No. 8 Tian Hai Lan Dong Yuan Building 3 unit D002

Applicant before: Zhang Jie

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant