很久没有玩桌面端了,还停留在以前 mfc 记忆中。知道桌面端的技术栈在这些年已经天翻地覆了,mfc 也没人用了。所以想请问一下,如果你来开发 win 的桌面端,会使用怎么样的技术栈来实现呢?
1
mokiki 278 天前 1
Qt C++
|
2
mineralsalt 278 天前 3
现在主流就是套壳浏览器, 真的是非常的恼人。
|
3
lsk569937453 278 天前
如果不跨端,只做 windows 桌面应用。那只有 WinForms 这一个最优解。
如果跨端,看你会什么。 会 c++,就 QT ,性能强,缺点是得折腾(玩 c++不就是为了折腾?)。 会 node.js+前端,就 electron ,缺点是打出的包 size 很大. ps:最近在学 rust,发现 tauri 也挺好用的,打出的包挺小的。 |
4
cnbatch 278 天前 1
MFC 时代不是还有 Qt 和 wxWidgets 嘛,这两个现在仍然活着。虽然有不少竞争技术,但 Qt 仍然未没落。
|
5
akira 278 天前
看需求。 大部分需求,套个浏览器就足够了。
|
6
xtreme1 278 天前
套壳 avalonia qt
|
7
zsxzy 278 天前
duilib 小巧好用, 还基于 mfc, 一个字, 稳
|
8
westerndream 278 天前
感觉可以关注下 webview2 ,就类似安卓 webview 那样的,共用 edge 内核,解决了像 electron 那样打包一堆 chromium
|
9
x77 278 天前
- 原生,技术比较专业的 QT 比较多。GTK 的也有,但是很少。
- .NET ,微软系的 UWP 、WPF ,不过第三方用 .NET 搞桌面的也不多见。 - 基于 Web 框架,个人不看好,不过有的搞得挺好 - 跨平台框架,像 Flutter ,比较早期,这类优势明显,比较有潜力 |
10
owen800q 278 天前 via iPhone
Pake, 好像也是 webview 套, 但只有几 m 大小
|
12
raylei OP @mineralsalt 对吧,研究一翻后感觉好多都是用 js ,所以非常迷惘来开了个贴
|
13
flyqie 278 天前 via Android
要么 qt 要么 electron 。
其他的都不适合跨平台商业化项目。 |
14
17681880207 278 天前 1
为啥大家都这么在意 Electron 打包之后的这点 size ,就算大,也没有大到离谱吧,我个人认为这点体积的安装包,还没有达到让用户可以拒绝的地步吧。相反,带来的跨平台的效率优势,我觉得 Electron 反而更值得投入了~😁
|
15
2wex 278 天前
@17681880207 大小不是根本问题,问题是大量不必要的冗余,这对优化强迫症来说是非常痛苦的(而且极客们基本都是优化强迫症)
|
16
codehz 278 天前 via iPhone
3202 年了,XAML Island 也可以做到几百 k 左右大小了
|
17
putaozhenhaochi 278 天前 via iPhone
浏览器里写 UI 是最简单和速度的
|
18
thinkm 278 天前 5
@17681880207 99%的普通用户不会在意这些东西,对他们来说只是点一下下载,点一下安装的事情, 现在千兆宽带的时代,20M 和 200M 的安装包下载时间就差个几秒钟,用户根本体会不到。反而他们会觉得 UI 很好看,比你什么 20M 用 QT 写的好看和现代很多。
只有程序员或者极客才去关注大小之类的,然后拿到网上说。 |
19
loading 278 天前
如果是简单应用,eletron 最简单,但交互要简单,像 MFC 的拖放 table 或者 tree 控件,一般人用 eletron 却很难写出类似的体验。
有些比较菜的 boss ,你安装包越大,他觉得越牛。(嗯,确实花功夫了。。。) |
20
jearyvon 278 天前
QQ 都用了类似 electron 了 vscode 也是 electron 。缺点对用户来说很明显。优点对于开发和公司来说太明显了。
|
21
mmdsun 278 天前
|
22
darknoll 278 天前
只有 Electron
|
24
codehz 278 天前
@blinue 用这个,可以做的很小 https://www.nuget.org/packages/Mile.Xaml
|
25
blinue 278 天前
@codehz #24 我也在关注,和原生体验有差别,因为 WinUI 有很多自定义控件,而这个项目只移植了样式。我的 demo: https://github.com/Blinue/Xaml-Islands-Cpp
|
26
star7th 278 天前
除了某些对性能要求很高的场合,一般用 Electron 即可 。也别信那些吐槽 Electron 的人,他们是从使用者出发的,希望使用的软件超高的性能。
但对创作者而言,Electron 是最佳的技术路线,能平衡开发成本和效果。 |
27
star7th 278 天前
tauri 也别用,生态还不够成熟 。如果对软件体积有极致的需求。
|
28
shyangs 277 天前
樓主都說了是 win 的桌面端,那就選 C# ( .NET ),
C# 開發速度比 C++ 快,執行速度比 JS 快. windows 預設也安裝了 .NET Framework. |
30
iOCZ 277 天前
QQ 选 electron 无疑是一种倒退
|
31
liruifengv 277 天前
tauri 。使用 webview2 ,只开发 windows ,并且不兼容老系统的话没问题的。
|
32
Flybear 277 天前
不跨平台原生就 WPF 或者 WinUI 3 。
2023 年了,别再用 MFC 或者 WinForms 了,4K 屏看着眼睛都要瞎了。 |
33
unco020511 277 天前
Electron 大概率是首选
|
34
henryhu 277 天前
windows7 还有很多用户,electron 打包结果在 win7 上跑没问题吧?
|
35
lxrmido 277 天前
electron ,相比起效率,对于现在的网络带宽和硬盘价格来说,多出来一个浏览器内核已经不是问题了。
|
36
kimown 277 天前
electron, 天然的跨平台
|
37
wjx0912 277 天前
一个 electron 多 100M 。装 50 个软件,也才 5t 。现在的硬盘也不会在乎这么点空间吧
|
38
cs419 277 天前
说个国人开发的 编程语言 aardio
https://aardio.com/ https://bbs.aardio.com/ 可以开发 windows 桌面软件 大佬更新频繁 还给这个语言写了 IDE 近段时间停更了 说是老婆癌症 要全身心的去照顾老婆 扫码出两百块支持了一下 不知道以后还会不会再更新 |
39
H0H 277 天前
@cs419 38 ,AAuto 、aardio 抄袭自 Lazarus ,知乎上有讨论,当时的主题叫《 AAuto 为何更名为 aardio?》。
当然,抄袭没多大问题,但是 aardio 是作者一个人维护,不开源,脾气又很差,各种问题都不回答。而且很奇怪的是,对于 JavaScript 调用 windows API 这种涉及到参数转换的,作者居然不知道怎么做。这本应该是他最熟悉的才对,因为 JavaScript 要调用 Windows API 肯定涉及到参数来回的转换啊,否则他这个工具咋写出来的?但看他在论坛中认真回复其他人在工作中遇到传参转换的,他没在开玩笑,完全是认真的说他也不清楚提问人给的场景下具体应该怎么做。把我都看懵了。说他水平差吧,能搞出这么强大的编程语言;说他很强吧,又是基础的问题都不清楚。 这种情况下,如果是在家里给自己写几个小工具,用这个语言没问题。如果是在公司里开发商业软件,那风险就太大了,遇到问题只能靠自己想办法 debug ,网上基本上没讨论的。哪天作者弃坑了,那已经开发出了的各种小工具要完整支持下一代 windows 该怎么办? aardio 我自己在家里也用它开发了个小工具,但只是长时间做了 test ,没敢正式使用,主要是怕里面有恶意代码。而且它那个 IDE 也让我没了信心。作者宣传的是开发的小工具运行很迅速,但它的 IDE 我记得就要 5 秒钟才能打开,这说明运行也不迅速啊。这可能就证明了 aardio 只适合做玩具,真用来开发大一点的工具,性能恐怕是大问题。唯一的优点,就剩生成的 exe 很小。但商用环境下 exe 大小往往不是核心问题。既然这样,为什么不用 Electron ? |
41
xujinkai 277 天前 via Android
C#写服务肯定不错,但 XAML 那套搞的我头疼,最近在研究直接 WPF 窗口套 webview2 。
虽然前端工程那一套也得学,但个人感觉比 WPF 简单些还漂亮。 |
42
lisongeee 277 天前 1
上面说的一堆技术基本都不支持 Hot Module Replacement
不支持 Hot Module Replacement 的开发框架 开发效率/体验 都很感人 Hot Module Replacement 对旧时代框架在某种程度上基本是降维打击 |
43
huohei 277 天前 via iPhone
flutter 做桌面端玩具还是很有趣的
|
44
aprilandjan 277 天前 via iPhone 1
@henryhu electron v19 及以下支持 win7 ,v20+开始就不支持了,主要是 chrome 104 之后放弃了对 win7 的支持。没什么特别诉求,用低版本一样的,问题不大
|
45
toomlo 277 天前
感觉 jetbrains 家的编辑器很好看,记忆里好像是基于 swing 还是 fx 独立写的一套 UI 框架来着,有懂的大佬可以说说~
|
46
webcape233 277 天前 via iPhone
我用 elctron 软件:什么辣鸡玩意
我写 electron 软件:真香啊 |
47
zjsxwc 277 天前 via Android
Windows 上的 electron QQ 150MB ,卧槽真大。
手机上的 QQ 268MB ,无所谓。 |
48
wxf666 277 天前
Sciter 咋样?最近才注意到。
- 体积小至 5MB ,不依赖浏览器 - 可使用 Html/CSS/JavaScript 开发 - 跨 Windows 、Linux 、MacOS 三端 - 有 GPU 渲染加速( WinXP 好像没有) 个人可免费使用,付费版开源? |
49
loading 277 天前
@H0H #39 aauto 作者今年发公告了,突发家属癌症要全力照顾。aardio 我用了挺多次,真的好用,可以说是 windows gui 自带电池的好东西,关键还是这也不收个费什么的,非常良心。
真心感谢 aardio |
50
wuzhewuyou 277 天前
万物基于 web ,话说多年没有开发桌面需求了
|
51
Jammar 277 天前
大部分新桌面客户端 electron 已经一统天下了,最不缺的就是前端,开发成本极低
|
52
x2420390517 277 天前
应该的体积现在好像真的不是什么大问题了,现在硬盘的价格也下来了,就是内存占用的问题有点影响用户体验。
|
53
kangyan 277 天前
最近玩了一下 webview2 ,空包构建出来 80mb ,不知道如何去掉 runtime
|
54
ajan 277 天前 via Android
@owen800q Pake 编译的 windows 端是利用了 webview2 组件,这货基本上就等于下载安装了一个 edge 浏览器,首次运行会检测 webview2 组件,没有安装就会下载 安装,禁止 webview2 组件联网 会导致编译的 exe 打开后出现网页打不开,且编译的 exe 并不小,且不包含 webview2 组件。
|
55
flexbug 277 天前
喜报,你已经安装 123 个 electron
|
56
tanranran 277 天前
主流厂商用啥,啥就成熟。做软件,除了爱心发电,其它都得考虑商业能力
|
59
wxf666 277 天前 1
@17681880207 #14
@thinkm #18 @star7th #26 @lxrmido #35 @wjx0912 #37 @Jammar #51 用 Electron 来写软件的,会不会意味着软件开发水平的下降?导致开发出来的软件体验很差? 比如 [这个帖子]( /t/955422 ) 里提到的几个 Electron 应用: - 夸克网盘:**上传**一个 50 GB 的文件,要**写**硬盘几 TB (滥用 IndexedDB 导致) - 天翼云盘:下载文件时,每小时要**额外写** 40 GB 。下载 4 GB 文件,读写 170W 次文件。。 会不会 Electron 屏蔽了底层细节,抽象得很好,开发人员对代码逻辑的成本高低没有感知,就瞎 JB 写了。。 |
60
Vindroid 277 天前
用的 Qt(C++),感觉不会 c++也能玩转 Qt ,封装得很好,当 java 来写都没什么问题,还能跨平台,虽然成本不小
|
61
PVXLL 277 天前 via iPhone
html
|
62
lsk569937453 277 天前
@Vindroid 不会 c++也能玩转 Qt ---->这句话是不是暗示 PyQt
|
64
sunrain 277 天前
javafx + graalvm
|
66
BG7ZAG 277 天前
electron 或者 flutter
|
67
StateMa 276 天前
electron
QT winfrom 1 最简单入门最快 23 都是老熟人了 至于 electron 的大小问题我记得可以替换内核来减小包大小,winfrom 里能替换 web 内核我用过。electron 之前见过。 |
68
D6IIx 276 天前
@putaozhenhaochi 如何打包成 exe 部署呢?版本迭代的数据如何保留?
|
69
putaozhenhaochi 276 天前 via iPhone
@D6llx electron 有打包工具的 数据你搞个 sqlite ?
|
70
zgl263885 276 天前 via iPhone
@lsk569937453 wpf 表示不服
|
74
wxf666 274 天前
@Jammar #63 基本的计算机知识得要有吧。。哪有一个 4GB 文件,分成 18W 份临时文件的。。
@thinkm #65 提升用户体验,是说好看吗? @star7th #71 不一定。天翼云盘那个可能是程序员的问题,就算不用 Electron ,换其他工具也一样。 但夸克网盘那个,可能真的是 Electron 封装得太好,导致开发者以为,预先分片任务到 IndexedDB 没啥代价了。。(结果搞了 几 TB 写入出来。。) 我的意思是,就是因为简单,所以什么人都能胜任,但深入的细节可能由于自身没有知识储备,处理不好,所以质量可能比 QT 等软件的差。。 会 QT 之类的,应该就暗含对计算机比较熟悉的前提条件了吧?那开发出来的软件质量高,也是大概率的事情? |