4 个小团队,其中 3 个是 C#开发人员,另外 1 个是前端开发人员,现在有个 UOS 的桌面软件需要开发,请问各位大佬,在现有人员保持不变的情况下用什么工具和语言开发是最优解呢?

有前端就 Electron ,团队小了怎么快怎么来

用 Electron ,qq 微信就用 electron 开发的,跨平台,跨指令集比较容易。uos 通常需要适配好几种指令集,x86,arm,龙芯,risv

这个得看你的软件复杂度、开发工作量来定,如果是很简单的 App ,让前端兼顾一下用 electron 写写就行如果工作量比较大前端一个人搞不定,那你就得考虑看是否选用 dotnet 方案让 C# 人员来参与开发,或者考虑多招几个前端了

dotnet 可以跨平台吗?

.net 当然可以跨平台,开发人员搞不搞得定就是另外一回事了。在这问意义不大,不如开个会讨论一下

dotnet workload install maui

你们组里有人会 wpf 吗,会就考虑一下 avalonia ,maui 还得踩坑,electron 的工程结构和常规的前端并不一样,用之前要考虑清除,前端熟不熟悉这快,赶鸭子上架势必出问题

顺便注意,maui 没有官方的 linux 支持,只有由社区维护的分支,不建议使用

我这之前也是在 UOS 上开发的软件 用 electron 打成 deb 包然后找统信签名 使用 electron 可以快速开发,有开发经验的后端直接去写 node 是没啥问题的 复杂的无非就是进程间通信、多窗口这些

纯好奇,你们有 3 个 C#开发,他们不知道是否可以跨平台?

dotnet 跨平台目前有 Avalonia 、Uno 等社区方案官方框架的话,之前的 xamarin 是支持 Linux ,但是 maui (xamarin 升级版) 暂时还没支持

跨端肯定 Electron

当你们 3 个 C 艹艹不知道能跨端, 就决定只能 electron 了

Electron 或者 官方的 dtk (基于 QT )

#13 哈哈说的没毛病

qt 没人用吗?

#16 他们团队没人会 C++ 啊,上 Qt 风险更大了

都是做 windows 桌面开发的,连 linux 系统都没接触过

#18 这也太半吊子了

QT 吧。一次到位。否则各种折腾。

avalonia 坑多不多,有会 WPF 的人。

avalonia 别的端不好说,在桌面端是有成熟产品的,比如 jetbrains 下面 DotMemory 和 DotTrace,unity 的 Plastic SCM ,如果你还觉得不不靠谱,还有商业版的 xpf

感谢

我在 UOS 待过,对 UOS 产品比较了解,想问楼主开发什么桌面软件?

一般用 C#写 winform 的还真不知道 dotnet 能跨平台 毕竟还是.net framework 时代

我们公司也软件也要求做统信适配 还好之前用的是 electron 稍微改下打包配置就出包了;最后 要根据 uos 软件包规范出包,我们用的是 uptool 这个工具,源码可修改,定制成自己产品的打包工具 还不错 imgur.com/otn2QM2

前端负责做界面,C#负责编写动态库给前端调用,动态库内不涉及界面,这样最稳妥

中间用 node 胶起来

最求速度肯定是 electron ,后端只要懂点 js 直接就能撸了。

pyside6 应该可以吧,可以用 nuitka 打包,开发效率和运行效率都挺不错的。

可以用 pyside6 ( pyqt ),现在可用性挺高的。

不久前有分享过 www.cnblogs.com/hoyho/p/18229682, 桌面端就不推荐 MAUI ,Avalonia 基本能满足。而且团队原来就用 C#的话,直接对着文档就可以开干了,何况还有用过 WPF

正常来说当然是用 c#写原生,不过估计 C#的开发者自己都没几个知道这玩意能跨平台的然后就是有不少跨平台框架,比如 CPF gitee.com/csharpui/CPF甚至还有把 C#封装到 GTK 下,还能用 vs 可视化开发的 www.cnblogs.com/easywebfactory/p/17803567.html成不成熟就得你们自己尝试了

.net6 wpf+webview2 混合开发

不过你唯一要注意的是,.net core 只有 arm64 版本,其他比如龙芯的不知道有没有如果你需要做 uos 的全适配,那你首先要考量 c#本身行不行

.net 跨平台我用过国产的 CPF ,做的界面比较简单,没什么问题

龙芯好像有.netcore, 见 cloud.tencent.com/developer/article/1875061

你用 CPF 的设计器没有呢,我看是收费的?

wpf 只支持 windows ,op 是 linux 桌面

会 WPF 的话可以考虑 Avalonia ,跟 WPF 差不多的很容易上手。 而且已经有著名跨平台应用 Ryujinx 龙神模拟器,可以说是大名鼎鼎了。不过就是第三方生态差点儿,没有成套的 UI 控件包(比如 Dev Extreme )等。

没有什么特别的需求,无脑 Web based 方案( Electron/Tarui 之类的),其次 Qt (不想 C++可以 pyqt )。毕竟生态这东西摆在这里,用的人越多坑越少,社区资料丰富。做正经/赚钱的商业项目,坑越少越好,尽量用用的人最多的库/平台/框架。如果折腾什么奇奇怪怪的东西,人家都能交付收工收尾款了,你们还在 debug ,然后等下有各种玄学 bug 又被客户投诉...

如果要给 linux 平台开发 electron 软件,请务必考虑一下在 wayland 下的输入法问题,即便现在 xorg 还能用,但 wayland 也是趋势而 wayland 下 electron 仅支持 text-input-v1 ,目前大部分 compositor 没有且不打算支持(但未来可能会更好,比如说 mutter 现在已经有了相关 pr )现状可以参考: www.csslayer.info/wordpress/fcitx-dev/chrome-state-of-input-method-on-wayland/而 Tarui 则完全没有 chromium 所带来的问题

#39
.NET 6 是跨平台的,WPF 不跨平台,只支持 windows 。你看目标框架那里

支持编译没有用,wpf 使用的全是 DirectX+win32 的 api ,没有任何 linux 支持,你就算跑也只能跑在 wine 里

#44 是我草率了

#45 是我草率了

QT 吧,我记得 DEEPIN 提供过一个 QT 开发的模版,UOS 应该也一样