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

讨论 未结 57 41
2NUT
2NUT 会员 2022年9月15日 12:42 发表
收藏(0)  分享
相关标签: 灌水交流
注意:本文归作者所有,未经作者允许,不得转载
57个回复
  • ysc3839
    2022年9月15日 12:42
    如果选择 Electron 但后端不需要 Node.js 的话,可以考虑直接用 C++调用 Edge WebView2 ,好处是省去 Node.js 和 C++对接的部分,坏处是要稍微多写点代码。
    0 0
  • 2NUT
    2NUT 会员 (楼主)
    2022年9月15日 12:42
    #1 这一套是不是只兼容 windows 10 呢?
    0 0
  • Manweill
    2022年9月15日 12:42
    99.99% windows 技术栈的吗? WPF/MAUI 之类。如果不考虑性能 electron 优先选择。
    0 0
  • 2NUT
    2NUT 会员 (楼主)
    2022年9月15日 12:42
    #2 看到了 windows 7 也兼容, 要先安装 edge ?
    0 0
  • 2NUT
    2NUT 会员 (楼主)
    2022年9月15日 12:42
    #3 恰巧不会 .net 年纪大 懒得学了
    0 0
  • semoon
    2022年9月15日 12:42
    java 技术栈,强烈安利 javafx
    0 0
  • 2NUT
    2NUT 会员 (楼主)
    2022年9月15日 12:42
    #6 数据可视化方便么?
    0 0
  • ysc3839
    2022年9月15日 14:43
    Win7 也支持,不过可能很快就会停止支持了,不需要安装 Edge ,需要安装独立的 Edge WebView2 Runtime 。
    0 0
  • treblex
    2022年9月15日 15:12
    试试 tauri 和 rust ,比 Electron 轻量很多,前端 js 各种框架都可以选 平台支持 win,linux,mac
    0 0
  • tool2d
    2022年9月15日 15:12
    虽然 V2 前端很多,但是我个人并不推荐用前端写桌面程序,UI 代码的耦合性太低。 如果你用 opengl 写 UI ,换个低层引擎可以 port 到任意平台,但是前端技术不一样,不管怎么移植,都必须背上浏览器这个沉重的外壳。 我很喜欢 electron ,但仅仅是喜欢。想要代码长寿,就必须把代码切成非常小的模块。
    0 0
  • 2NUT
    2NUT 会员 (楼主)
    2022年9月15日 15:42
    #11 我应该一个月学不会 rust... 之前一直关注一个 gui 项目叫 imgui ,想试试,宣传优点是使用简单
    0 0
  • erguotou521
    2022年9月15日 15:42
    做成 bs 结构?软件运行后只有一个后台服务并自动打开浏览器跳转到前端 url 就够了
    0 0
  • ysc3839
    2022年9月15日 15:42
    imgui 不太可能比 Web 简单吧?而且 imgui 是实时刷新的,没有更新机制,非常消耗性能
    0 0
  • 512357301
    2022年9月15日 15:42
    aardio 呢,应该能满足条件,语法接近 JS ,功能 electron 也不差,而且很小巧
    0 0
  • 2NUT
    2NUT 会员 (楼主)
    2022年9月15日 15:42
    #15 机器累点,人的角度简单些
    0 0
  • renmu
    2022年9月15日 16:41
    这种内部工具压根就不在意大小,electron 能用最新特性,不用考虑兼容性可太香了
    0 0
  • tool2d
    2022年9月15日 17:13
    老外有过对比,实时刷新的 UI ,状态管理确实要比 Web 简单一些。 React 光维护各种状态,就已经变成一个大框架了。而 imgui 大部分状态都可以每帧实时获取。
    0 0
  • Aloento
    2022年9月15日 18:12
    JavaFX / Windows APP SDK (这个绝佳)
    0 0
  • Jirajine
    2022年9月15日 18:12
    electron 之类的,根本没必要。你这需求哪里有做成 app 的需求了?直接起个本地 HTTP 服务,糊个前端界面搁浏览器里打开不就完事。
    0 0
  • imycc
    2022年9月15日 19:13
    你这个需求,不是搞个内部系统方便一点吗,给个上传文件的接口,处理完用网页展示即可,省去应用打包和更新的负担。
    0 0
  • mxT52CRuqR6o5
    2022年9月15日 19:42
    数据可视化的话,web 技术栈的平台可能确实有些优势
    0 0
  • villivateur
    2022年9月16日 00:42
    其实你可以学一学 WPF ,如果有前端开发经验的话,真的非常简单, .NET 开发现在非常友好
    0 0
  • wuxiaoqing234
    2022年9月16日 01:13
    wpf 那成熟度跟 react 没法比吧。。。 是我选我也用 html+css +ant design
    0 0
  • villivateur
    2022年9月16日 01:13
    OP 的环境主要是 Windows ,WPF 的成熟度比 React 不知道高到哪里去了
    0 0
  • tairan2006
    2022年9月16日 01:13
    纯 windows 肯定 winform/wpf 了…甚至用 vb 都特么可以。
    0 0
  • god7d
    2022年9月16日 01:13
    首选 winform ,论成熟的话这已经快要踏进坟墓了,论上手速度和开发速度,只要不是深入开发,拖拽控件相信一下午就能上手,一小时就能完成一些一般难度的界面。 缺点就是界面丑了点,适配比较差,不过你开发的是内部工具估计也不在意这些,winform 只要自己愿意花时间,也是可以做的很漂亮的
    0 0
  • wuxiaoqing234
    2022年9月16日 01:44
    wpf 那 xml mvvm... op 的需求明显是 etl ,可视化处理 ,需要调用啥 c++库。echart, ant chart 这些不香吗
    0 0
  • g00001
    2022年9月16日 01:44
    Electron 里弄 C++ , 那会很累的。 Electron 最要命的还不是体积大,你用 .NET 6 体积也很大,但是后面会越来越小。 Electron 要命的是会越写越大,搞不好就给你来个五六百 MB 。 如果没有跨平台的包袱,WebView2 的优势很多。 而且 WebView2 是共享组件,Win11 自带 ,Win7 这些可以自动安装(速度很快,不用写代码)。 下面写个例子: 先写几句 aardio 代码给 WebView2 套个壳子,不会 aardio 没关系,因为不需要再写更多 aardio 代码了。然后 JavaScript 就可以方便地调用 C++ 写的 DLL 。其他就可以直接用 JavaScript 和 C++ 写了。 import win.ui; mainForm = win.form(text="WebView2") //创建浏览器组件 import web.view; var wb = web.view(mainForm); //导出本地函数给网页 JavaScript wb.external = { callNative = function(str){ return ::User32.MessageBox(0,str,"JavaScript 调用 WinAPI 测试",0) } } //写入网页 HTML wb.html = /** <html><head> <script> aardio.callNative(); </script> **/ mainForm.show(); win.loopMessage(); aardio + WebView2 入门教程:
    0 0
  • Akitora
    2022年9月16日 01:44
    对 java 熟悉的话,可以试试 jetpack compose
    0 0
  • BingoXuan
    2022年9月16日 02:14
    pywebview ,跨平台的 webview ,但没有什么人推荐,可能安全性不够吧。代码逻辑可以用 python 写,需要性能调用 c++。
    0 0
  • daliusu
    2022年9月16日 02:14
    你这个需求,electron 就是最简单的,哪还需要 c++,electron 可以直接调用 node 库度,页面 loading 做好点就行了。只是个内部工具,谁在乎性能多好、体积多小呢
    0 0
  • darknoll
    2022年9月16日 02:41
    flutter 要学 dart ,tauri 要学 rust ,electron 要学 node ,没一个省心的。
    0 0
  • wdwwtzy
    2022年9月16日 02:41
    这个需求还使用 winform/wpf 最舒服,其他技术栈坑太多,写着都生气
    0 0
  • xieren58
    2022年9月16日 03:11
    Win 下还得 winform/wpf, 目前我在边学边用 .net6 + wpf
    0 0
  • lancelock
    2022年9月16日 03:41
    明明是单平台的需求为什么考虑的都是跨平台方案,不太理解。wpf 啥的不好吗
    0 0
  • gowk
    2022年9月16日 03:41
    首推 Web 技术栈,建议用 Go ,可以打包为单文件运行。 可以参考下面这几个项目:
    0 0
  • onecode
    2022年9月16日 03:41
    不跨平台, winform 或者 wpf
    0 0
  • newmlp
    2022年9月16日 03:41
    直接用 cpp 内嵌个 web 服务就完了,壳都不用套,直接本地浏览器访问
    0 0
  • makelove
    2022年9月16日 04:41
    web 还是最方便成熟,以前写过 delphi/winform ,效率和体验都和 web 没法比。 楼上推 wpf ,这个东西的状态管理是用什么的,我去欣赏一下
    0 0
  • shijingshijing
    2022年9月16日 05:41
    Winform ,拖拖控件,写点事件响应代码就 ok 了,性能也不错。 跨平台就 PyQT/PySide ,其他么蛾子不用考虑。
    0 0
  • yekern
    2022年9月16日 06:41
    ![]( https://images.esc.show/img/202209161411131.png) 同样小工具。golang + wails+vue+element ui 写的
    0 0
  • agdhole
    2022年9月16日 07:11
    wpf ,跨平台 maui 能用但不成熟
    0 0
  • conglovely
    2022年9月16日 08:41
    内部人员用,winform 开发挺快的吧,拖拖拽拽写些事件 丑就丑点
    0 0
  • crayygy
    2022年9月16日 11:41
    QT 不是蛮好的嘛,配合 QML
    0 0
  • triptipstop
    2022年9月16日 11:41
    管他什么平台,我都用原生。 是的,就是要卷死各位。
    0 0