桌面端技术选型求指导

2021-11-25 15:59:10 +08:00
 windpinw

先说背景,公司要做的,小工具辅助客户的级别,商业软件,非大型项目。

  1. 核心逻辑部分已经有十分完备的 java 实现(可以从公司主项目抄过来)
  2. 希望尽量轻量化。
  3. 目前在考虑桌面端的框架。 JavaFx: 不考虑,社区不好,支持少 Swing: 最容易和逻辑部分结合,比较担心 UI 方面能否实现较好的效果,或者 effort 是不是比较大 Electron: UI 不担心,但是逻辑处理的部分需要用 js 重构一次,后续的迭代大概率还要继续参考主项目的代码 进行重构。除非独立部署一个 java web 服务器让逻辑部分单独出来。 Native 类的 C++/C#:主项目就是用这些写的,开发负担比较重,估计不考虑。除非有很好的解决方案。

广泛吸纳意见,希望看看我上面的想法有哪些是过虑的,或者各位有什么建议都可以说说。 如有表达不到位的地方还请指出

8310 次点击
所在节点    程序员
69 条回复
zjsxwc
2021-11-25 20:01:07 +08:00
这种 electron 与 java 全都要?
https://github.com/jreznot/electron-java-app
Buges
2021-11-25 20:10:17 +08:00
已经用 Java 写好了,那肯定继续用 Java 。
啥情况都无脑推 electron 的,是内存太多没地方用吗?
nojsja
2021-11-25 20:36:08 +08:00
之前一直写 electron ,现在正在学习和尝试 tauri+rust
amai0w0
2021-11-25 21:45:09 +08:00
@bjzhou1990 现在用 Flutter 开发 Windows 桌面程序的都是真勇士,Desktop 应该还没发正式版吧
jlkm2010
2021-11-25 21:47:54 +08:00
JavaFX WebView
MakHoCheung
2021-11-25 22:13:35 +08:00
小工具的话用 jfx 没啥问题吧,直接上 java17 ,可以 jlink 成一个自包含的应用,如果类库不怎么多反射的话还可以用 gluon substrate 编译成原生二进制程序。当然楼主一开始就否了 jfx ,我这回复多余的
nicevar
2021-11-25 23:05:36 +08:00
给什么人用?如果只是少量用户很单一,什么选型都不重要,但是用户复杂的话,不要用 Electron 这种,开发出来了可能会被拒绝使用,体积大效率低,很多开发者喜欢用 Electron 开发,但是做出来的软件自己都不用。
Flutter 就更不要用了,这种不成熟的东西用起来就是坑,现在连 Android 上开发出来的软件问题都很多,编辑框的问题到现在还没解决
ashong
2021-11-26 00:10:27 +08:00
chromium + js + c++
akira
2021-11-26 05:07:39 +08:00
Native 类的 C++/C#:主项目就是用这些写的

主项目用这个写,说明你们主要的技术栈就是这个了,那还换啥语言啊
mirage13
2021-11-26 08:34:26 +08:00
用 qt 啊
kun775
2021-11-26 09:03:07 +08:00
windows 桌面应用无脑 winform 或 wpf 就 OK 了
skinny
2021-11-26 09:03:39 +08:00
别信什么 Electron 体积大效率低什么的说法,一般应用根本到不了那个瓶颈,除非你的 UI 代码和知乎微博那些桌面网页代码一样实在烂得没边
ming159
2021-11-26 09:11:31 +08:00
C#吧,Winform ,拖拽个界面。使用 HTTP 协议与 Java 通信交换数据,例如 Flurl ;
然后 Java 端内置一个 Jetty 作为 web 服务;

缺点: 仅适用于 Windows ,无法跨平台;界面稍微不注意会很丑
优点: 快,Java 端逻辑可以完全复用。
youxiachai
2021-11-26 10:59:52 +08:00
@amai0w0 flutter 2.5 desktop 已经发正式了....
youxiachai
2021-11-26 11:02:25 +08:00
@nicevar 不是写着商业项目吗.... Electron 感觉完美...美团饿了么商家端程序都是这个..
sgissb1
2021-11-26 11:11:24 +08:00
Electron 就可以了,界面这一块不该投入太多去搞。h5 做界面多快啊。
newmlp
2021-11-26 11:34:49 +08:00
Electron 看看客户接不接受,不接受就 Qt ,基本靠谱的桌面开发就这两个了
newmlp
2021-11-26 11:36:50 +08:00
@skinny 千万别用自己的环境去想象客户的环境,有些人还用是古董机器,electron 可能都启动不了。。。
darknoll
2021-11-26 11:41:01 +08:00
@newmlp 还有一个 cef 也是靠谱的,就是资料太少
caryyu
2021-11-26 11:41:54 +08:00
如果主项目已经有了前端展示,直接上 Electron ,移植到桌面。

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

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

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

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

© 2021 V2EX