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

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

一般来说,开发语言本身都是有跨平台能力的,比如javajvm),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地址:https://github.com/picoe/Eto,学习一下demo部分足够上手开发了。

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

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

图1 Eto Demo示例

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

1.安装GTK3。https://www.gtk.org/docs/installations/windows/,我这里使用了 MSYS2方式 安装,简单快速;

  • 2.vs2019 安装拓展 。下载扩展插件,下载地址:https://marketplace.visualstudio.com/items?itemName=CurtisWensley.EtoFormsVisualStudioAddin,下载完成后双击安装即可;
  • 3. 安装完成后重启vs2019;
  • 4.创建项目,选择Eto.Forms.Application,下一步创建项目,如下图所示。
  • 如何快速简单开发跨平台桌面应用程序(适配麒麟系统+armv8)(跨平台桌面开发用什么语言)

    图2

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

    图3

  • 如上面所说,界面展示有三种实现方式:json,code,xaml,这里我选择的是code方式,主要是为了尽量保持与开发winform程序一致的代码结构和体验,更容易上手。
  • 如何快速简单开发跨平台桌面应用程序(适配麒麟系统+armv8)(跨平台桌面开发用什么语言)

    图4 Eto代码结构

  • 如图4所示,是不是感觉很熟悉,运行/发布程序,程序运行结果如下图所示。
  • 如何快速简单开发跨平台桌面应用程序(适配麒麟系统+armv8)(跨平台桌面开发用什么语言)

    图5

  • 麒麟系统 arm处理器上运行,程序发布的时候,目标运行时选择对应的平台,点击“确定”,“发布”即可,等待发布成功。
  • 如何快速简单开发跨平台桌面应用程序(适配麒麟系统+armv8)(跨平台桌面开发用什么语言)

    图5 程序发布

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    (0)
    上一篇 2024年5月19日 下午11:26
    下一篇 2024年5月19日 下午11:38

    相关推荐

    • 五原县天吉泰镇:“五个一”模式推进基层党建引领网格化治理(五到组网格化治理内容)

      今年以来,五原县天吉泰镇以“村民小组微治理”载体为依托,积极探索建立基层党建引领下的网格化治理新模式,构建起一网、一图、一中心、一队伍、一机制的“五个一”模式,形成横向到边,纵向到…

      科研百科 2023年2月13日
      390
    • 低代码特点

      低代码特点是指一种软件开发方法,它通过使用少量的编码和图形化界面,使非专业开发人员能够快速构建和部署应用程序。这种方法的主要目的是提高开发效率,减少开发成本,并促进业务创新。 首先…

      科研百科 2024年3月3日
      72
    • 工程进度计划管理软件

      工程进度计划管理软件 随着现代工程领域的迅速发展,工程进度计划管理软件已经成为了一个非常重要的工具,可以帮助工程师更好地管理项目进度和质量。本文将介绍一种常用的工程进度计划管理软件…

      科研百科 2024年5月27日
      85
    • 淮安二院徐永副院长任职

      淮安二院徐永副院长任职 近日,淮安卫健委发布了一则任命通知,任命淮安二院徐永副院长担任淮安卫健委卫健委医政医管科副科长。 作为淮安二院的院长,徐永副院长在医疗领域中有着丰富的经验和…

      科研百科 2024年10月24日
      4
    • 小企业公司内部员工管理制度(小企业公司内部员工管理制度范本)

      第一章 入职指引 第一节 入职与试用 一、用人原则:重选拔、重潜质、重品德。 二、招聘条件:合格的应聘者应具备应聘岗位所要求的年龄、学历、专业、执业资格等条件,同时具备敬业精神、协…

      科研百科 2024年1月21日
      139
    • 注册子公司和分公司,哪个更好?(注册子公司和分公司,哪个更好一些)

      企业经营规模不断扩大,很多企业在经营几年的主公司后准备开始几家分支机构扩大一下经营地区,这时老板就面临了一个巨大的问题,因为设立分支机构有两个形式,一个是分公司,一个是子公司,那么…

      科研百科 2022年9月29日
      224
    • 培训机构财务及缴费管理系统

      学校收费软件是专门为学校财务量身打造的用于灵活性收取学生费用,智能化管理学生缴欠费信息的一款智能系统。 1.灵活性全面的学生档案(学籍)信息化管理要计费,一定要有学生信息。所以就算…

      科研百科 2023年10月5日
      194
    • 项目管理 收费

      项目管理在如今商业世界中变得越来越重要。随着项目的规模和复杂程度的不断增大,项目管理的需求也越来越高。然而,随着项目管理的复杂性的增加,收费也成为了一个新的挑战。在本文中,我们将探…

      科研百科 2024年7月27日
      57
    • 社会科学研究的终结意义是什么?(社会科学研究的终结意义是什么呢)

      你有没有想过,社会科学研究的终结意义究竟是什么?或许,这个问题听起来有些抽象,但实际上却关乎到我们生活的方方面面。 首先,让我们来看看社会科学的本质。社会科学是研究人类社会现象和规…

      科研百科 2024年4月21日
      77
    • 移动办公安全系统

      移动办公安全系统:保护企业资产与信息安全 随着科技的不断发展,移动办公已经成为企业日常运营中不可或缺的一部分。随着移动设备的普及,越来越多的人选择在移动设备上进行工作。然而,随着移…

      科研百科 2024年8月31日
      34