本人老前端一枚,因项目需要开发windows程序,所以调研了一下相关的技术,列表如下,仅供参考:
electron
就写html就行了,可直接在html的script里调用nodejs的api,没错!
官网
- 使用JavaScript、HTML 和 CSS 开发,门槛低
- 使用此技术开发的产品多,相对来说成熟,界面漂亮,网页能不漂亮么
- Electron 基于 Chromium 和 Node.js,因为内嵌js引擎,打包体积大,大约100m+
- 代表产品 GitHub Desktop、Vs Code、WhatsApp、Postman
- 打包后打包为直接运行免安装的目录和一个大的exe文件
- 支持 win7+的系统,如果要支持 windows XP,就不行了
Tauri
核心是rust代码
官网
- 核心是Rust写的,打包的体积也比较小
- 但是需要 WebView2,windows11自带,别的需要自行安装,就这一条,我就直接放弃了
- 对windows来说,会打包成msi的安装文件
- 刚发布1.x版本,感觉没有electron成熟
React Native for Windows
react-native写windows程序
官网
- 同一套代码,可以跑在n个平台
- react-native体系,react语法,开发过rn的入手成本低,项目目录除了ios、android多了一个windows目录
- 原生的体验,可以用c#写原生功能,js调用,和写移动端一样
- 微软官方支持
- 只支持 win11和win10
- 总结,感觉不太实用,除非是 rn一套代码,而且兼容性要求也不高的
python - beeware
BeeWare是一套工具和库,它们可以协同工作,编写跨平台的本地GUI Python应用程序
官网
- 开发语言是pyhton,python这个语言门槛低
- 打包体积也不大
- 界面不是很美观
- 用的不多,感觉
- 总结,适合python使用者开发
java - javaFX
适合java开发,开发桌面应用
- 性能不错,界面也尚可
- 兼容性也好,毕竟java跨平台
- javaFX 有自己的css和接口(和一般的css差的挺多的),需要学习,成本高,不适合快速开发
- 这个技术,其实用的不是很多,弃了
原生开发 - winform
这就是最原始的开发windows程序的方法,装好vs之后,就可以开发了,语言选c#。
- 门槛低,C#语法和java很像,比较简单,可以直接拖拽元素比如文本、输入框到界面上,
虽然之前没做过,但是看看应该就可以上手 - 兼容性最强,几乎啥windows都行
- 代码包体积最小,几十K,也就是,当然没啥代码的情况下
- 界面嘛,不太好看,毕竟是老技术嘛
- 如果功能UI不复杂,而注重底层,可以选择
原生开发 -WPF
也是原生开发windows程序的,升级版,即windows presentation foundation,windows呈现基础,属于.net framework3.0,
是微软推出取代winform的产品,能做到分离界面设计人员与开发人员的工作。
- 界面漂亮,功能强大
- 门槛就高一些了,不适合直接上手的
- WPF和winform最大的区别在于WPF底层使用的DirectX,
winform底层使用的是GDI+,所以WPF的图形界面上更胜一筹