桌面应用开发求大佬推荐技术方案

2023-07-04 10:35:34 +08:00
 CForce

现在是想做个给团队内和外部合作方用的小工具应用,GUI 界面非常简单,有这么几个需求: 1 、支持 Windows 和 Mac ; 2 、工程里要用命令行调用一个外部的可执行文件,在 Windows 上就是 exe 和几个 dll ,Mac 上就是一个 Linux 可执行文件,想把这几个外部可执行文件都最终打包到一个最终产物里并且可被直接调用; 3 、免安装,比如在 Windows 上直接能生成最终的一个 exe 文件直接打开;

有现有的技术方案可以满足上面的需求吗?求各位大佬推荐技术方案。

7401 次点击
所在节点    Windows
84 条回复
nong99
2023-07-04 12:17:13 +08:00
非桌面应用开发岗,同时确实感受过 electron 的卡顿!这边想球迷如果总 QT 或 Avalonia 之类的完成主程主体框框,种交互的由自己嵌套 webview 可行否?
nong99
2023-07-04 12:20:08 +08:00
@nong99 感觉提及跨平台,没有比 web 效率更高的样子了哇?既然如此,提供原生的壳子拓展,内容 web 这类方案是否在实践上有什么弊端吗?(同时,既然已经有了 Tauri 的存在,相比较用 QT 等回比较有什么优势呢?)各位桌面大佬可以探讨下哈~
lujiaxing
2023-07-04 12:23:52 +08:00
Avalonia + .NET 7 吧. AOT 打出来合计不超过 100M. 支持 Win / Linux / Mac
lujiaxing
2023-07-04 12:24:55 +08:00
@nong99 类似 NanUI 的方式嘛. 理论上是可以的. CEF 有一个叫 Off-Screen rendering 的模式, 可以用来实现你想要的效果.
sloknyyz
2023-07-04 13:02:30 +08:00
electron 吧,开发挺简单的
Mithril
2023-07-04 13:43:26 +08:00
@nong99 可以的,这种已经有很多方案了。
你可以看一下 WebView2 的嵌套方案,这东西是直接调用系统提供的组件,不用打包一个 CEF 进去。支持混合编程。就是在你原生桌面应用里面内嵌一个浏览器控件,然后在里面渲染 web 。你可以随便嵌入到什么地方都行。
比如 blazor hybrid ,虽然我不想用 Blazor ,但类似的方案也有不少。
nong99
2023-07-04 14:05:16 +08:00
@Mithril @lujiaxing 好的👌谢谢各位大佬,我自己纯前端仔。玩略过 electron ,感觉像接触 C# .net 去玩下桌面框 webview2 试试!特别近况看说 C# 还是稳的哈🤣
flyqie
2023-07-04 14:08:41 +08:00
electron 吧。。

这需求用 electron 最稳了。。
ChrisFreeMan
2023-07-04 14:12:02 +08:00
人人都骂 electron 但是只有它除了原生最稳了
CForce
2023-07-04 14:29:41 +08:00
@missdeer 主要是有一个外部的 exe 和 dll ,不知道怎么最终打包到同一个 exe 里面
CForce
2023-07-04 14:29:52 +08:00
@DTCPSS 多谢,我去了解一下
CForce
2023-07-04 14:31:21 +08:00
@fay94 electron 可以生成一个免安装的 exe 吗?我试了一下 forge 和 electron builder ,没有找到生成独立的 exe 的方案
missdeer
2023-07-04 14:45:01 +08:00
@CForce 当作 Windows 资源( rc )打进去,程序起来后先从资源里抽出来放到临时目录里用
imkerberos
2023-07-04 14:47:49 +08:00
fltk / fltk-rs 最稳
wxdiy
2023-07-04 14:55:32 +08:00
这需求,不就是做个网站?
CForce
2023-07-04 14:58:47 +08:00
@wxdiy 主要是给本地用的,比如 连接外部设备 这种功能,所以网站可能不行
CForce
2023-07-04 15:06:04 +08:00
@liuhan907
@flyqie
@gydi
@sipt
@yl20181003
@sloknyyz
@ChrisFreeMan

求指导 electron 怎样配置,可以把工程里的三方 exe 和 dll 最终打包成一个免安装的 exe ,并且直接调用呢?试了一下 forge 和 electron-builder ,没有找到方案
binge921
2023-07-04 15:21:33 +08:00
electron 必然可以打包成 exe 还支持 macos 刚用 electron 开发一款单机版程序 不难 会 vue 就行 服务端 nodejs java 都行 不过我希望我的下一个应用是 flutter 他的性能听说也挺高
sloknyyz
2023-07-04 15:22:05 +08:00
@CForce github 上很多模板项目,比如这个 https://github.com/sindresorhus/electron-boilerplate , 可以直接拿来用。
配置都是配好的,但也需要安装你自己的需求去修改一些东西。打包这方面不用担心,electron-builder 可以使用--dir 参数将所有文件放到文件夹里不进行打包,这样后面可以自己直接压缩成一个压缩包就 OK 了。调用第三方 exe 更简单,直接主进程使用 node 的 child_process 模块调用,很方便。
byteroam
2023-07-04 15:25:27 +08:00
现在的人都退化到这个地步了?看了半天不就是写个绿色 exe 吗......还需要啥技术方案..

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

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

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

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

© 2021 V2EX