因公司有国产化(主要兼容麒麟操作系统 armV8架构的处理器)的项目的需求,为桌面应用程序,根据公司资源情况,在技术层面进行了一些选型调研。
一般来说,开发语言本身都是有跨平台能力的,比如java(jvm),c#(.net core),python(python解释器),c 等等,所以要调研选型的方向主要是gui的跨平台能力。
框架 | 语言 | 界面语言 | 性能 | 开发成本 | 文档 |
qt | C ,python等 | Qml => xml | 优 | 高 | 多 |
Eto | C# | 1. xaml => xml | 一般 | 一般 | 少 |
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库。
图1 Eto Demo示例
Windows下Eto C#开发环境的搭建:
1.安装GTK3。https://www.gtk.org/docs/installations/windows/,我这里使用了 MSYS2方式 安装,简单快速;
图2
图3
图4 Eto代码结构
图5
图5 程序发布
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。