CN113076096B - 一种桌面应用程序开发方法、装置、设备及存储介质 - Google Patents

一种桌面应用程序开发方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113076096B
CN113076096B CN202110476047.5A CN202110476047A CN113076096B CN 113076096 B CN113076096 B CN 113076096B CN 202110476047 A CN202110476047 A CN 202110476047A CN 113076096 B CN113076096 B CN 113076096B
Authority
CN
China
Prior art keywords
development
module
visual studio
visual
data
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
CN202110476047.5A
Other languages
English (en)
Other versions
CN113076096A (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.)
Chengdu Xingyun Zhilian Technology Co ltd
Original Assignee
Chengdu Xingyun Zhilian Technology Co ltd
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 Chengdu Xingyun Zhilian Technology Co ltd filed Critical Chengdu Xingyun Zhilian Technology Co ltd
Priority to CN202110476047.5A priority Critical patent/CN113076096B/zh
Publication of CN113076096A publication Critical patent/CN113076096A/zh
Application granted granted Critical
Publication of CN113076096B publication Critical patent/CN113076096B/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/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Abstract

本申请公开了一种桌面应用程序开发方法、装置、设备及存储介质,包括:构建与对桌面应用程序进行可视化开发的开发工具对应的Visual Studio插件;Visual Studio插件的功能模块包括项目管理、数据模型、代码生成、模板管理、页面管理、控件生成及数据绑定、前后台交互、辅助功能;在VisualStudio软件中运行Visual Studio插件,得到具有功能模块的可视化VisualStudio开发软件;获取开发需求,通过可视化Visual Studio开发软件的可视化开发界面利用与开发需求对应的功能模块与中央仓库进行数据交互,以对与开发需求对应的桌面应用程序进行开发;中央仓库用于存储开发桌面应用程序所需的模板信息及项目信息。本申请能够通过提供统一的Visual Studio可视化开发工具,提高桌面应用程序的开发效率。

Description

一种桌面应用程序开发方法、装置、设备及存储介质
技术领域
本发明涉及软件开发技术领域,特别涉及一种桌面应用程序开发方法、装置、设备及存储介质。
背景技术
在当前前后端分离的开发模式下,Windows桌面应用程序通常不再是简单的单体应用架构,而是将纯客户端程序作为前台,基于网络的服务作为后台的应用架构。在开发工具的选型上,这类程序很多是使用Visual Studio软件进行开发的。
现有技术中的“CodeMaid”和“SQLite/SQL Server Compact Toolbox”是两种在使用方式或实现方式上都较为接近的开发工具,“CodeMaid”具有整理与优化代码等开发辅助功能,“SQLite/SQL Server Compact Toolbox”具有可视化的数据库设计、模型生成等功能。但是它们都是针对某个开发环节的辅助工具,并不是针对整个项目开发过程的辅助工具。因此,如何提供应用在页面模块建立、页面设计、数据绑定等整个设计全流程中的桌面应用程序开发工具,并利用该工具进行开发是现有技术中亟需解决的技术问题。
发明内容
有鉴于此,本发明的目的在于提供一种桌面应用程序开发方法、装置、设备及存储介质,能够通过提供统一的Visual Studio可视化开发工具,提高桌面应用程序的开发效率。其具体方案如下:
本申请的第一方面提供了一种桌面应用程序开发方法,包括:
构建与对桌面应用程序进行可视化开发的开发工具对应的Visual Studio插件;其中,所述Visual Studio插件的功能模块包括项目管理模块、数据模型模块、代码生成模块、模板管理模块、页面管理模块、控件生成及数据绑定模块、前后台交互模块、辅助功能模块;
在Visual Studio软件中运行所述Visual Studio插件,以得到具有所述功能模块的可视化Visual Studio开发软件;
获取开发需求,并通过所述可视化Visual Studio开发软件的可视化开发界面利用与所述开发需求对应的功能模块与中央仓库进行数据交互,以对与所述开发需求对应的桌面应用程序进行开发;其中,所述中央仓库用于存储开发桌面应用程序所需的模板信息及项目信息。
可选的,所述项目管理模块,用于通过可视化界面显示所述模板信息,以便根据所述模板信息选择相应的目标模板,利用所述目标模板创建开发项目,并基于Visual StudioTemplates技术在Visual Studio解决方案下生成工程源代码。
可选的,所述数据模型模块,用于读取所述中央仓库的所述项目信息中的数据传输对象信息,并将所述数据传输对象信息通过工具窗口在所述可视化Visual Studio开发软件的界面进行显示。
可选的,所述代码生成模块,用于通过读取所述中央仓库中的所述项目信息中的数据传输对象信息对应的元数据,创建与所述元数据对应的前台实体类文件,并生成与所述实体类文件对应的实体类特性及实体类属性特性。
可选的,所述模板管理模块,用于在所述可视化Visual Studio开发软件的窗口界面显示所述中央仓库中的在线模板,以便根据所述开发需求下载相应的所述在线模板。
可选的,所述页面管理模块,用于通过根据所述开发需求设置目标参数的方式创建原型页面;其中,所述目标参数为与所述原型页面对应的数据传输对象。
可选的,所述控件生成及数据绑定模块,用于根据所述开发需求利用表单渲染引擎和表格渲染引擎创建目标控件及绑定数据。
可选的,所述前后台交互模块,用于根据swagger文档生成调用后台服务的应用程序代码,以便利用所述应用程序代码调用后台所述应用程序编程接口。
可选的,所述辅助功能模块,用于通过所述可视化Visual Studio开发软件的代码窗口的菜单服务从所述中央仓库中获取代码片段列表,以根据所述开发需求确定并插入相应的代码片段。
本申请的第二方面提供了一种桌面应用程序开发装置,包括:
构建模块,用于构建与对桌面应用程序进行可视化开发的开发工具对应的VisualStudio插件;其中,所述Visual Studio插件的功能模块包括项目管理模块、数据模型模块、代码生成模块、模板管理模块、页面管理模块、控件渲染及数据绑定模块、前后台交互模块、辅助功能模块;
运行模块,用于在Visual Studio软件中运行所述Visual Studio插件,以得到具有所述功能模块的可视化Visual Studio开发软件;
开发模块,用于获取开发需求,并通过所述可视化Visual Studio开发软件的可视化开发界面利用与所述开发需求对应的功能模块与中央仓库进行数据交互,以对与所述开发需求对应的桌面应用程序进行开发;其中,所述中央仓库用于存储开发桌面应用程序所需的模板信息及项目信息。
本申请的第三方面提供了一种电子设备,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述桌面应用程序开发方法。
本申请的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述桌面应用程序开发方法。
本申请中,先构建与对桌面应用程序进行可视化开发的开发工具对应的VisualStudio插件;其中,所述Visual Studio插件的功能模块包括项目管理模块、数据模型模块、代码生成模块、模板管理模块、页面管理模块、控件生成及数据绑定模块、前后台交互模块、辅助功能模块。然后在Visual Studio软件中运行所述Visual Studio插件,以得到具有所述功能模块的可视化Visual Studio开发软件。最后获取开发需求,并通过所述可视化Visual Studio开发软件的可视化开发界面利用与所述开发需求对应的功能模块与中央仓库进行数据交互,以对与所述开发需求对应的桌面应用程序进行开发;其中,所述中央仓库用于存储开发桌面应用程序所需的模板信息及项目信息。本申请通过构建与对桌面应用程序进行可视化开发的开发工具对应的Visual Studio插件,在开发过程中将所述VisualStudio插件在Visual Studio软件中运行,以利用所述Visual Studio插件的各个功能模块对与开发需求对应的桌面应用程序进行开发,能够通过提供统一的Visual Studio可视化开发工具,提高桌面应用程序的开发效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种桌面应用程序开发方法流程图;
图2为本申请提供的一种中央仓库结构图;
图3为本申请提供的一种功能模块结构图;
图4为本申请提供的一种数据模型模块关系示意图;
图5为本申请提供的一种数据传输对象生成模型类示意图;
图6为本申请提供的一种数据传输对象创建表格引擎示意图;
图7为本申请提供的一种数据传输对象创建表单引擎示意图;
图8为本申请提供的一种应用程序生成及调用示意图;
图9为本申请提供的一种桌面应用程序开发装置结构示意图;
图10为本申请提供的一种桌面应用程序开发电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中的“CodeMaid”和“SQLite/SQL Server Compact Toolbox”是两种在使用方式或实现方式上都较为接近的开发工具,“CodeMaid”具有整理与优化代码等开发辅助功能,“SQLite/SQL Server Compact Toolbox”具有可视化的数据库设计、模型生成等功能。但是它们都是针对某个开发环节的辅助工具,并不是针对整个项目开发过程的辅助工具。针对上述技术缺陷,本申请提供一种桌面应用程序开发方案,通过构建与对桌面应用程序进行可视化开发的开发工具对应的Visual Studio插件,在开发过程中将所述VisualStudio插件在Visual Studio软件中运行,以利用所述Visual Studio插件的各个功能模块对与开发需求对应的桌面应用程序进行开发,能够提供统一的Visual Studio可视化开发工具,提高桌面应用程序的开发效率。
图1为本申请实施例提供的一种桌面应用程序开发方法流程图。参见图1所示,该桌面应用程序开发方法包括:
S11:构建与对桌面应用程序进行可视化开发的开发工具对应的Visual Studio插件;其中,所述Visual Studio插件的功能模块包括项目管理模块、数据模型模块、代码生成模块、模板管理模块、页面管理模块、控件生成及数据绑定模块、前后台交互模块、辅助功能模块。
S12:在Visual Studio软件中运行所述Visual Studio插件,以得到具有所述功能模块的可视化Visual Studio开发软件。
本实施例中,由于在Windows桌面程序开发过程中因缺少统一开发工具,从而导致的开发效率低、重复工作多、开发体验差的问题,因此首先构建与对桌面应用程序进行可视化开发的开发工具对应的Visual Studio插件,所述Visual Studio插件具有八大功能模块,分别为项目管理模块、数据模型模块、代码生成模块、模板管理模块、页面管理模块、控件渲染及数据绑定模块、前后台交互模块、辅助功能模块,每个功能模块能够实现相应的功能,如图2所示。需要说明的是,其他自定义功能模块也可以根据实际需求添加到所述Visual Studio插件中,也即所述Visual Studio插件具有的功能包括但不限于上述功能。
Visual Studio是微软提供的一款用于开发的工具软件。考虑到开发人员使用的开发工具是Visual Studio,本申请实施例可以基于Visual Studio Addin技术将所述开发工具制作成一个Visual Studio插件,在进行开发之前,在Visual Studio软件中运行所述Visual Studio插件,以得到具有所述功能模块的可视化Visual Studio开发软件,也即只需开发人员从插件市场下载和安装该插件并登录就能够通过自实现的Visual Studio的工具窗口及弹窗、各类菜单等实现与开发人员的交互。基于WinForm的桌面程序设计本身是支持可视化设计的,本申请实施例是在此基础上实现的增强页面及控件可视化设计方式,设计流程覆盖项目管理、页面管理、页面设计、数据模型管理、接口调用等。
进一步的,所述项目管理模块是针对目标项目的开发资源管理,包含项目模块管理、统一建模语言(Unified Modeling Language,UML)图管理等,用于通过可视化界面显示所述模板信息,以便根据所述模板信息选择相应的目标模板,利用所述目标模板创建开发项目,并基于Visual Studio Templates技术在Visual Studio解决方案下生成工程源代码。
所述数据模型模块是对项目中涉及的实体、数据传输模型的管理,用于读取所述中央仓库的所述项目信息中的数据传输对象信息,并将所述数据传输对象信息通过工具窗口在所述可视化Visual Studio开发软件的界面进行显示。数据传输对象(Data TransferObject,DTO)一般是一个或多个实体模型的组合,对应数据库的一张或多张数据表。所述实体模型为与数据库字段对应的基本模型。
所述代码生成模块可以生成用于编写业务代码和数据绑定的模型类、接口调用和常用开发的代码片段等,用于通过读取所述中央仓库中的所述项目信息中的数据传输对象信息对应的元数据,创建与所述元数据对应的前台实体类文件,并生成与所述实体类文件对应的实体类特性及实体类属性特性。所述实体类特性可以标注在类上的特殊类,作用是为一个类附加特定元数据。所述实体类属性特性可以标注在类属性上的特殊类,作用是为一个属性附加特定的元数据。
所述模板管理模块可以从模板仓库下载模板到本机,是对本机的缓存模板的管理,用于在所述可视化Visual Studio开发软件的窗口界面显示所述中央仓库中的在线模板,以便根据所述开发需求下载相应的所述在线模板。
所述页面管理模块可以通过向导建立页面、管理页面,用于通过根据所述开发需求设置目标参数的方式创建原型页面;其中,所述目标参数为与所述原型页面对应的数据传输对象。
所述控件生成及数据绑定模块可以通过模型拖拽的方式自动生成控件,也可以手动建立控件后通过渲染引擎二次渲染控件,并通过渲染引擎或模型可视化设计来绑定控件和数据模型,用于根据所述开发需求利用表单渲染引擎和表格渲染引擎创建目标控件及绑定数据。
所述前后台交互模块通过导航窗口方式浏览后台API和生成接口调用的服务类,用于根据swagger文档生成调用后台服务的应用程序代码,以便利用所述应用程序代码调用后台所述应用程序编程接口。
所述辅助功能模块可以插入项目常用代码片段,用于通过所述可视化VisualStudio开发软件的代码窗口的菜单服务从所述中央仓库中获取代码片段列表,以根据所述开发需求确定并插入相应的代码片段。
S13:获取开发需求,并通过所述可视化Visual Studio开发软件的可视化开发界面利用与所述开发需求对应的功能模块与中央仓库进行数据交互,以对与所述开发需求对应的桌面应用程序进行开发;其中,所述中央仓库用于存储开发桌面应用程序所需的模板信息及项目信息。
本实施例中,在得到具有上述八大功能模块的可视化Visual Studio开发软件后,就需要利用该可视化Visual Studio开发软件进行开发,具体的,获取开发需求,并通过所述可视化Visual Studio开发软件的可视化开发界面利用与所述开发需求对应的功能模块与中央仓库进行数据交互,以对与所述开发需求对应的桌面应用程序进行开发。所述中央仓库(VD仓库)作为主要数据来源用于存储开发桌面应用程序所需的模板信息及项目信息,包括但不限于个人信息、项目信息、实体信息、仓库信息等。所述中央仓库是使用MSA平台(基于Spring Cloud二次开发的微服务平台)下的开放API实现的,本申请能将项目从中央仓库中读取出来,并以树形结构的方式展示在Visual Studio中,方便开发人员使用与管理项目中的数据。使用中央仓库的目的是为了在不同的开发人员之间统一管理数据,提供跨客户端使用数据的能力。用户在登录之后只能根据自身的权限查看相关信息,隔离了用户数据,保证数据的安全,所述中央仓库的具体结构如图3所示。
开发桌面程序的数据大部分都是从服务端后台程序获取的,而绝大部分控件都需要与后台服务提供的数据进行绑定,一般的页面开发流程都是先建立好空白的页面,再在页面一个一个创建控件,并通过代码获取后台数据,然后再一个一个的绑定到对应控件上。在绑定数据时,通常都是简单的单向数据绑定,如果需要双向的数据绑定还需要编写大量的重复代码实现双向数据绑定,而业务逻辑上通常又需要双向的数据绑定,使得开发人员需要较长时间进行创建控件、绑定数据、逻辑编写等操作,这些过程很多操作步骤和编码都是重复的。这种比较传统的开发方式极易使程序出现代码可读性差、出错率高、可维护性差等问题,进而导致开发者工作效率低、项目开发周期长、项目开发成本高。本申请实施例提供的所述可视化Visual Studio开发软件能够为开发人员提供统一的开发场景,增加Windows桌面软件健壮性,可以从开发时的模块建立、页面设计、控件建立、数据绑定、前后台交互、辅助编码等方面提供快速设计的能力,提高开发人员工作效率和开发体验、降低开发成本和减少开发周期。
具体的,通过调用与开发需求对应的功能模块与中央仓库进行数据交互,以对与所述开发需求对应的桌面应用程序进行开发。
例如,由于Visual Studio本身提供了创建项目的方式,但这种方式只能创建最基础、最简单的项目,通常在创建项目之后开发人员都需要根据自身业务的需要对项目进行修改,不同的项目修改的方式也不尽相同。调用项目管理模块后,创建项目时从中央仓库列表中读取出当前用户能够获取的所有项目模板,通过模板的描述信息选择最合适的模板创建项目。创建项目后利用Visual Studio Templates技术在Visual Studio解决方案下生成工程源代码,工程源代码中包含模板信息、说明文档、示例代码。
DTO(数据传输模型)是在开发过程中前后台数据交换的基本模型,它通常由一个或多个后台实体模型的全部或者部分结构组合而成。一般情况下,一个DTO对应前端的一个页面,所以DTO对前端极为重要,它不仅为前台页面提供了数据支撑,同时也是前后台交互的载体。DTO与实体模型、页面的关系如图4所示。中央仓库的项目中保存了该项目的所有DTO信息,这些DTO既是后台服务的依赖也是前台程序的依赖。调用数据模型模块后,直接从中央仓库读取DTO列表,并将列表通过工具窗口形式展示在Visual Studio中,这样做的好处是统一数据管理,确保前后台数据结构的一致性,在通信过程中保证数据的完整性。
中央仓库中的DTO是前台开发的基础数据支撑,但是这些信息必须要转换成为前台的模型类才能够被前台程序使用,才能真正意义上的与前台页面建立对应关系。在传统前台程序的开发中,这些前台模型类必须开发人员手动的编写,在编写的过程中要不断的与后台实体模型的结构对照,但是还是不能避免在编写的过程中书写错误的问题。这些问题包括数据类型错误、字段名称错误等。这样的工作即繁琐而且易出错。任何一个细小的不同都可能造成前后台通信数据的不完整,严重的可能造成程序崩溃。调用代码生成模块后,利用中央仓库直接生成前台模型类的功能的实现是通过读取中央仓库中相应DTO的所有元数据,使用Visual Studio T4技术将这些元数据转换成实体并在解决方案下创建前台的实体类文件,并为生成的模型类和属性自动加上对应的特性信息。模型类的特性是为后续创建的页面控件的展示类型、数据校验和条件查询等提供数据支持,具体如图5所示。
一些相对固定且可以公共访问的内容可以抽象为一种模板,本申请实施例的中央仓库提供一种在线模板的方式,当开发人员在需要使用某个含模板的内容时,都会有窗口列举出该类的在线模板,然后下载即可应用模板内容。本发明支持项目模板、页面模板、代码片段模板等,这些模板既可以是统一提供,也可以是开发人员自行上传到中央仓库中。通过在中央仓库中上传某类型模板,然后读取中央仓库的模板数据展示到窗口,之后在创建同类资源时就不在需要做任何的更改,节约了大量的时间,降低了项目创建的难度。同时这种模板方式的使用的灵活极高,可以根据需要随时更改模板,发布新版本即可。
常规的页面创建方式是使用Visual Studio新建一个最基础的窗口,然后根据业务需要在窗口拖放各种类型的控件。但是这种方式效率极低,而且在业务逻辑开发中,通常会有很多相似或相同的窗口,仅仅是因为它们对应的数据不同就需要重复的做一次。本申请实施例创建的原型页面是下载来自中央仓库的模板后创建的,模板可以根据项目或者个人需求上传。上传模板时,可以根据需要定制参数,通常参数都是原型页面对应的DTO对象。通过本发明创建原型页面时,可以指定参数。对于简单的页面,利用这种方式基本上可以实现无代码创建。新建页面后,会自动生成到一个Visual Studio工程中对应位置下,生成的这些页面仍然具有WinForm窗口本身的所有设计功能。
传统方式创建了页面之后,需要根据业务需求拖动大量控件到页面上,然后编写代码依次为控件绑定数据。本申请实施例作为可视化设计工具,提供表单和表格渲染引擎,基于WinForm设计时的组件设计器实现了基于数据拖拽的方式来生成控件和数据绑定,利用DTO直接将其拖放到设计器上,此时会根据选择创建表单或者表格引擎。表格引擎会创建一个表格控件,同时为表格控件创建列。如图6所示,表格引擎创建的表格和列都是设计时的,用户可以根据自己的需求在设计时对创建的表格和列进行自定义,所述设计时为Windows程序编写过程中设计窗口的阶段,该阶段可以修改窗口和控件的属性。同时表格引擎也提供了对表格和列的设置功能,设置完成后引擎将会根据这些设置重绘表格和列控件。如图7所示,表单引擎会根据DTO的元素据,依次为DTO的字段创建对应的控件。引擎会根据DTO字段的类型创建不同的控件。例如字段是字符串类型则引擎会创建一个文本框控件,字段是日期类型则会创建时间控件等。创建好控件后,引擎还会为他们绑定数据,而且这种绑定是双向的。如果DTO的元数据存在数据校验规则,引擎也会为这些控件创建数据校验。
后台的API在编写时都应该提供Swagger文档,在Swagger文档中详细描述了后台服务接口的元数据信息,这些信息包括方法名,方法参数,参数类型等。本发明通过这些元数据直接创建好调用后台服务的接口和实现类。API生成和调用的示意图如图8所示,开发工具根据Swagger生成接口调用的代码(一个或多个代码文件,即C#类),当页面或业务逻辑需要使用这些API的时候,直接访问生成的这些代码便调用了后台API。
其他辅助功能主要为插入代码片段,在日常的开发过程中,有很多一样或者类似的代码片段。重复的编写后者在以往代码中找到后再复制都是耗时的操作,而且易出错。本申请实施例中,用户可以先将日常开发中使用频繁的代码片段上传到中央仓库中,通过Visual Studio代码窗口的菜单服务再从中央仓库获取代码片段列表,在编写代码时只需使用快捷键后者简单的右键操作即可查看到这些代码片段,选择需要插入的代码片段后就完成了代码片段的插入。
可见,本申请实施例先构建与对桌面应用程序进行可视化开发的开发工具对应的Visual Studio插件;其中,所述Visual Studio插件的功能模块包括项目管理模块、数据模型模块、代码生成模块、模板管理模块、页面管理模块、控件生成及数据绑定模块、前后台交互模块、辅助功能模块。然后在Visual Studio软件中运行所述Visual Studio插件,以得到具有所述功能模块的可视化Visual Studio开发软件。最后获取开发需求,并通过所述可视化Visual Studio开发软件的可视化开发界面利用与所述开发需求对应的功能模块与中央仓库进行数据交互,以对与所述开发需求对应的桌面应用程序进行开发;其中,所述中央仓库用于存储开发桌面应用程序所需的模板信息及项目信息。本申请实施例通过构建与对桌面应用程序进行可视化开发的开发工具对应的Visual Studio插件,在开发过程中将所述Visual Studio插件在Visual Studio软件中运行,以利用所述Visual Studio插件的各个功能模块对与开发需求对应的桌面应用程序进行开发,能够通过提供统一的VisualStudio可视化开发工具,提高桌面应用程序的开发效率。
参见图9所示,本申请实施例还相应公开了一种桌面应用程序开发装置,包括:
构建模块11,用于构建与对桌面应用程序进行可视化开发的开发工具对应的Visual Studio插件;其中,所述Visual Studio插件的功能模块包括项目管理模块、数据模型模块、代码生成模块、模板管理模块、页面管理模块、控件渲染及数据绑定模块、前后台交互模块、辅助功能模块;
运行模块12,用于在Visual Studio软件中运行所述Visual Studio插件,以得到具有所述功能模块的可视化Visual Studio开发软件;
开发模块13,用于获取开发需求,并通过所述可视化Visual Studio开发软件的可视化开发界面利用与所述开发需求对应的功能模块与中央仓库进行数据交互,以对与所述开发需求对应的桌面应用程序进行开发;其中,所述中央仓库用于存储开发桌面应用程序所需的模板信息及项目信息。
可见,本申请实施例先构建与对桌面应用程序进行可视化开发的开发工具对应的Visual Studio插件;其中,所述Visual Studio插件的功能模块包括项目管理模块、数据模型模块、代码生成模块、模板管理模块、页面管理模块、控件生成及数据绑定模块、前后台交互模块、辅助功能模块。然后在Visual Studio软件中运行所述Visual Studio插件,以得到具有所述功能模块的可视化Visual Studio开发软件。最后获取开发需求,并通过所述可视化Visual Studio开发软件的可视化开发界面利用与所述开发需求对应的功能模块与中央仓库进行数据交互,以对与所述开发需求对应的桌面应用程序进行开发;其中,所述中央仓库用于存储开发桌面应用程序所需的模板信息及项目信息。本申请实施例通过构建与对桌面应用程序进行可视化开发的开发工具对应的Visual Studio插件,在开发过程中将所述Visual Studio插件在Visual Studio软件中运行,以利用所述Visual Studio插件的各个功能模块对与开发需求对应的桌面应用程序进行开发,能够通过提供统一的VisualStudio可视化开发工具,提高桌面应用程序的开发效率。
在一些具体实施例中,所述构建模块11,具体包括:
项目管理单元,用于通过可视化界面显示所述模板信息,以便根据所述模板信息选择相应的目标模板,利用所述目标模板创建开发项目,并基于Visual Studio Templates技术在Visual Studio解决方案下生成工程源代码;
数据模型单元,用于读取所述中央仓库的所述项目信息中的数据传输对象信息,并将所述数据传输对象信息通过工具窗口在所述可视化Visual Studio开发软件的界面进行显示。
代码生成单元,用于通过读取所述中央仓库中的所述项目信息中的数据传输对象信息对应的元数据,创建与所述元数据对应的前台实体类文件,并生成与所述实体类文件对应的实体类特性及实体类属性特性。
模板管理单元,用于在所述可视化Visual Studio开发软件的窗口界面显示所述中央仓库中的在线模板,以便根据所述开发需求下载相应的所述在线模板。
页面管理单元,用于通过根据所述开发需求设置目标参数的方式创建原型页面;其中,所述目标参数为与所述原型页面对应的数据传输对象。
控件生成及数据绑定单元,用于根据所述开发需求利用表单渲染引擎和表格渲染引擎创建目标控件及绑定数据。
前后台交互单元,用于根据swagger文档生成调用后台服务的应用程序代码,以便利用所述应用程序代码调用后台所述应用程序编程接口。
辅助单元,用于通过所述可视化Visual Studio开发软件的代码窗口的菜单服务从所述中央仓库中获取代码片段列表,以根据所述开发需求确定并插入相应的代码片段。
进一步的,本申请实施例还提供了一种电子设备。图10是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图10为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的桌面应用程序开发方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221可以为Windows 7、Windows 8、Windows 10、Windows Server、Linux等,用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的桌面应用程序开发方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223可以包括电子设备20收集到的开发代码数据。
进一步的,本申请实施例还公开了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的桌面应用程序开发方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的桌面应用程序开发方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (6)

1.一种桌面应用程序开发方法,其特征在于,包括:
构建与对桌面应用程序进行可视化开发的开发工具对应的Visual Studio插件;其中,所述Visual Studio插件的功能模块包括项目管理模块、数据模型模块、代码生成模块、模板管理模块、页面管理模块、控件生成及数据绑定模块、前后台交互模块、辅助功能模块;
在Visual Studio软件中运行所述Visual Studio插件,以得到具有所述功能模块的可视化Visual Studio开发软件;
获取开发需求,并通过所述可视化Visual Studio开发软件的可视化开发界面利用与所述开发需求对应的功能模块与中央仓库进行数据交互,以对与所述开发需求对应的桌面应用程序进行开发;其中,所述中央仓库用于存储开发桌面应用程序所需的模板信息及项目信息;
其中,所述数据模型模块,用于读取所述中央仓库的所述项目信息中的数据传输对象信息,并将所述数据传输对象信息通过工具窗口在所述可视化Visual Studio开发软件的界面进行显示;
所述控件生成及数据绑定模块,用于根据所述开发需求利用表单渲染引擎和表格渲染引擎创建目标控件及绑定数据;
所述代码生成模块,用于通过读取所述中央仓库中的所述项目信息中的数据传输对象信息对应的元数据,创建与所述元数据对应的前台实体类文件,并生成与所述实体类文件对应的实体类特性及实体类属性特性;
所述页面管理模块,用于通过根据所述开发需求设置目标参数的方式创建原型页面;其中,所述目标参数为与所述原型页面对应的数据传输对象。
2.根据权利要求1所述的桌面应用程序开发方法,其特征在于,所述项目管理模块,用于通过可视化界面显示所述模板信息,以便根据所述模板信息选择相应的目标模板,利用所述目标模板创建开发项目,并基于Visual Studio Templates技术在Visual Studio解决方案下生成工程源代码。
3.根据权利要求1所述的桌面应用程序开发方法,其特征在于,所述模板管理模块,用于在所述可视化Visual Studio开发软件的窗口界面显示所述中央仓库中的在线模板,以便根据所述开发需求下载相应的所述在线模板。
4.根据权利要求1所述的桌面应用程序开发方法,其特征在于,所述前后台交互模块,用于根据swagger文档生成调用后台服务的应用程序代码,以便利用所述应用程序代码调用后台所述应用程序编程接口。
5.根据权利要求1所述的桌面应用程序开发方法,其特征在于,所述辅助功能模块,用于通过所述可视化Visual Studio开发软件的代码窗口的菜单服务从所述中央仓库中获取代码片段列表,以根据所述开发需求确定并插入相应的代码片段。
6.一种桌面应用程序开发装置,其特征在于,包括:
构建模块,用于构建与对桌面应用程序进行可视化开发的开发工具对应的VisualStudio插件;其中,所述Visual Studio插件的功能模块包括项目管理模块、数据模型模块、代码生成模块、模板管理模块、页面管理模块、控件渲染及数据绑定模块、前后台交互模块、辅助功能模块;
运行模块,用于在Visual Studio软件中运行所述Visual Studio插件,以得到具有所述功能模块的可视化Visual Studio开发软件;
开发模块,用于获取开发需求,并通过所述可视化Visual Studio开发软件的可视化开发界面利用与所述开发需求对应的功能模块与中央仓库进行数据交互,以对与所述开发需求对应的桌面应用程序进行开发;其中,所述中央仓库用于存储开发桌面应用程序所需的模板信息及项目信息;
其中,所述构建模块,包括:
数据模型单元,用于读取所述中央仓库的所述项目信息中的数据传输对象信息,并将所述数据传输对象信息通过工具窗口在所述可视化Visual Studio开发软件的界面进行显示;
控件生成及数据绑定单元,用于根据所述开发需求利用表单渲染引擎和表格渲染引擎创建目标控件及绑定数据;
代码生成单元,用于通过读取所述中央仓库中的所述项目信息中的数据传输对象信息对应的元数据,创建与所述元数据对应的前台实体类文件,并生成与所述实体类文件对应的实体类特性及实体类属性特性;
页面管理单元,用于通过根据所述开发需求设置目标参数的方式创建原型页面;其中,所述目标参数为与所述原型页面对应的数据传输对象。
CN202110476047.5A 2021-04-29 2021-04-29 一种桌面应用程序开发方法、装置、设备及存储介质 Active CN113076096B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110476047.5A CN113076096B (zh) 2021-04-29 2021-04-29 一种桌面应用程序开发方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110476047.5A CN113076096B (zh) 2021-04-29 2021-04-29 一种桌面应用程序开发方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113076096A CN113076096A (zh) 2021-07-06
CN113076096B true CN113076096B (zh) 2024-04-23

Family

ID=76615987

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110476047.5A Active CN113076096B (zh) 2021-04-29 2021-04-29 一种桌面应用程序开发方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113076096B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114416068A (zh) * 2022-01-24 2022-04-29 京东方科技集团股份有限公司 应用开发平台、微程序生成方法、设备及存储介质
CN114564176B (zh) * 2022-01-27 2023-08-22 阿里云计算有限公司 一种代码开发方法、服务器及存储介质
CN114416117B (zh) * 2022-01-27 2023-05-09 中国铁道科学研究院集团有限公司电子计算技术研究所 一种代码模板管理方法及系统
CN115202712B (zh) * 2022-06-30 2023-12-29 北京亚控科技发展有限公司 应用管理方法、应用订阅方法及相关设备
CN115237386B (zh) * 2022-09-19 2022-12-27 杭州实在智能科技有限公司 用于大型复杂Windows原生桌面开发的方法及系统
CN116204165A (zh) * 2023-04-24 2023-06-02 麒麟软件有限公司 Qt工程开发插件及基于其的工程图形化开发系统及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104267967A (zh) * 2014-10-15 2015-01-07 北京国双科技有限公司 软件的程序代码的生成方法及装置
CN110825362A (zh) * 2019-11-04 2020-02-21 广东道一信息技术股份有限公司 低代码应用软件开发系统及方法
CN111638877A (zh) * 2020-06-01 2020-09-08 山东汇贸电子口岸有限公司 一种Web项目可视化快速开发方法
CN111708516A (zh) * 2020-05-20 2020-09-25 上海迅搭云科技有限公司 一种网上web应用定制开发系统
CN112416305A (zh) * 2020-11-23 2021-02-26 西安西热电站信息技术有限公司 一种基于VisualStudio的快速开发方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8572438B2 (en) * 2011-06-24 2013-10-29 Microsoft Corporation N-way runtime interoperative debugging

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104267967A (zh) * 2014-10-15 2015-01-07 北京国双科技有限公司 软件的程序代码的生成方法及装置
CN110825362A (zh) * 2019-11-04 2020-02-21 广东道一信息技术股份有限公司 低代码应用软件开发系统及方法
CN111708516A (zh) * 2020-05-20 2020-09-25 上海迅搭云科技有限公司 一种网上web应用定制开发系统
CN111638877A (zh) * 2020-06-01 2020-09-08 山东汇贸电子口岸有限公司 一种Web项目可视化快速开发方法
CN112416305A (zh) * 2020-11-23 2021-02-26 西安西热电站信息技术有限公司 一种基于VisualStudio的快速开发方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A visual studio plug-in for CProver;Mohamed Nassim Seghir 等;《2013 3rd International Workshop on Developing Tools as Plug-Ins (TOPI)》;20130916;43-48 *
基于桌面总线的嵌入式应用框架的设计与实现;孟令斌;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140615(第6期);I138-233 *
面向GIS的多维时空可视化Web组件库的开发与应用;赵如意;《中国优秀硕士学位论文全文数据库 基础科学辑》;20190115(第1期);A008-97 *

Also Published As

Publication number Publication date
CN113076096A (zh) 2021-07-06

Similar Documents

Publication Publication Date Title
CN113076096B (zh) 一种桌面应用程序开发方法、装置、设备及存储介质
CN114035773B (zh) 一种基于配置的低代码开发表单方法、系统及装置
WO2015078343A1 (zh) 用于web开发系统的开发方法和web开发系统
CN104731589A (zh) 用户界面的自动生成方法及自动生成装置
US9514115B2 (en) Method for creating form validation program and corresponding form interface according to result set metadata
CN111241454A (zh) 一种生成网页代码的方法、系统和装置
CN105528418B (zh) 一种设计文档生成方法及装置
US7899846B2 (en) Declarative model editor generation
CN104731588B (zh) 页面布局文件生成方法和页面布局文件生成装置
US11349902B2 (en) System and method to standardize and improve implementation efficiency of user interface content
CN113672204A (zh) 一种接口文档生成方法、系统、电子设备及存储介质
CN115454417A (zh) web前端项目搭建方法
KR101552914B1 (ko) 웹 서버 어플리케이션 프레임워크 장치와 프레임워크를 이용한 웹 어플리케이션 처리 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체
CN101876998A (zh) 一种实现数据编辑的方法和系统
TWI629602B (zh) 互動式網頁程式自動產生方法
CN117215556A (zh) 模块化的页面快速构建方法、系统、设备及介质
KR102595140B1 (ko) 복수의 정보원에서 얻는 정보 및 도구를 통일화하는 방법 및 이를 응용한 컴퓨터 프로그램 제품과 장치
US7716653B2 (en) Configurable importers and resource writers for converting data into another format
CN116028062A (zh) 目标代码的生成方法、npu指令的显示方法及装置
CN113791714A (zh) 一种软件系统图标库的方法
CN113778421A (zh) 一种生成业务代码的方法及设备
Namee et al. A form and API data management platform for progressive web application and serverless application architecture
CN112882698A (zh) 开发环境的生成方法及装置、计算机存储介质及电子设备
KR100370753B1 (ko) 서버에서 실행되는 데이타베이스 연동 페이지 생성방법
US20130305213A1 (en) Modularized customization of a model in a model driven development environment

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