CN119668564B - 跨语言程序的开发方法和装置、以及执行方法和装置 - Google Patents
跨语言程序的开发方法和装置、以及执行方法和装置Info
- Publication number
- CN119668564B CN119668564B CN202411963308.6A CN202411963308A CN119668564B CN 119668564 B CN119668564 B CN 119668564B CN 202411963308 A CN202411963308 A CN 202411963308A CN 119668564 B CN119668564 B CN 119668564B
- Authority
- CN
- China
- Prior art keywords
- environment
- control
- language
- component
- main body
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本公开提供了一种跨语言程序的开发装置和方法,可用于金融科技领域或其他领域。该装置包括:主体开发平台、组件添加模块和转换组件。其中,主体开发平台用于开发主体框架。组件添加模块用于添加与主体框架实现语言不同的业务执行组件,其中主体框架运行于第一环境,业务执行组件运行于第二环境。转换组件用于:接收主体框架中的控件对触发事件的响应事件,当接收到响应事件时在第一环境中构造第二环境,然后在构造的第二环境中加载业务执行组件并触发相应功能的执行,以及将执行结果转换为第一环境中的格式后回传至主体框架的用户界面。本公开还提供了一种跨语言程序的执行方法和装置,以及一种电子设备、存储介质和程序产品。
Description
技术领域
本公开涉及软件技术领域,可用于金融科技领域或其他领域,更具体地涉及一种跨语言程序的开发装置和方法、一种跨语言程序的执行方法和装置、电子设备、介质和程序产品。
背景技术
应用程序通常是使用单一编程语言(如C、C++、C#或Java)开发的。这样带来的一个问题是:不同语言编写的功能往往难以在一个程序中运行,这样比如当某个功能是使用某种语言开发的(如jar包),如果要想在使用另一种语言开发了主体框架的程序中也加入该功能时,就需要使用与该主体框架相同的语言重新开发该功能组件,这样势必会带来重复性工作和资源的浪费。而且如果该功能组件的开发人员对主体框架所使用开发语言不熟悉的话,重新开发功能组件的困难也会明显加大,而这也是经常会出现的情况。
发明内容
鉴于上述问题,本公开提供了一种跨语言程序的开发装置和方法、一种跨语言程序的执行方法和装置、电子设备、介质和程序产品。
本公开实施例的第一方面提供了一种跨语言程序的开发装置。所述装置包括:主体开发平台、组件添加模块和转换组件。
主体开发平台用于配置主体框架,其中,所述主体框架由第一语言实现,所述第一语言的运行环境为第一环境。
组件添加模块用于添加业务执行组件,所述业务执行组件由第二语言实现,所述第二语言的运行环境为第二环境。
转换组件运行于所述第一环境中,用于与所述主体框架通信连接并在所述第一环境中构造所述第二环境以在所构造的第二环境中加载所述业务执行组件。
其中,所述主体框架包括用户界面和在所述用户界面中显示的控件。所述主体开发平台还用于:配置所述控件的触发事件和所述控件与所述业务执行组件中的第一功能的第一绑定关系。所述转换组件还用于:接收所述控件对所述触发事件的响应事件,当接收到所述响应事件时基于所述第一绑定关系加载所述业务执行组件并触发所述第一功能的执行,以及将所述第一功能的执行结果转换为第一环境中的格式后回传至所述用户界面。
根据本公开的实施例,所述主体开发平台包括配置文件,所述配置文件用于配置所述控件,其中,所述配置文件包括多个节点,每个节点用于配置指定信息。
根据本公开的实施例,所述多个节点包括控制节点和功能节点。所述控制节点用于配置所述控件在所述用户界面中的位置信息和所述控件的显示属性;以及所述功能节点用于配置所述控件的触发事件和所述控件与所述业务执行组件中的第一功能的第一绑定关系。
根据本公开的实施例,所述多个节点还包括启动节点,所述启动节点用于配置当所述主体框架启动时所述控件的预加载信息。
根据本公开的实施例,所述预加载信息包括所述控件与所述业务执行组件中的第二功能的第二绑定关系。其中,所述转换组件还用于:当所述主体框架启动时基于所述第二绑定关系加载所述业务执行组件并触发所述第二功能的执行,以及将所述第二功能的执行结果转换为所述第一环境中的格式后回传至所述用户界面。
根据本公开的实施例,所述主体开发平台包括至少一个容器,所述容器用于配置所述用户界面。
根据本公开的实施例,所述至少一个容器包括界面容器和表格容器。
本公开实施例的第二方面,提供了一种跨语言程序的开发方法。所述方法包括:配置主体框架,其中,所述主体框架由第一语言实现,所述第一语言的运行环境为第一环境;添加业务执行组件,所述业务执行组件由第二语言实现,所述第二语言的运行环境为第二环境;以及通过转换组件建立所述主体框架与所述业务执行组件的通信连接;其中,所述转换组件被运行于所述第一环境中,用于与所述主体框架通信连接,并在所述第一环境中构造所述第二环境以在所构造的第二环境中加载所述业务执行组件。其中,所述主体框架包括用户界面和在所述用户界面中显示的控件。相应地,所述配置主体框架包括:配置所述控件的触发事件和所述控件与所述业务执行组件中的第一功能的第一绑定关系。所述通过转换组件建立所述主体框架与所述业务执行组件的通信连接包括配置转换组件执行如下操作:接收所述控件对所述触发事件的响应事件,当接收到所述响应事件时基于所述第一绑定关系加载所述业务执行组件并触发所述第一功能的执行,以及将所述第一功能的执行结果转换为第一环境中的格式后回传至所述用户界面。
本公开实施例的第三方面,提供了一种跨语言程序的执行方法。其中,所述跨语言程序包括主体框架、业务执行组件和转换组件,所述主体框架为由第一语言实现,所述业务执行组件由第二语言实现,所述第一语言的运行环境为第一环境,所述第二语言的运行环境为第二环境;所述转换组件运行于所述第一环境中并能够在所述第一环境中构造所述第二环境。其中,所述方法包括:响应于接收到启动指令,在第一环境中启动所述主体框架,其中,所述主体框架包括用户界面和在所述用户界面中显示的控件;响应于所述主体框架的启动,配置所述控件,包括配置所述控件的触发事件和所述控件与业务执行组件中的第一功能的第一绑定关系;当通过所述用户界面接收到所述触发事件时,获取所述控件对所述触发事件的响应事件;以及基于所述响应事件触发所述转换组件执行如下操作:在所述第一环境中构造所述第二环境;基于所述第一绑定关系,在构造的所述第二环境中加载所述业务执行组件并触发所述第一功能的执行;以及将所述第一功能的执行结果转换为第一环境中的格式后回传至所述用户界面。
根据本公开的实施例,所述配置所述控件包括:通过读取所述控件的配置文件来配置所述控件,其中,所述配置文件包括多个节点,每个节点用于配置指定信息。
根据本公开的实施例,所述多个节点包括控制节点和功能节点,所述配置所述控件包括:通过读取所述控制节点,配置所述控件在所述用户界面中的位置和显示效果,其中,所述控制节点用于配置所述控件在所述用户界面中的位置信息和所述控件的显示属性;通过读取所述功能节点,配置所述控件的触发事件和所述控件与业务执行组件中的第一功能的第一绑定关系,其中,所述功能节点用于配置所述触发事件和所述第一绑定关系。
根据本公开的实施例,所述多个节点还包括启动节点,所述配置所述控件还包括:通过读取所述启动节点,配置所述控件的预加载信息,其中,所述启动节点用于配置当所述主体框架启动时所述控件的预加载信息。
根据本公开的实施例,所述预加载信息包括所述控件与所述业务执行组件中的第二功能的第二绑定关系,其中,所述配置所述控件的预加载信息还包括:所述转换组件读取所述启动节点,并基于所述第二绑定关系执行:在所述第一环境中构造所述第二环境,基于所述第二绑定关系加载所述业务执行组件并触发所述第二功能的执行,以及将所述第二功能的执行结果转换为所述第一环境中的格式后回传至所述用户界面。
根据本公开的实施例,所述在第一环境中启动主体框架包括:获取用于配置所述用户界面的至少一个容器;基于所述至少一个容器中的信息,加载所述用户界面。
本公开实施例的第四方面,提供了一种跨语言程序的执行装置,其中,所述跨语言程序包括主体框架、业务执行组件和转换组件,所述主体框架为由第一语言实现,所述业务执行组件由第二语言实现,所述第一语言的运行环境为第一环境,所述第二语言的运行环境为第二环境;所述转换组件运行于所述第一环境中并能够在所述第一环境中构造所述第二环境。所述装置包括启动单元、配置单元和交互单元。
启动单元用于响应于接收到启动指令,在第一环境中启动主体框架,其中,所述主体框架包括用户界面和在所述用户界面中显示的控件。
配置单元用于响应于所述主体框架的启动,配置所述控件,包括配置所述控件的触发事件和所述控件与业务执行组件中的第一功能的第一绑定关系;
交互单元,用于:当通过所述用户界面接收到所述控件的触发事件时,获取所述控件对所述触发事件的响应事件;以及基于所述响应事件触发转换组件执行如下操作:在所述第一环境中构造所述第二环境;基于所述第一绑定关系,在构造的所述第二环境中加载所述业务执行组件并触发所述第一功能的执行;以及将所述第一功能的执行结果转换为第一环境中的格式后回传至所述用户界面。
本公开实施例的第五方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个计算机程序,其中,上述一个或多个处理器执行上述一个或多个计算机程序以实现上述第二方面或第三方面提供的方法的步骤。
本公开实施例的第六方面还提供了一种计算机可读存储介质,其上存储有计算机程序或指令,上述计算机程序或指令被处理器执行时实现上述第二方面或第三方面提供方法的步骤。
本公开实施例的第七方面还提供了一种计算机程序产品,包括计算机程序或指令,上述计算机程序或指令被处理器执行时实现上述第二方面或第三方面提供的方法的步骤。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的跨语言程序的结构和调用逻辑;
图2示意性示出了根据本公开实施例的跨语言程序的开发装置、执行装置和方法的应用场景图;
图3示意性示出了根据本公开实施例的跨语言程序的开发装置的结构示意图;
图4示意性示出了根据本公开实施例的跨语言程序的开发装置中主体开发平台中的配置文件的示意图;
图5示意性示出了根据本公开一实施例的跨语言程序的开发方法的流程图;
图6示意性示出了根据本公开一实施例的跨语言程序的执行方法的流程图;
图7示意性示出了根据本公开另一实施例的跨语言程序的执行方法中配置控件的流程图;
图8示意性示出了根据本公开再一实施例的跨语言程序的执行方法的流程图;
图9示意性示出了根据本公开一实施例的跨语言程序的执行装置的结构示意图;以及
图10示意性示出了适于实现本公开实施例的跨语言程序的开发方法或执行方法的电子设备的结构示意图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
图1示意性示出了根据本公开实施例的跨语言程序100的结构和调用逻辑。
如图1所示,本公开实施例的跨语言程序100包括主体框架110、业务执行组件130和转换组件120。主体框架110为由第一语言实现,第一语言的运行环境为第一环境,主体框架110包括用户界面和在用户界面中显示的控件。业务执行组件130由第二语言实现,第二语言的运行环境为第二环境。转换组件120运行于第一环境中并能够在第一环境中构造第二环境,其中,转换组件120可以在第一环境中与主体框架110通信连接,并通过其构造的第二环境以在所构造的第二环境中加载业务执行组件130,从而实现主体框架110与业务执行组件130的通信。例如,假设主体框架110由C#实现,业务执行组件130由Java语言实现,则第一环境为.NET框架,第二环境为Java虚拟机。相应地,转换组件120则为运行在.NET框架中且能够在.NET框架中启动Java虚拟机进程的组件。
本公开实施例中,主体框架110调用业务执行组件130的具体方式是:通过用户界面接收控件的触发事件(如点击),然后将控件对该触发事件的响应事件发送给转换组件120,接着由转换组件120调用业务执行组件130在第二环境中执行,并将执行结果转换为第一环境中的格式后回传至用户界面中进行显示。以此方式,本公开实施例的跨语言程序100中业务执行组件130可以仅用于后端的业务逻辑执行,而其他功能则由主体框架110和转换组件120来实现。从而当第一语言开发的主体框架110,需要调用第二语言开发的业务执行组件130时,只需要在主体框架110中通过对控件进行相应的配置即可实现,避免了重复开发业务执行组件130的麻烦,而且还能够扩展程序的功能。
另外,随着互联网的技术发展,网页程序的兴起和桌面程序的落寞,大多数研发人员从桌面程序开发转向网页程序开发,作为桌面程序开发语言的C#已经不再是当前的主流开发语言,网页程序开发语言Java成为主要语言之一。在某些应用场景下(如办公场景、报表编制等),桌面程序由于其更好的界面交互、更丰富的功能等原因仍然是程序设计的主要选择,但是当前开发市场下C#的研发人员非常缺乏,导致桌面程序的开发需求无法得到满足。对于该问题,本公开实施例的跨语言程序100就能够很好地解决,其中,本公开实施例的跨语言程序100能够同时使用C#和Java开发桌面程序,如使用C#开发主体框架110,然后通过转换组件120就可以在程序中运行Java语言开发的业务执行组件130,实现了C#调用Java程序模块,业务逻辑可以由Java语言实现,减低对C#开发人员的依赖。
图2示意性示出了根据本公开实施例的跨语言程序100的开发装置、执行装置和方法的应用场景图。
如图2所示,根据该实施例的应用场景200可以包括第一终端设备201、第二终端设备202、第三终端设备203、网络204和服务器205。网络204为用以在第一终端设备201、第二终端设备202、第三终端设备203和服务器205之间提供通信链路的介质。网络204可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用第一终端设备201、第二终端设备202、第三终端设备203通过网络204与服务器205交互,以接收或发送消息等。第一终端设备201、第二终端设备202、第三终端设备203上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、软件开发工具等(仅为示例)。
第一终端设备201、第二终端设备202、第三终端设备203可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器205可以是提供各种服务的服务器,例如对用户利用第一终端设备201、第二终端设备202、第三终端设备203所浏览的网站提供支持的后台管理服务器(仅为示例)。
需要说明的是,本公开实施例所提供的跨语言程序的开发方法或执行方法一般可以由服务器205执行。相应地,本公开实施例所提供的跨语言程序的开发装置或执行装置一般可以设置于服务器205中。本公开实施例所提供的跨语言程序的开发方法或执行方法也可以由不同于服务器205且能够与第一终端设备201、第二终端设备202、第三终端设备203和/或服务器205通信的服务器或服务器集群执行。相应地,本公开实施例所提供的跨语言程序的开发装置或执行装置也可以设置于不同于服务器205且能够与第一终端设备201、第二终端设备202、第三终端设备203和/或服务器205通信的服务器或服务器集群中。
应该理解,图2中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
需要说明的是,本公开实施例提供的方法和装置可用于金融科技领域,也可用于除金融科技领域之外的任意领域,本公开对应用领域不做限定。
图3示意性示出了根据本公开实施例的跨语言程序的开发装置300的结构示意图。
如图3所示,该装置300可以包括主体开发平台310、组件添加模块320和转换组件120。其中,该装置300可以是由第一语言实现的。
主体开发平台310用于配置主体框架110,其中,主体框架110由第一语言实现,第一语言的运行环境为第一环境。其中,主体框架110包括用户界面和在用户界面中显示的控件。
组件添加模块320用于添加业务执行组件130,业务执行组件130由第二语言实现,第二语言的运行环境为第二环境。
转换组件120运行于第一环境中,用于与主体框架110通信连接并在第一环境中构造第二环境以在所构造的第二环境中加载业务执行组件130。本公开实施例中,通过转换组件120可以实现第一语言调用第二语言的程序。在一个实施例中,转换组件120可以实现第二语言编译后的低级语言到第一语言编译后的低级语言的转换(如Java字节码到.NET中间语言的转换),使得第二语言编写的业务执行组件130可以在第一环境中运行。在另一些实施例中,转换组件120还可以实现第二语言到第一语言的转换(如Java类库到.NET类库的转换)。
进一步地,主体开发平台310还用于:配置控件的触发事件和控件与业务执行组件130中的第一功能的第一绑定关系。
相应地,转换组件120还用于接收控件对触发事件的响应事件,当接收到响应事件时基于第一绑定关系加载业务执行组件130并触发第一功能的执行,以及将第一功能的执行结果转换为第一环境中的格式后回传至用户界面。该第一功能可以是业务执行组件130中的全部功能,或者也可以是部分功能(如特定的函数、类或方法等)。
这样,通过装置300开发跨语言程序100时,可以在主体开发平台310中以第一语言开发主体框架110,同时添加第二语言开发的业务执行组件130,然后通过在主体开发平台310中对相应控件的配置,就可以通过转换组件120来调用业务执行组件130来执行具体地后端逻辑并获取执行结果。以此方式,避免了业务执行组件130的重复开发,方便了主体框架110的功能扩展,降低了业务执行组件130的开发门槛。
本公开实施例中的转换组件120可以是利用第一语言自行编写的组件,也可以是对已有的组件(如.NET平台上用于Java虚拟机和字节码到中间语言的转换器)进行配置后得到的。
在另一些实施例中,主体开发平台310还包括至少一个容器(例如,界面容器和表格容器),其中,容器用于配置用户界面。在一个实施例中,可以在主体开发平台310的代码(第一语言实现的代码)中预置一个界面容器用来展示配置化用户界面。例如,界面容器中预先处理布局,分为上下两部分,上半部分为参数区域,下半部分为按钮区域,在每个区域中放入表格容器。这样开发人员可以在主体开发平台310中通过对界面容器和/或表格容器的布局处理等进行拖、拉、拽、填充等的配置,来快速开发用户界面,避免使用第一语言来编写用户界面,降低开发难度。
在一些实施例中,主体开发平台310还可以包括配置文件,配置文件用于配置控件,其中,配置文件包括多个节点,每个节点用于配置指定信息。这样开发人员在主体开发平台310中配置控件时,通过填写配置文件中每个节点的指定信息的方式,就可以快速配置控件,实现低代码开发。
在一个实施例中,配置文件中的多个节点可以分为控制节点、功能节点和启动节点,如图4所示。
控制节点用于配置控件在用户界面中的位置信息和控件的显示属性(如样式、要素、颜色等显示效果)。在一实施例中,控制节点定义用户界面中具体的每个控件的样式和要素,样式包含元素宽度、位置布局、回显值等,要素包含按钮、输入框、标签、下拉框等。
功能节点用于配置控件的触发事件和控件与业务执行组件130中的第一功能的第一绑定关系。在一实施例中,功能节点定义控件绑定的触发事件和业务执行组件130中具体地函数(如,jar包函数),可以在其中配置函数的方法名、参数名等。
启动节点用于配置当主体框架110启动时控件的预加载信息(如预加载的文本信息、图像信息,如默认值等)。通过预加载信息,可以在控件被触发时更快地将业务执行组件的第一功能的执行结果展示到用户界面上。
在一个实施例中,启动节点中配置的预加载信息可以包括控件与业务执行组件130中的第二功能的第二绑定关系。例如,启动节点可以定义用户界面初始化时控件中需要预加载的业务执行组件130中的函数、方法、调用方式以及界面联动方式。在这种情况下,转换组件120还用于:当主体框架110启动或用户界面初始化时读取启动节点中定义的第二绑定关系,并基于该第二绑定关系加载业务执行组件130并触发该第二功能的执行,以及将该第二功能的执行结果转换为第一环境中的格式后回传至用户界面。这样可以在控件中预加载业务执行组件的一些函数功能(如第一功能的前置功能,如部分不变化的函数功能、方法、参数等),提高控件被触发时业务执行组件中第一功能的执行速度,从而提高跨语言程序的交互响应效率。
这样,本公开实施例的开发装置通过提供配置化容器和配置文件,使得开发人员可以通过编写配置的方式实现对用户界面和控件的配置化开发,一方面简化主体框架110的开发过程,另一方面在开发人员对第一语言不熟悉的情况下也减少了对第一语言的依赖,降低了开发门槛。
图5示意性示出了根据本公开一实施例的跨语言程序100的开发方法的流程图。该开发方法可以由开发装置300来执行。
具体地,如图5所示,该开发方法可以包括操作S510~操作S530,其中操作S530至少包括操作S531~操作S533。
在操作S510,配置主体框架110,主体框架110包括用户界面和在用户界面中显示的控件,从而配置主体框架110包括配置用户界面和控件。其中配置控件具体包括配置控件的触发事件和控件与业务执行组件130中的第一功能的第一绑定关系。
在操作S520,添加业务执行组件130,业务执行组件130由第二语言实现,第二语言的运行环境为第二环境。
在操作S530,通过转换组件120建立主体框架110与业务执行组件130的通信连接;其中,转换组件120被运行于第一环境中,用于与主体框架110通信连接,并在第一环境中构造第二环境以在所构造的第二环境中加载业务执行组件130。
具体地操作S530包括配置转换组件120,具体包括操作S531~操作S533。
在操作S531,配置转换组件120接收控件对触发事件的响应事件。
在操作S532,配置转换组件120当接收到响应事件时,基于第一绑定关系加载业务执行组件130并触发第一功能的执行。
在操作S533,配置转换组件120将第一功能的执行结果转换为第一环境中的格式后回传至用户界面。
在另一些实施例中,还可以对控件配置预加载信息。其中,当预加载信息包括控件与业务执行组件130中的第二功能的第二绑定关系时,操作S530中还可以进一步配置转换组件120执行如下操作:当主体框架110启动或用户界面初始化时读取对控件配置的预加载信息,并基于其中的第二绑定关系加载业务执行组件130并触发其中的第二功能的执行,以及将该第二功能的执行结果转换为第一环境中的格式后回传至用户界面。
本公开实施例的开发方法,允许开发人员将以第二语言开发的业务执行组件130添加到以第一语言开发的主体框架110中,通过对控件的配置将控件的触发与由业务执行组件130的业务逻辑相关联,实现通过对控件的触发,经由转换组件120来调用后端的业务逻辑执行,并将执行结果返回到用户界面中进行显示。避免了业务逻辑的重复开发,方便了开发人员的使用。
开发人员使用本公开实施例的开发装置开发完程序后(如开发人员点击提交),开发装置可以将其中配置的主体框架110、添加的业务执行组件130以及转换组件120一起封装,形成跨语言程序100。本公开实施例相应地提供了适用于该跨语言程序的执行方法。接下来通过图6~图8对本公开实施例的跨语言程序的执行方法进行示例性介绍。
图6示意性示出了根据本公开一实施例的跨语言程序的执行方法的流程图。
如图6所示,本公开实施例的跨语言程序的执行方法可以包括操作S610~操作S670。
在操作S610,响应于接收到启动指令,在第一环境中启动主体框架110,其中,主体框架110包括用户界面和在用户界面中显示的控件。
在操作S620,响应于主体框架110的启动,配置控件,其中配置控件的触发事件和控件与业务执行组件130中的第一功能的第一绑定关系。在一个实施例中,可以通过读取如图4所示的配置文件中的信息,来配置控件。
在操作S630,通过用户界面接收控件的触发事件。
在操作S640,响应于接收到触发事件,获取控件对触发事件的响应事件。
在操作S650,基于响应事件触发转换组件120在第一环境中构造第二环境。
在操作S660,转换组件120基于第一绑定关系,在构造的第二环境中加载业务执行组件130并触发第一功能的执行。
接下来在操作S670,将第一功能的执行结果转换为第一环境中的格式后回传至用户界面。
在一个实施例中,当控件的触发事件发生后(如用户点击了按钮),可以读取配置文件中该控件的功能节点,从中找到需要调用的第一功能在业务执行组件130中的详细信息(如,类名,方法名、参数类型和参数值等),然后通过转换组件120调用业务执行组件130中该目标方法并执行,得到执行结果后进行格式转换后返回,流程结束。在一个实施例中,当第一语言为C#语言,第二语音为Java语言,转换组件120为对.NET平台上用于Java虚拟机和字节码到中间语言的转换器配置得到的情况下,当发生触发事件后,读取配置文件中的功能节点,找到需要调用的方法所在类名,方法名,参数类型和参数值,然后使用.NET平台上用于Java虚拟机和字节码到中间语言的转换器通过反射机制的方式调用目标方法,等待jar包返回调用结果信息。
本公开实施例中,当跨语言程序100运行时,首先在启动过程中配置控件的触发事件以及控件和业务执行组件之间的绑定关系,然后当控件被触发后,通过转换组件调用业务执行组件,实现了通过控件的触发对后端业务执行逻辑的调用,最终将业务执行组件的相应执行结果回显到用户界面中,实现了跨语言程序100的有效运行。达到了以第一语言实现用户交互、第二语言实现后端业务逻辑的跨语言调用和执行,可以通过开发人员比较熟悉的第二语言(如Java语言)来编写实现业务逻辑功能的业务执行组件130,同时使用便于实现用户交互(如桌面交互)的第一语言(如C#语言)来实现主体框架110中的用户界面和控件的配置,在满足功能需求的同时减少对用户不熟悉的第一语言的开发资源的依赖,同时能够发挥第一语言在用户交互方面的优势,满足第一语言比较有优势的用户交互场景的用户体验和交互需求。
在一个实施例中,如图7所示,上述操作S620中配置控件的过程,具体可以包括操作S721~操作S726。结合图4说明如下。
首先在操作S721,通过读取配置文件中的控制节点,配置控件在用户界面中的位置和显示效果。具体地,可以读取配置文件中的每个控制节点,判断控制节点中的控件类型(如Type:按钮/文本标签/输入框/下拉框),动态地在用户界面中创建对应控件;读取该控制节点中控件的其他属性信息,如控件名称,显示文本,所在行列,控件宽度,所在区域等信息,可以将创建好的控件依次添加到用户界面中对应区域的表格容器中。
在操作S722,通过读取配置文件中的功能节点,配置控件的触发事件和控件与业务执行组件130中的第一功能的第一绑定关系。具体地,可以读取配置文件中的每个功能节点中的控件名称,找到刚创建好的控件,并根据功能节点中的触发事件的信息为该控件绑定触发事件,同时根据功能节点中的业务执行组件130的信息(如jar包名、类名)和第一功能的信息(如函数名、方法名),为该控件绑定业务逻辑,形成该第一绑定关系。
在操作S723,通过读取启动节点,配置控件的预加载信息。其中,该实施例中该预加载信息可以包括控件与业务执行组件130中的第二功能的第二绑定关系。
接下来在操作S724,转换组件120读取配置文件中的启动节点,并基于其中的该第二绑定关系在第一环境中构造第二环境。
然后在操作S725,转换组件基于第二绑定关系加载业务执行组件130并触发第二功能的执行。
最后在操作S726,转换组件120将第二功能的执行结果转换为第一环境中的格式后回传至用户界面。从而在用户界面中利用该第二功能的执行结果配置控件,如将第二功能的执行结果作为控件的初始值或者默认值进行显示。本公开实施例中当启动节点中的预加载信息包括第二绑定关系时,可以触发转换组件加载第二绑定关系中的功能并将执行结果回显,一方面可以使第二控件在触发前的初始显示或默认显示与使用同种语言开发后端业务逻辑时保持一致,从而做到用户无感。另一方面,当第二功能为第一功能的前置功能(如相关的函数或参数)时,也可以加块控件在触发时的响应效率。
图8示意性示出了根据本公开再一实施例的跨语言程序的执行方法的流程图。
如图8所示,本公开实施例的跨语言程序的执行方法可以包括操作S1~S7。以主体框架110由C#实现,业务执行组件130由Java语言实现(如业务执行组件130为jar包)为例,说明如下。
S1,接收到程序启动指令后,加载跨语言程序100的用户界面的主界面框体。
S2,加载用户界面的配置信息,如用于配置界面框体的各种容器(界面容器、表格容器)并根据容器中的配置信息,执行容器中界面的初始化方法。例如,获取用于配置用户界面的至少一个容器,然后基于至少一个容器中的信息,加载用户界面。
S3,通过控件创建模块读取并解析配置文件中的控制节点,生成控制节点中定义的控件,按照控制节点中控件的位置信息和显示属性,将控件添加到用户界面上进行显示。
S4,通过事件触发模块读取并解析配置文件中的功能节点,为S3中动态生成的控件绑定点击触发事件和用于后台执行业务逻辑的业务执行组件130中的第一功能的详细信息。
S5,通过事件触发模块解析配置文件中的启动节点(回显配置)中的预加载信息,并根据预加载信息将控件绑定到对应的第二功能中。
S6,用户界面加载中,触发启动节点中的预加载信息的加载,通过转换组件120在第一环境中启动第二环境,调用业务执行组件130中实现第二功能的功能函数,将响应结果绘制到用户界面,完成数据回显,实现对控件的预加载信息配置。例如,通过转换组件120在.NET环境中启动JVM调用jar包中的实现第二功能的功能函数,将响应结果绘制到界面。
S7,用户界面加载完成后,当用户操作用户界面中的控件产生控件的触发事件后,执行与控件具有第一绑定关系的业务执行组件130的第一功能。具体地,通过转换组件120在第一环境中启动第二环境,调用业务执行组件130中实现第一功能的各种功能函数、参数、方法等,并将响应结果展示到用户界面,实现用户交互响应。例如,通过转换组件120在.NET环境中启动JVM调用jar包中的实现第一功能的功能函数,将响应结果展示到界面。
具体地,当转换组件120加载一个业务执行组件130(如jar包)时,可以根据该业务执行组件130的字节码文件创建一个对应的.NET类型,这个类型可以包含该Java类的各种信息,如类名、属性、方法等。在.NET环境中,可以通过这个类型可以动态地获取Java类的信息、创建对象、调用方法等。这样,主体框架110通过转换组件120加载目标Java程序包,然后指定调用方法所在类名,方法名,参数类型和参数值,实现对Java目标方法的调用。
在一个实施例中,本公开实施例的跨语言程序的执行方法可以预先以执行脚本或程序模块的方式存放在开发装置300中,并在用户使用开发装置300开发完跨语言程序100后,在形成跨语言程序100的安装包时将该执行脚本一起封装到安装包中。
通过本公开实施例,可以使跨语言程序100能够实现主体框架110对不同语言实现的业务执行组件130的精准调用,达到了以第二语言为主、第一语言为辅的程序开发模型和程序执行效果。其中,可以通过开发人员比较熟悉的第二语言(如Java语言)来编写实现业务逻辑功能的业务执行组件130,同时使用便于实现用户交互(如桌面交互)的第一语言(如C#语言)来实现主体框架110中的用户界面和控件的配置,在满足功能需求的同时减少对用户不熟悉的第一语言的开发资源的依赖,同时能够发挥第一语言在用户交互方面的优势,满足第一语言比较有优势的用户交互场景的用户体验和交互需求。
通过本公开实施例,在进行主体框架110开发时,对用户界面和控件都可以通过编写配置的方式来开发,这样主体框架110低代码开发方式进一步降低了对第一语言的依赖,尤其是在没有特殊技术需求或复杂业务逻辑处理的场景下,这种方式允许不熟悉第一语言编程的用户通过配置工具来创建、设计和部署应用程序的前端界面,从而极大地加速了开发过程并降低了开发门槛。
图9示意性示出了根据本公开一实施例的跨语言程序100的执行装置900的结构示意图。
如图9所示,该执行装置900可以包括启动单元910、配置单元920和交互单元930。
启动单元910用于响应于接收到启动指令,在第一环境中启动主体框架110,其中,主体框架110包括用户界面和在用户界面中显示的控件。在一个实施例中启动单元910可以执行前文介绍的操作S610或操作S1~S2。
配置单元920用于响应于主体框架110的启动,配置控件。具体地,配置单元920可以用于配置控件的触发事件和控件与业务执行组件130中的第一功能的第一绑定关系。在一个实施例中,配置单元920可以执行前文介绍的操作S620或者操作S3~S6。在一个实施例中,配置单元920可以包括前文介绍的控件创建模块和事件触发模块。
交互单元930用于:首先通过用户界面接收控件的触发事件,然后响应于接收到触发事件,获取控件对触发事件的响应事件,接下来基于响应事件触发转换组件120在第一环境中构造第二环境,基于第一绑定关系,在构造的第二环境中加载业务执行组件130并触发第一功能的执行,以及将第一功能的执行结果转换为第一环境中的格式后回传至用户界面。在一个实施例中,交互单元930可以执行前文介绍的操作S630~操作S670或操作S7。
该执行装置900可以执行参考图6~图8介绍的跨语言程序的执行方法,具体参见前文描述,此处不再赘述。
根据本公开的实施例,主体开发平台310、组件添加模块320、启动单元910、配置单元920、交互单元930、控件创建模块和事件触发模块中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,主体开发平台310、组件添加模块320、转换组件120、启动单元910、配置单元920、交互单元930、控件创建模块和事件触发模块中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,主体开发平台310、组件添加模块320、转换组件120、启动单元910、配置单元920、交互单元930、控件创建模块和事件触发模块中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图10示意性示出了适于实现本公开实施例的跨语言程序的开发方法或执行方法的电子设备的结构示意图。
如图10所示,根据本公开实施例的电子设备1000包括处理器1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(RAM)1003中的程序而执行各种适当的动作和处理。处理器1001例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器1001还可以包括用于缓存用途的板载存储器。处理器1001可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1003中,存储有电子设备1000操作所需的各种程序和数据。处理器 1001、ROM 1002以及RAM 1003通过总线1004彼此相连。处理器1001通过执行ROM 1002和/或RAM1003中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,程序也可以存储在除ROM 1002和RAM 1003以外的一个或多个存储器中。处理器1001也可以通过执行存储在一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备1000还可以包括输入/输出(I/O)接口1005,输入/输出(I/O)接口1005也连接至总线1004。电子设备1000还可以包括连接至输入/输出(I/O)接口1005的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至输入/输出(I/O)接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1002和/或RAM 1003和/或ROM 1002和RAM 1003以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的方法。
在该计算机程序被处理器1001执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分1009被下载和安装,和/或从可拆卸介质1011被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被处理器1001执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (18)
1.一种跨语言程序的开发装置,其中,所述装置包括:
主体开发平台,用于配置主体框架,其中,所述主体框架由第一语言实现,所述第一语言的运行环境为第一环境;
组件添加模块,用于添加业务执行组件,所述业务执行组件由第二语言实现,所述第二语言的运行环境为第二环境;
转换组件,运行于所述第一环境中,用于与所述主体框架通信连接并在所述第一环境中构造所述第二环境以在所构造的第二环境中加载所述业务执行组件;
其中,所述主体框架包括用户界面和在所述用户界面中显示的控件;
所述主体开发平台还用于:配置所述控件的触发事件和所述控件与所述业务执行组件中的第一功能的第一绑定关系;
所述转换组件还用于:接收所述控件对所述触发事件的响应事件,当接收到所述响应事件时基于所述第一绑定关系加载所述业务执行组件并触发所述第一功能的执行,以及将所述第一功能的执行结果转换为第一环境中的格式后回传至所述用户界面。
2.根据权利要求1所述的跨语言程序的开发装置,其中,所述主体开发平台包括配置文件,所述配置文件用于配置所述控件,其中,所述配置文件包括多个节点,每个节点用于配置指定信息。
3.根据权利要求2所述的跨语言程序的开发装置,其中,所述多个节点包括控制节点和功能节点:
所述控制节点用于配置所述控件在所述用户界面中的位置信息和所述控件的显示属性;以及
所述功能节点用于配置所述控件的触发事件和所述控件与所述业务执行组件中的第一功能的第一绑定关系。
4.根据权利要求3所述的跨语言程序的开发装置,其中,所述多个节点还包括启动节点,所述启动节点用于配置当所述主体框架启动时所述控件的预加载信息。
5.根据权利要求4所述的跨语言程序的开发装置,其中,所述预加载信息包括所述控件与所述业务执行组件中的第二功能的第二绑定关系;
其中,所述转换组件还用于:当所述主体框架启动时基于所述第二绑定关系加载所述业务执行组件并触发所述第二功能的执行,以及将所述第二功能的执行结果转换为所述第一环境中的格式后回传至所述用户界面。
6.根据权利要求1所述的跨语言程序的开发装置,其中,所述主体开发平台包括至少一个容器,所述容器用于配置所述用户界面。
7.根据权利要求6所述的跨语言程序的开发装置,其中,所述至少一个容器包括界面容器和表格容器。
8.一种跨语言程序的开发方法,其中,所述方法包括:
配置主体框架,其中,所述主体框架由第一语言实现,所述第一语言的运行环境为第一环境;
添加业务执行组件,所述业务执行组件由第二语言实现,所述第二语言的运行环境为第二环境;以及
通过转换组件建立所述主体框架与所述业务执行组件的通信连接;其中,所述转换组件被运行于所述第一环境中,用于与所述主体框架通信连接,并在所述第一环境中构造所述第二环境以在所构造的第二环境中加载所述业务执行组件;
其中,所述主体框架包括用户界面和在所述用户界面中显示的控件,其中:
所述配置主体框架包括:配置所述控件的触发事件和所述控件与所述业务执行组件中的第一功能的第一绑定关系;
所述通过转换组件建立所述主体框架与所述业务执行组件的通信连接包括配置转换组件执行如下操作:接收所述控件对所述触发事件的响应事件,当接收到所述响应事件时基于所述第一绑定关系加载所述业务执行组件并触发所述第一功能的执行,以及将所述第一功能的执行结果转换为第一环境中的格式后回传至所述用户界面。
9.一种跨语言程序的执行方法,其中,所述跨语言程序包括主体框架、业务执行组件和转换组件,所述主体框架为由第一语言实现,所述业务执行组件由第二语言实现,所述第一语言的运行环境为第一环境,所述第二语言的运行环境为第二环境;所述转换组件运行于所述第一环境中并能够在所述第一环境中构造所述第二环境;其中,所述方法包括:
响应于接收到启动指令,在第一环境中启动所述主体框架,其中,所述主体框架包括用户界面和在所述用户界面中显示的控件;
响应于所述主体框架的启动,配置所述控件,包括配置所述控件的触发事件和所述控件与业务执行组件中的第一功能的第一绑定关系;
当通过所述用户界面接收到所述控件的触发事件时,获取所述控件对所述触发事件的响应事件;以及
基于所述响应事件触发所述转换组件执行如下操作:
在所述第一环境中构造所述第二环境;
基于所述第一绑定关系,在构造的所述第二环境中加载所述业务执行组件并触发所述第一功能的执行;以及
将所述第一功能的执行结果转换为第一环境中的格式后回传至所述用户界面。
10.根据权利要求9所述的跨语言程序的执行方法,其中,所述配置所述控件包括:
通过读取所述控件的配置文件来配置所述控件,其中,所述配置文件包括多个节点,每个节点用于配置指定信息。
11.根据权利要求10所述的跨语言程序的执行方法,其中,所述多个节点包括控制节点和功能节点,所述配置所述控件包括:
通过读取所述控制节点,配置所述控件在所述用户界面中的位置和显示效果,其中,所述控制节点用于配置所述控件在所述用户界面中的位置信息和所述控件的显示属性;
通过读取所述功能节点,配置所述控件的触发事件和所述控件与业务执行组件中的第一功能的第一绑定关系,其中,所述功能节点用于配置所述触发事件和所述第一绑定关系。
12.根据权利要求11所述的跨语言程序的执行方法,其中,所述多个节点还包括启动节点,所述配置所述控件还包括:
通过读取所述启动节点,配置所述控件的预加载信息,其中,所述启动节点用于配置当所述主体框架启动时所述控件的预加载信息。
13.根据权利要求12所述的跨语言程序的执行方法,其中,所述预加载信息包括所述控件与所述业务执行组件中的第二功能的第二绑定关系,其中,所述配置所述控件的预加载信息还包括:
所述转换组件读取所述启动节点,并基于所述第二绑定关系执行如下操作:在所述第一环境中构造所述第二环境,基于所述第二绑定关系加载所述业务执行组件并触发所述第二功能的执行,以及将所述第二功能的执行结果转换为所述第一环境中的格式后回传至所述用户界面。
14.根据权利要求9所述的跨语言程序的执行方法,其中,所述在第一环境中启动主体框架包括:
获取用于配置所述用户界面的至少一个容器;
基于所述至少一个容器中的信息,加载所述用户界面。
15.一种跨语言程序的执行装置,其中,所述跨语言程序包括主体框架、业务执行组件和转换组件,所述主体框架为由第一语言实现,所述业务执行组件由第二语言实现,所述第一语言的运行环境为第一环境,所述第二语言的运行环境为第二环境;所述转换组件运行于所述第一环境中并能够在所述第一环境中构造所述第二环境;其中,所述装置包括:
启动单元,用于响应于接收到启动指令,在第一环境中启动所述主体框架,其中,所述主体框架包括用户界面和在所述用户界面中显示的控件;
配置单元,用于响应于所述主体框架的启动,配置所述控件,包括配置所述控件的触发事件和所述控件与业务执行组件中的第一功能的第一绑定关系;
交互单元,用于:
当通过所述用户界面接收到所述控件的触发事件时,获取所述控件对所述触发事件的响应事件;以及
基于所述响应事件触发转换组件执行如下操作:
在所述第一环境中构造所述第二环境;
基于所述第一绑定关系,在构造的所述第二环境中加载所述业务执行组件并触发所述第一功能的执行;以及
将所述第一功能的执行结果转换为第一环境中的格式后回传至所述用户界面。
16.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序,
其中,所述一个或多个处理器执行所述一个或多个计算机程序以实现根据权利要求8或9~14中任一项所述方法的步骤。
17.一种计算机可读存储介质,其上存储有计算机程序或指令,其中,所述计算机程序或指令被处理器执行时实现根据权利要求8或9~14中任一项所述方法的步骤。
18.一种计算机程序产品,包括计算机程序或指令,其中,所述计算机程序或指令被处理器执行时实现根据权利要求8或9~14中任一项所述方法的步骤。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202411963308.6A CN119668564B (zh) | 2024-12-30 | 2024-12-30 | 跨语言程序的开发方法和装置、以及执行方法和装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202411963308.6A CN119668564B (zh) | 2024-12-30 | 2024-12-30 | 跨语言程序的开发方法和装置、以及执行方法和装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN119668564A CN119668564A (zh) | 2025-03-21 |
| CN119668564B true CN119668564B (zh) | 2025-10-10 |
Family
ID=94994659
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202411963308.6A Active CN119668564B (zh) | 2024-12-30 | 2024-12-30 | 跨语言程序的开发方法和装置、以及执行方法和装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN119668564B (zh) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1725178A (zh) * | 2004-07-20 | 2006-01-25 | 英业达股份有限公司 | 多语言软件程序开发平台 |
| CN113703732A (zh) * | 2021-11-01 | 2021-11-26 | 深圳易帆互动科技有限公司 | 一种游戏后端多语言开发的实现方法 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080168096A1 (en) * | 2007-01-08 | 2008-07-10 | Shalom Daskal | Extracting business logic from the user interface of service and product oriented computerized systems |
| US8365154B2 (en) * | 2009-05-29 | 2013-01-29 | International Business Machines Corporation | Multi-language software development |
| US8713514B2 (en) * | 2011-05-06 | 2014-04-29 | Microsoft Corporation | Heterogeneous language data typing without executable regeneration |
| CN113138767B (zh) * | 2021-04-25 | 2024-04-30 | 中国工商银行股份有限公司 | 代码语言转换方法、装置、电子设备及存储介质 |
| CN113918214A (zh) * | 2021-09-24 | 2022-01-11 | 海宁奕斯伟集成电路设计有限公司 | 程序运行方法、装置、电子设备及存储介质 |
-
2024
- 2024-12-30 CN CN202411963308.6A patent/CN119668564B/zh active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1725178A (zh) * | 2004-07-20 | 2006-01-25 | 英业达股份有限公司 | 多语言软件程序开发平台 |
| CN113703732A (zh) * | 2021-11-01 | 2021-11-26 | 深圳易帆互动科技有限公司 | 一种游戏后端多语言开发的实现方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN119668564A (zh) | 2025-03-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20230036980A1 (en) | Micro-frontend system, sub-application loading method, electronic device, computer program product, and computer-readable storage medium | |
| US11144711B2 (en) | Webpage rendering method, device, electronic apparatus and storage medium | |
| US11042387B2 (en) | Deploying cross-platform applications on mobile devices with native and web components | |
| US5983001A (en) | Method and system for facilitating the automatic creation of test scripts | |
| US8904368B2 (en) | Instantiating a composite application for different target platforms | |
| US8789068B2 (en) | Method and system for changing execution environments during application execution | |
| US8539478B2 (en) | Dynamic web installer | |
| US20060156315A1 (en) | Method, computer-readable medium and apparatus for providing a graphical user interface in a client-server environment | |
| US20130066947A1 (en) | System and Method for Managing Applications for Multiple Computing Endpoints and Multiple Endpoint Types | |
| US7685609B1 (en) | Using a distributed form object model to facilitate form event processing | |
| JP2004506977A (ja) | 多数の装置およびプロトコル標準に適合するアプリケーションを構築するシステムおよび方法 | |
| US8201143B2 (en) | Dynamic mating of a modified user interface with pre-modified user interface code library | |
| CN113010170A (zh) | 一种基于Vue3组件的页面渲染方法、装置、介质及电子设备 | |
| CN117707531A (zh) | 一种基于uni-app的小程序开发、编译和运行系统 | |
| CN114217789A (zh) | 功能组件拓展方法、装置、设备、存储介质及程序产品 | |
| CN110297624B (zh) | 基于electron框架的Widget系统的实现方法及采用该系统的电视机 | |
| Steele et al. | Mobile web services discovery and invocation through auto-generation of abstract multimodal interface | |
| CN119668564B (zh) | 跨语言程序的开发方法和装置、以及执行方法和装置 | |
| CN107168738A (zh) | 一种应用工具的管理方法、装置、设备和存储介质 | |
| US20050197157A1 (en) | System enabling easy application development on mobile devices | |
| JP2009031960A (ja) | クライアント装置およびサーバ装置の間の通信を中継する技術 | |
| CN111767111A (zh) | 页面数据处理方法及装置、电子设备和存储介质 | |
| CN118656110A (zh) | 页面配置方法及设备 | |
| CN113791778B (zh) | 软件项目生成方法及装置、电子设备和存储介质 | |
| CN117539464A (zh) | 跨端页面开发方法、装置、设备及存储介质 |
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 | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |