龙空技术网

如何快速简单开发跨平台桌面应用程序(适配麒麟系统+armv8)

HelloCoder 1284

前言:

此时各位老铁们对“nodejs可以制作桌面软件”可能比较注重,咱们都想要分析一些“nodejs可以制作桌面软件”的相关内容。那么小编同时在网上网罗了一些对于“nodejs可以制作桌面软件””的相关内容,希望同学们能喜欢,朋友们快快来了解一下吧!

因公司有国产化(主要兼容麒麟操作系统+armV8架构的处理器)的项目的需求,为桌面应用程序,根据公司资源情况,在技术层面进行了一些选型调研。

一般来说,开发语言本身都是有跨平台能力的,比如java(jvm),c#(.net core),python(python解释器),c++等等,所以要调研选型的方向主要是gui的跨平台能力。

框架

语言

界面语言

性能

开发成本

文档

Qt

C++,python等

Qml => xml

Eto

C#

1. Xaml => xml

2. Code => C#

3. Json => Json

一般

一般

Electron

nodejs

vue,html等

较差

一般

较多

Cef

java,python等

html,vue,js等

较高

较少

如上所示:

如果对性能没什么要求,而且要界面绚丽,能加载html,与底层交互少,那么electron为最佳选择,而且electron开发简单,上手快;

如果单纯要求性能,那就是c++和qt了;

如果对性能要求不是很高,而且又要兼顾成本,还是建议eto+c#。虽然eto的资料不是很多,但有官方demo和基于eto的一些开源项目,自己跑一下,学习一下发现还是很简单的,业务逻辑使用c#,快速开发也不会有什么坑;

至于最后一种方案cef,这个是基于google的开源浏览器内核项目cef,业务端语言可以是python、java、c#、go语言等,界面交互直接用html+js方案,实现了开发C/S程序的前后端分离,前端调用业务端使用jsbridge方式,业务端渲染界面使用websocket,保证实时高效。

根据公司资源情况,我选择了c#+eto技术方案。

eto的github地址:,学习一下demo部分足够上手开发了。

根据官方描述:此框架(Eto)可用于使用本地工具包(native toolkit)和简单的API构建跨多个平台运行的应用程序,说白了就是eto支持多种GUI渲染。基于此,我选用gtk作为gui库。

图1 Eto Demo示例

Windows下Eto+C#开发环境的搭建:

1.安装GTK3。,我这里使用了 MSYS2方式 安装,简单快速;

2.vs2019 安装拓展 。下载扩展插件,下载地址:,下载完成后双击安装即可;3. 安装完成后重启vs2019;4.创建项目,选择Eto.Forms.Application,下一步创建项目,如下图所示。

图2

图3

如上面所说,界面展示有三种实现方式:json,code,xaml,这里我选择的是code方式,主要是为了尽量保持与开发winform程序一致的代码结构和体验,更容易上手。

图4 Eto代码结构

如图4所示,是不是感觉很熟悉,运行/发布程序,程序运行结果如下图所示。

图5

在麒麟系统+arm处理器上运行,程序发布的时候,目标运行时选择对应的平台,点击“确定”,“发布”即可,等待发布成功。

图5 程序发布

标签: #nodejs可以制作桌面软件