win 下的桌面应用开发求推荐几个好的技术选型 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
a719114136
V2EX    Windows

win 下的桌面应用开发求推荐几个好的技术选型

  •  
  •   a719114136 2023-07-03 16:08:25 +08:00 via Android 6185 次点击
    这是一个创建于 882 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,系统 win10 ,曾经过用后端+浏览器的方案,但没找到现成的框架,还有浏览器拖拽文件好像不能获取文件路径

    51 条回复    2023-07-05 10:51:06 +08:00
    mineralsalt
        1
    mineralsalt  
       2023-07-03 16:11:19 +08:00   3
    希望你开发原生应用吧, 不要再套壳浏览器了, 实在是难以忍受一群浏览器进程在跑, 难受
    lujiaosama
        2
    lujiaosama  
       2023-07-03 16:11:20 +08:00
    你这难道不是在找 Electron
    crazytudou
        3
    crazytudou  
       2023-07-03 16:17:10 +08:00
    electron or Tauri
    rwecho
        4
    rwecho  
       2023-07-03 16:20:44 +08:00
    WPF tauri
    smilenceX
        5
    smilenceX  
       2023-07-03 16:47:00 +08:00
    既然限定 win 桌面了,推荐 WPF 。
    mmdsun
        6
    mmdsun  
       2023-07-03 16:59:16 +08:00
    Ally
        7
    Ally  
       2023-07-03 16:59:41 +08:00
    有跨平台需求就选 Tauri 或者 Electron
    cmdOptionKana
        8
    cmdOptionKana  
       2023-07-03 17:06:41 +08:00
    要看什么类型的应用, 目标用户是谁, 如果面向大众用户很可能需要追求颜值, 那就非 Electron 莫属了.

    如果自用, Chrome 好像有获取文件路径的 api
    archxm
        9
    archxm  
       2023-07-03 17:21:23 +08:00
    soui4js
    LXGMAX
        10
    LXGMAX  
       2023-07-03 17:30:05 +08:00
    Windows 最顺畅的就是微软自家 WPF 或者新出的 MAUI ,Visual Studio 也肥肠智能
    说这些的意思是求求别再用 Electron 了
    pastgift
        11
    pastgift  
       2023-07-03 17:45:51 +08:00   2
    虽然我不喜欢用 Electron 开发的应用
    ...
    ...
    ...
    但是让我自己开发,我还是选 Electron
    UN2758
        12
    UN2758  
       2023-07-03 17:47:55 +08:00
    @pastgift 焯,大家都很真实
    @LXGMAX
    lujiaxing
        13
    lujiaxing  
       2023-07-03 17:48:46 +08:00
    如果是公司刚成立, 图块图方便招人的话, 推荐 Electron.
    如果比较在意程序执行性能, 强烈推荐 WPF / WinUI3.
    如果你们公司技术栈都是 CPP, 推荐 QT.

    如果有跨平台/潜在跨平台需求, 推荐 Avalonia / MAUI / Uno Platform / Electron .

    WPF / WinUI / Avalonia / MAUI / Uno Platform 都是 XAML. 一个学明白了其他的都差不太多.
    lujiaxing
        14
    lujiaxing  
       2023-07-03 17:51:08 +08:00
    之所以不推荐 QT, 主要是 C++ 开发并不好招. 而且 C++ 开发尤其熟悉 QT 的开发者工资普遍是非常高的. 如果不是极端在意程序执行性能的话, C# 完全够了. 而且相对来说 C# 开发的工资要求没那么高, 也相对好招人.
    vfs
        15
    vfs  
       2023-07-03 17:52:52 +08:00   1
    试过了 Electron , 对前端真的不在行,放弃。
    试过了 QT , 因为买不起正版 license ,担心将来商业化会受阻。还有一个原因,QML 看着很美,用起来超级难,也放弃了。
    现在在用 wxWidgets 。 就是感觉开发效率低一些, 其他的倒还没啥大问题。
    Hellert
        16
    Hellert  
       2023-07-03 18:03:47 +08:00
    WinForms 或者 Delphi
    chendaye
        17
    chendaye  
       2023-07-03 18:05:31 +08:00
    最近正在用 winform+webview2 开发应用
    LXGMAX
        18
    LXGMAX  
       2023-07-03 18:05:44 +08:00
    @vfs qt 不买授权用链接动态库的方式是可以商用的,有社区版本;
    qml 也可以不用,直接传统的 qt widget
    liantian
        19
    liantian  
       2023-07-03 19:03:43 +08:00 via iPhone
    Electron 有啥不好…
    楼上那么多人抵制
    roundgis
        20
    roundgis  
       2023-07-03 19:16:58 +08:00 via Android
    @vfs wxwidgets 用路
    dw2693734d
        21
    dw2693734d  
       2023-07-03 19:20:04 +08:00
    无脑 Electron
    szzhiyang
        22
    szzhiyang  
       2023-07-03 19:22:06 +08:00
    wxWidgets ,跨平台原生 GUI 库
    Worldispow
        23
    Worldispow  
       2023-07-03 19:47:44 +08:00 via Android
    Electron 是真的垃圾,肉眼可见的卡顿。
    别跟说什么优化不好,,vsc 优化好之类的。
    需要非大精力去优化的技术跟好用没一点关系。
    makelove
        24
    makelove  
       2023-07-03 20:00:13 +08:00
    @Worldispow 优化 web 让它不卡的成本比用别的技术多出来的成本少得太多
    Worldispow
        25
    Worldispow  
       2023-07-03 20:05:03 +08:00
    @makelove 先不说优化 web 让它不卡的成本。能把 Electron 优化的不卡的应用,我就没见过几个。
    再者,开发者的成本管用户什么事,用户关心的是好不好用。
    hez2010
        26
    hez2010  
       2023-07-03 20:07:20 +08:00
    如果是 Windows 应用开发的话建议首选 WinUI 3 ,既能遵守平台原生设计风格,对系统各种 API 调用也更方便。
    如果需要跨平台的话可以用 Avalonia (指 11.0 版本),这几乎是除了 UWP/WinUI 之外唯一一个实现了渲染合成分离架构渲染器的 GUI 框架,可以确保无论什么时候都能有流畅的动画,还能通过 Native AOT 编译直接输出原生二进制。
    当然开发 Windows 应用也可以用 Avalonia ,可以把主题从自带的那个换成 FluentAvalonia 的包就有完整的 Win 11 Fluent Design 样式了,并且就算带了这个样式也还是跨平台的。
    since2014
        27
    since2014  
       2023-07-03 20:14:13 +08:00
    @Worldispow 卡不卡不是那么重要,本身他就是浏览器+页面的技术,你用网页能忍受不? Electron 本地读资源肯定比网页要流畅多了。目前 QQ 、QQ 音乐、飞书、vscode 都是 Electron ,大趋势在这了,而且生态方面和人员招聘方面都是有很大的优势,还有页面灵活度、跨端等等,让你很难
    Worldispow
        28
    Worldispow  
       2023-07-03 20:30:14 +08:00   2
    @since2014 我能不能忍受网页的卡顿取决于在行业内有没有原生技术开发的竞品,有竞品我肯定不会用 web 。

    至于你说的 QQ 、QQ 音乐、飞书、vscode ,他们用 Electron 的最大原因是他们要适配 win 、mac 、linux 三个平台。而且你可以搜下 qq 改为 Electron 后在本站的评价,看看有几条好评。
    https://www.google.com/search?q=site:v2ex.com/t%20qq%20%20Electron

    况且你给我举得那么多优势,都是技术层面的,作为用户,你用什么技术管我什么事,我要的是好用。
    真应了那句话。
    Electron 是一项让技术人员喜欢,让用户恶心的技术。
    zsxzy
        29
    zsxzy  
       2023-07-03 20:55:41 +08:00
    我们用了 duilib , 基本用 xml 就行了, 只是不能跨平台
    zsxzy
        30
    zsxzy  
       2023-07-03 20:56:05 +08:00
    多说一句, 发现火绒也是用 duilib 写的
    missdeer
        31
    missdeer  
       2023-07-03 22:10:53 +08:00 via Android   1
    不是刚需的软件我看到是 electron 的我就删掉
    Leon6868
        32
    Leon6868  
       2023-07-03 22:15:53 +08:00
    试试 flutter
    SupperMary
        33
    SupperMary  
       2023-07-03 22:22:47 +08:00
    个人认为写一些不那么复杂的东西,用 wxWidgets 也还可以。
    adoal
        34
    adoal  
       2023-07-03 22:34:45 +08:00
    @Worldispow 技术人员未必喜欢。喜欢的是管技术团队的人。
    iorilu
        35
    iorilu  
       2023-07-03 22:44:50 +08:00 via Android
    跨平台只有 pyqt
    blinue
        36
    blinue  
       2023-07-03 23:05:25 +08:00   2
    别碰 WinUI 3 ,会变得不幸
    dode
        37
    dode  
       2023-07-03 23:15:39 +08:00 via Android
    @mineralsalt 就是直接用浏览器使用系统,加点本地 localhost 后台增强功能
    kingfalse
        38
    kingfalse  
       2023-07-03 23:18:08 +08:00 via Android
    Java swing swt + jxbrowser ,这套现在国内某些大厂都在用,稳的一批
    xiaoxiaoming01
        39
    xiaoxiaoming01  
       2023-07-03 23:26:13 +08:00 via Android
    业务主导型选 Electron ,迭代周期长,踩过的坑也多,生态也更稳定,最重要的是自带了内核,能避免不少奇奇怪怪的 bug 。
    技术主导型选 Tauri ,rust 背书,号称桌面和移动端要一把吃,可以有无限的想象瞎折腾
    betterleolee
        40
    betterleolee  
       2023-07-04 03:58:01 +08:00
    pyside6 吧,跨桌面平台,界面用 qt 官方提供的 qtquick 和 qml 编辑工具拖拽出大致结构,样式细节部分跟前端 css 一样要微调,开发效率挺高的,当然追求执行效率和跨平台的话,还是上 qt6 吧,毕竟 C++比 python 快。
    flytsuki
        41
    flytsuki  
       2023-07-04 08:53:02 +08:00
    给企业做软件就用 Electron ,给普通用户就别用浏览器套壳了
    em70
        42
    em70  
       2023-07-04 09:15:37 +08:00   1
    delphi 就是你要找的东西
    vfs
        43
    vfs  
       2023-07-04 09:48:42 +08:00
    @roundgis 呀,我相对来说还是新手,多多指教啊:)
    vfs
        44
    vfs  
       2023-07-04 09:51:59 +08:00
    @LXGMAX 感谢提醒,关于 qt 可以动态链接商用,还真不知道。 其实抛弃 qt 不仅仅是因为这点,其中一个点就是报给他们的 bug 不给修复,无响应(可能因为我是免费用户吧),其次时当我尝试升级到最新版本时,我的 QML 莫名其妙无法编译了。 再者,qt 动态链接的库实在太多,太大,不太喜欢。
    veike
        45
    veike  
       2023-07-04 10:03:59 +08:00 via Android
    @Worldispow 不会是你电脑卡吧,electron 体验可接受范围之内。
    missdeer
        46
    missdeer  
       2023-07-04 10:33:17 +08:00
    @vfs QML 确实升一个版本就可能不行了,不知道是 feature 还是 bug ,很
    wwatson
        47
    wwatson  
       2023-07-04 11:26:09 +08:00
    @Worldispow 那么问题来了,你愿意为这个产品的流畅、占用内存地、安装包小支付多少成本呢
    Worldispow
        48
    Worldispow  
       2023-07-04 13:10:27 +08:00 via Android
    @wwatson 不如你先说说你这软件能为我带来多少便利和价值,我再告诉你我愿意付出多少成本。
    Worldispow
        49
    Worldispow  
       2023-07-04 13:12:33 +08:00 via Android
    @veike 32g 内存,pcie 固态。
    是在我的电脑上,原生和 et 的响应速度不一样,控制变量就是电脑性能。
    sunmker
        50
    sunmker  
       2023-07-04 13:42:40 +08:00
    出活快不在乎界面用 WInform
    在意界面用 WPF
    dimwoodxi27
        51
    dimwoodxi27  
       2023-07-05 10:51:06 +08:00
    vb6 ,yyds
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2911 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 92ms UTC 13:51 PVG 21:51 LAX 05:51 JFK 08:51
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86