文章图片
文章图片
文章图片
因公司有国产化(主要兼容麒麟操作系统+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地址:
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.vs2019 安装拓展。 下载扩展插件 , 下载地址:https://marketplace.visualstudio.com/items?itemName=CurtisWensley.EtoFormsVisualStudioAddin , 下载完成后双击安装即可;
- 3. 安装完成后重启vs2019;
- 4.创建项目 , 选择Eto.Forms.Application , 下一步创建项目 , 如下图所示 。
- 如上面所说 , 界面展示有三种实现方式:json , code , xaml , 这里我选择的是code方式 , 主要是为了尽量保持与开发winform程序一致的代码结构和体验 , 更容易上手 。
- 京东物流|淘宝旺旺响应率如何统计的?多少算及格?
- 阿里巴巴|宝贝被降权了还有必要做吗?启中咨询教你如何处理
- Java|账号引流要如何做
- 怎样才能把微信中已过期的图片找回来?教你一招,快速搞定
- 高德地图|小程序商城如何确定配送范围?
- 网络营销|蚂蚁全媒体总编刘鑫炜:创业公司如何进行低成本的网络营销推广?
- 对于目前市面上的不锈钢密封接头|格雷希尔GripSeal推出“无损连接”快速密封方案
- 话题:创业公司如何进行低成本的网络营销推广?解答:内容...|蚂蚁全媒体总编刘鑫炜:创业公司如何进行低成本的网络营销推广?
- |如何正确运用手机智能拍照功能?这3个设置不能错过!
- Python|两数相加python
图2
图3