桌面软件开发 2022 年 用啥技术栈?

2022-09-15 20:20:21 +08:00
 2NUT
公司要写个内部工具,简单讲就是读某批文件,然后提取处理后用图表展示出来;不兼容平台没关系,99.99%是 windows 。

请教用什么技术栈方便?

我思考了下 electron / qt / flutter

flutter dart 不会先排除; qt 写过, 前端技术栈也会用;有点冲动想试试 electron , 请教这个比 qml 方便么,主要考察 是否容易美化,是否容易集成数据可视化;

如果用 electron ,会采用前后端的模式,核心处理代码用 c++,然后和前端 electron 通信;如果 qt 那就是 c++ 单体了。

先谢谢大家!
6413 次点击
所在节点    问与答
59 条回复
ysc3839
2022-09-15 20:29:38 +08:00
如果选择 Electron 但后端不需要 Node.js 的话,可以考虑直接用 C++调用 Edge WebView2 ,好处是省去 Node.js 和 C++对接的部分,坏处是要稍微多写点代码。
https://docs.microsoft.com/en-us/microsoft-edge/webview2/
2NUT
2022-09-15 20:32:01 +08:00
@ysc3839 #1 这一套是不是只兼容 windows 10 呢?
Manweill
2022-09-15 20:32:34 +08:00
99.99% windows 这不用.NET 技术栈的吗? WPF/MAUI 之类。如果不考虑性能 electron 优先选择。
2NUT
2022-09-15 20:33:34 +08:00
@2NUT #2 看到了 windows 7 也兼容, 要先安装 edge ?
2NUT
2022-09-15 20:34:00 +08:00
@Manweill #3 恰巧不会 .net 年纪大 懒得学了
semoon
2022-09-15 20:36:02 +08:00
java 技术栈,强烈安利 javafx
2NUT
2022-09-15 20:38:42 +08:00
@semoon #6 数据可视化方便么?
mineralsalt
2022-09-15 21:15:55 +08:00
javafx 挺好用的
ysc3839
2022-09-15 22:28:55 +08:00
@2NUT Win7 也支持,不过可能很快就会停止支持了,不需要安装 Edge ,需要安装独立的 Edge WebView2 Runtime 。
AllenHua
2022-09-15 22:29:44 +08:00
treblex
2022-09-15 22:45:58 +08:00
试试 tauri 和 rust ,比 Electron 轻量很多,前端 js 各种框架都可以选
平台支持 win,linux,mac
tool2d
2022-09-15 23:06:43 +08:00
虽然 V2 前端很多,但是我个人并不推荐用前端写桌面程序,UI 代码的耦合性太低。

如果你用 opengl 写 UI ,换个低层引擎可以 port 到任意平台,但是前端技术不一样,不管怎么移植,都必须背上浏览器这个沉重的外壳。

我很喜欢 electron ,但仅仅是喜欢。想要代码长寿,就必须把代码切成非常小的模块。
2NUT
2022-09-15 23:15:43 +08:00
@treblex #11 我应该一个月学不会 rust...

之前一直关注一个 gui 项目叫 imgui ,想试试,宣传优点是使用简单
erguotou521
2022-09-15 23:20:12 +08:00
做成 bs 结构?软件运行后只有一个后台服务并自动打开浏览器跳转到前端 url 就够了
ysc3839
2022-09-15 23:24:21 +08:00
@2NUT imgui 不太可能比 Web 简单吧?而且 imgui 是实时刷新的,没有更新机制,非常消耗性能
512357301
2022-09-15 23:34:37 +08:00
aardio 呢,应该能满足条件,语法接近 JS ,功能 electron 也不差,而且很小巧
2NUT
2022-09-15 23:40:57 +08:00
@ysc3839 #15 机器累点,人的角度简单些
renmu
2022-09-16 00:39:23 +08:00
这种内部工具压根就不在意大小,electron 能用最新特性,不用考虑兼容性可太香了
tool2d
2022-09-16 01:13:00 +08:00
@ysc3839 老外有过对比,实时刷新的 UI ,状态管理确实要比 Web 简单一些。

React 光维护各种状态,就已经变成一个大框架了。而 imgui 大部分状态都可以每帧实时获取。
Aloento
2022-09-16 02:01:07 +08:00
JavaFX / Windows APP SDK (这个绝佳)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/880360

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX