统信 UOS 桌面软件用什么工具开发? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
kvibert1
V2EX    Linux

统信 UOS 桌面软件用什么工具开发?

  •  
  •   kvibert1 2024-06-12 11:40:07 +08:00 5819 次点击
    这是一个创建于 487 天前的主题,其中的信息可能已经有所发展或是发生改变。
    4 个小团队,其中 3 个是 C#开发人员,另外 1 个是前端开发人员,现在有个 UOS 的桌面软件需要开发,请问各位大佬,在现有人员保持不变的情况下用什么工具和语言开发是最优解呢?
    50 条回复    2024-06-26 20:48:26 +08:00
    Akuta
        1
    Akuta  
       2024-06-12 11:47:44 +08:00
    有前端就 Electron ,团队小了怎么快怎么来
    dbow
        2
    dbow  
       2024-06-12 11:50:39 +08:00
    用 Electron ,qq 微信就用 electron 开发的,跨平台,跨指令集比较容易。uos 通常需要适配好几种指令集,x86,arm,龙芯,risv
    zengxs
        3
    zengxs  
       2024-06-12 12:22:20 +08:00
    这个得看你的软件复杂度、开发工作量来定,如果是很简单的 App ,让前端兼顾一下用 electron 写写就行

    如果工作量比较大前端一个人搞不定,那你就得考虑看是否选用 dotnet 方案让 C# 人员来参与开发,或者考虑多招几个前端了
    kvibert1
        4
    kvibert1  
    OP
       2024-06-12 12:26:36 +08:00 via iPhone
    @zengxs dotnet 可以跨平台吗?
    BYDH
        5
    BYDH  
       2024-06-12 13:11:56 +08:00
    @kvibert1 .net 当然可以跨平台,开发人员搞不搞得定就是另外一回事了。在这问意义不大,不如开个会讨论一下
    zhangzhi0000
        6
    zhangzhi0000  
       2024-06-12 13:13:49 +08:00
    @kvibert1 dotnet workload install maui
    yuhuai
        7
    yuhuai  
       2024-06-12 13:21:46 +08:00
    你们组里有人会 wpf 吗,会就考虑一下 avalonia ,maui 还得踩坑,electron 的工程结构和常规的前端并不一样,用之前要考虑清除,前端熟不熟悉这快,赶鸭子上架势必出问题
    yuhuai
        8
    yuhuai  
       2024-06-12 13:23:29 +08:00
    顺便注意,maui 没有官方的 linux 支持,只有由社区维护的分支,不建议使用
    fields
        9
    fields  
       2024-06-12 13:26:22 +08:00
    我这之前也是在 UOS 上开发的软件 用 electron 打成 deb 包然后找统信签名 使用 electron 可以快速开发,有开发经验的后端直接去写 node 是没啥问题的 复杂的无非就是进程间通信、多窗口这些
    a33291
        10
    a33291  
       2024-06-12 13:29:26 +08:00
    @kvibert1 纯好奇,你们有 3 个 C#开发,他们不知道是否可以跨平台?
    zengxs
        11
    zengxs  
       2024-06-12 13:30:19 +08:00
    @kvibert1 dotnet 跨平台目前有 Avalonia 、Uno 等社区方案
    官方框架的话,之前的 xamarin 是支持 Linux ,但是 maui (xamarin 升级版) 暂时还没支持
    asdjgfr
        12
    asdjgfr  
       2024-06-12 13:31:05 +08:00
    跨端肯定 Electron
    daysv
        13
    daysv  
       2024-06-12 13:39:27 +08:00   1
    当你们 3 个 C 艹艹不知道能跨端, 就决定只能 electron 了
    gegewu0927
        14
    gegewu0927  
       2024-06-12 13:43:52 +08:00   1
    Electron 或者 官方的 dtk (基于 QT )
    zengxs
        15
    zengxs  
       2024-06-12 13:44:51 +08:00
    @daysv #13 哈哈说的没毛病
    iOCZS
        16
    iOCZS  
       2024-06-12 13:46:45 +08:00
    qt 没人用吗?
    zengxs
        17
    zengxs  
       2024-06-12 13:48:49 +08:00
    @iOCZS #16 他们团队没人会 C++ 啊,上 Qt 风险更大了
    kvibert1
        18
    kvibert1  
    OP
       2024-06-12 14:00:15 +08:00
    @a33291 都是做 windows 桌面开发的,连 linux 系统都没接触过
    frantic
        19
    frantic  
       2024-06-12 14:20:28 +08:00
    @kvibert1 #18 这也太半吊子了
    lyping
        20
    lyping  
       2024-06-12 14:26:18 +08:00
    QT 吧。一次到位。否则各种折腾。
    kvibert1
        21
    kvibert1  
    OP
       2024-06-12 14:29:32 +08:00
    @yuhuai avalonia 坑多不多,有会 WPF 的人。
    yuhuai
        22
    yuhuai  
       2024-06-12 14:38:36 +08:00
    @kvibert1 avalonia 别的端不好说,在桌面端是有成熟产品的,比如 jetbrains 下面 DotMemory 和 DotTrace,unity 的 Plastic SCM ,如果你还觉得不不靠谱,还有商业版的 xpf
    kvibert1
        23
    kvibert1  
    OP
       2024-06-12 14:55:29 +08:00
    @yuhuai 感谢
    schellong
        24
    schellong  
       2024-06-12 15:23:23 +08:00
    我在 UOS 待过,对 UOS 产品比较了解,想问楼主开发什么桌面软件?
    Allvirus
        25
    Allvirus  
       2024-06-12 15:36:04 +08:00
    一般用 C#写 winform 的还真不知道 dotnet 能跨平台 毕竟还是.net framework 时代
    aliyun2017
        26
    aliyun2017  
       2024-06-12 16:03:44 +08:00
    我们公司也软件也要求做统信适配 还好之前用的是 electron 稍微改下打包配置就出包了;最后 要根据 uos 软件包规范出包,我们用的是 uptool 这个工具,源码可修改,定制成自己产品的打包工具 还不错
    https://imgur.com/otn2QM2
    minami
        27
    minami  
       2024-06-12 16:12:04 +08:00
    前端负责做界面,C#负责编写动态库给前端调用,动态库内不涉及界面,这样最稳妥
    minami
        28
    minami  
       2024-06-12 16:12:59 +08:00
    @minami 中间用 node 胶起来
    lingeo
        29
    lingeo  
       2024-06-12 16:18:20 +08:00
    最求速度肯定是 electron ,后端只要懂点 js 直接就能撸了。
    qiuhang
        30
    qiuhang  
       2024-06-12 16:26:28 +08:00
    pyside6 应该可以吧,可以用 nuitka 打包,开发效率和运行效率都挺不错的。
    qiuhang
        31
    qiuhang  
       2024-06-12 16:28:46 +08:00
    @zengxs 可以用 pyside6 ( pyqt ),现在可用性挺高的。
    rome7054
        32
    rome7054  
       2024-06-12 16:52:23 +08:00
    @kvibert1 不久前有分享过 https://www.cnblogs.com/hoyho/p/18229682, 桌面端就不推荐 MAUI ,Avalonia 基本能满足。而且团队原来就用 C#的话,直接对着文档就可以开干了,何况还有用过 WPF
    kero991
        33
    kero991  
       2024-06-12 17:29:13 +08:00
    正常来说当然是用 c#写原生,不过估计 C#的开发者自己都没几个知道这玩意能跨平台的
    然后就是有不少跨平台框架,比如 CPF
    https://gitee.com/csharpui/CPF

    甚至还有把 C#封装到 GTK 下,还能用 vs 可视化开发的
    https://www.cnblogs.com/easywebfactory/p/17803567.html

    成不成熟就得你们自己尝试了
    chendaye
        34
    chendaye  
       2024-06-12 17:30:42 +08:00
    .net6 wpf+webview2 混合开发
    kero991
        35
    kero991  
       2024-06-12 17:31:06 +08:00
    不过你唯一要注意的是,.net core 只有 arm64 版本,其他比如龙芯的不知道有没有
    如果你需要做 uos 的全适配,那你首先要考量 c#本身行不行
    seraphv3
        36
    seraphv3  
       2024-06-12 21:28:38 +08:00
    .net 跨平台我用过国产的 CPF ,做的界面比较简单,没什么问题
    seraphv3
        37
    seraphv3  
       2024-06-12 21:32:46 +08:00
    kvibert1
        38
    kvibert1  
    OP
       2024-06-12 21:41:44 +08:00 via iPhone
    @seraphv3 你用 CPF 的设计器没有呢,我看是收费的?
    sq955
        39
    sq955  
       2024-06-12 22:35:39 +08:00
    @mydebug wpf 只支持 windows ,op 是 linux 桌面
    beginor
        40
    beginor  
       2024-06-12 23:35:15 +08:00 via Android
    会 WPF 的话可以考虑 Avalonia ,跟 WPF 差不多的很容易上手。 而且已经有著名跨平台应用 Ryujinx 龙神模拟器,可以说是大名鼎鼎了。

    不过就是第三方生态差点儿,没有成套的 UI 控件包(比如 Dev Extreme )等。
    liyafe1997
        41
    liyafe1997  
       2024-06-13 02:08:05 +08:00
    没有什么特别的需求,无脑 Web based 方案( Electron/Tarui 之类的),其次 Qt (不想 C++可以 pyqt )。

    毕竟生态这东西摆在这里,用的人越多坑越少,社区资料丰富。

    做正经/赚钱的商业项目,坑越少越好,尽量用用的人最多的库/平台/框架。如果折腾什么奇奇怪怪的东西,人家都能交付收工收尾款了,你们还在 debug ,然后等下有各种玄学 bug 又被客户投诉...
    ChaosAttractor
        42
    ChaosAttractor  
       2024-06-13 04:58:34 +08:00
    如果要给 linux 平台开发 electron 软件,请务必考虑一下在 wayland 下的输入法问题,即便现在 xorg 还能用,但 wayland 也是趋势
    而 wayland 下 electron 仅支持 text-input-v1 ,目前大部分 compositor 没有且不打算支持(但未来可能会更好,比如说 mutter 现在已经有了相关 pr )
    现状可以参考: https://www.csslayer.info/wordpress/fcitx-dev/chrome-state-of-input-method-on-wayland/
    而 Tarui 则完全没有 chromium 所带来的问题
    chendaye
        43
    chendaye  
       2024-06-13 09:38:49 +08:00
    @sq955 #39
    sq955
        44
    sq955  
       2024-06-13 10:08:37 +08:00
    @mydebug .NET 6 是跨平台的,WPF 不跨平台,只支持 windows 。你看目标框架那里
    yuhuai
        45
    yuhuai  
       2024-06-13 10:11:32 +08:00
    @mydebug 支持编译没有用,wpf 使用的全是 DirectX+win32 的 api ,没有任何 linux 支持,你就算跑也只能跑在 wine 里
    chendaye
        46
    chendaye  
       2024-06-13 10:42:43 +08:00
    @sq955 #44 是我草率了
    chendaye
        47
    chendaye  
       2024-06-13 10:42:51 +08:00
    @yuhuai #45 是我草率了
    layxy
        48
    layxy  
       2024-06-13 20:16:07 +08:00
    QT 吧,我记得 DEEPIN 提供过一个 QT 开发的模版,UOS 应该也一样
    mingtdlb
        49
    mingtdlb  
       2024-06-15 14:18:21 +08:00
    用过 electron 开发的软件,有些卡的不能用,有些没感知。
    seraphv3
        50
    seraphv3  
       2024-06-26 20:48:26 +08:00
    @kvibert1 没有用设计器,直接写的代码。是的,设计器是收费的,一次性永久购买,记得是 200 还是 300 多元。新用户可以免费用三个月还是两个月。我也买了,但是没有用来拖拽写界面,只是用来定位运行中界面元素查看 css
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3104 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 00:35 PVG 08:35 LAX 17:35 JFK 20:35
    Do have faith in what you're doing.
    ubao 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