如何快速简单开发跨平台桌面应用程序(适配麒麟系统+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

    相关推荐

    • 协同办公应用(协同办公云存储)

      协同办公云存储:现代办公的新选择 随着数字化时代的到来,协同办公已成为现代办公的主流。无论是公司内部的协作,还是与客户或合作伙伴的远程沟通,云存储都扮演着至关重要的角色。 云存储是…

      科研百科 2024年6月3日
      56
    • 科研项目优秀成果奖

      科研项目优秀成果奖 科研项目优秀成果奖是一项表彰和鼓励优秀科研项目和研究人员的奖项,旨在促进科学界内部的学术交流和合作,推动科学研究的发展。本文将对科研项目优秀成果奖的定义、意义和…

      科研百科 2025年5月7日
      1
    • Python基础第十六天(项目实战-学生管理系统)(python学员管理项目实战教程)

      内容介绍: 1、需求分析 2、系统设计 3、系统开发必备 4、主函数设计 5、学生信息维护模块设计 6、查询统计模块设计 7、排序模块设计 8、项目打包 需求分析 学生管理系统会涉…

      2022年8月23日
      267
    • 微搭低代码开发平台

      微搭低代码开发平台是一种新兴的软件开发工具,它通过简化开发流程和减少编码工作量,使开发人员能够更快速地构建应用程序。这种平台的出现,为企业和开发者提供了更高效、更灵活的开发方式,极…

      科研百科 2024年3月4日
      136
    • 什么是声乐科研项目

      声乐科研项目是一种探索人类音乐潜能的研究领域。这个领域涉及到许多不同的方面,例如音乐理论、声音学、演唱技巧、音乐制作等等。声乐科研项目的参与者包括研究人员、教师、学生和音乐制作人等…

      科研百科 2025年3月20日
      1
    • 科研项目研究内容要求

      科研项目研究内容要求 随着科技的不断发展,科研项目的研究内容也越来越多样化。许多科研项目涉及到科学、技术、工程、经济、社会和环境等多个方面。这些项目旨在解决现实世界中的各种问题,推…

      科研百科 2025年3月26日
      1
    • 科研项目组织的验收

      科研项目组织的验收 科研项目组织的验收是一个重要的环节,它标志着项目的完成和成功交付。验收过程需要认真、严谨、高效地进行,以确保项目的质量、进度和成果。在科研项目组织的验收中,我们…

      科研百科 2025年3月6日
      0
    • 大学科研项目奖励

      大学科研项目奖励 近年来,随着科技的不断发展,大学科研项目奖励已经成为了一种重要的荣誉,代表着一个国家和大学的科研实力。本文将介绍一些著名的大学科研项目奖励,包括奖金、奖杯和荣誉学…

      科研百科 2025年2月1日
      1
    • understand 6.5 破解

      understand 6.5 破解 understand 6.5 是一套功能强大的人工智能语言模型,可用于自然语言处理和对话系统开发。然而,它的复杂性和功能使其难以完全理解和使用。…

      科研百科 2024年11月14日
      1
    • 中国SaaS大爆发:一个行业的黄金时代与价值重估(saas发展)

      1999年,在旧金山的一间小公寓里,俄裔美国人马克·贝尼奥夫(Marc Benioff)创立了Salesforce,宣布将成为传统软件时代的终结者,SaaS(软件即服务)模式由此诞…

      科研百科 2022年11月9日
      257