小团队 Windows 桌面客户端程序用什么技术栈比较好?大家有什么建议

2020-10-31 14:29:27 +08:00
 MasterMonkey

现有技术栈:

1. .NET+WPF(2010)  				  现有平台,非常老,公司主力
2. Python + Flask/Django		  使用量很大,但是以自动化和脚本为主

备选技术栈:

1.Nodejs+Electon
2.QT+PySide
3..Net Core+WPF
4..Net Core+Asp.NET Blazor, 给 Web 服务加壳
5..Net Core+Xamarin+Asp.NET Blazor, 混合程序,进程内复用

预期未来会持续迁移到 Web/Mobile/小程序,看好 Web 技术和未来.Net 5/6 的发展,又担心微软天天折腾

各位老哥有什么建议?

11651 次点击
所在节点    程序员
112 条回复
jones2000
2020-11-01 02:35:18 +08:00
Windows 上用 C++ MFC, 所有 UI 可以使用 GDI,GDI +,openGL 等绘制.
另外不能因为要多平台而使用一套代码,这样性能很差. 最好是采用代码移植的方法。
charlie21
2020-11-01 02:50:49 +08:00
还是建议 WPF

Electron 这种垃圾玩意五年之后还在不在都不一定了

不要低估 node.js 那帮人的实力

(即使 五年后 Electron 还在,它也不是 2020 年的 Electron 了。

兼容性是什么?倒行逆施。反倒是 你一旦踏上 Electron 这种东西,你就得年年随着它的最新更新而推翻重写。这就是 js 界的阳谋,反正大家都不失业。年年重写嘛谁会失业,那肯定是不肯重写的要失业了

本该用 2022 年的 Electron 了,你还在用 2020 年的 Electron,你肯定失业
你 2018 年写的 Electron app 现在还能跑吗?

不过也不怪 node.js 那帮人,node.js 那帮人就没有考虑兼容性的资格

可是你 2010 年写的 WPF 软件在 2020 年还能跑.
mattxlee
2020-11-01 02:57:57 +08:00
只是 Windows 用.net 是最好的。
charlie21
2020-11-01 03:03:47 +08:00
为什么没人担心自己会被替换掉呢?就是逐渐把你们替换掉:

只要开始写 Electron 了,写 Electron 的人就是要逐渐把你们写 WPF 的给替换掉。到时候余下的你们不得不陪着 node.js 那帮人年年学新招式,陪他们内卷。这叫引狼入室( 彼时看公司人员构成,WPF 小团队已经被砍掉了,客户端都是写 Electron 的了 而且是年年追着最新版的 Electron )

被替换的人 自然就担心,替换人的人 自然就不担心,那无知的孩子:她那时候还太年轻,不知道所有命运赠送的礼物,早已在暗中标好了价格。 —— 你就是这价码的一部分,那分不清什么叫 优胜劣汰、引狼入室、良币驱逐劣币、劣币驱逐良币的人 就是这价码的一部分
quan01994
2020-11-01 06:46:14 +08:00
maui
应该可以
t6attack
2020-11-01 07:57:47 +08:00
要么向底层+高效迈进,转 QT C++。要么保持 .NET WPF 不动 。如果 PC 客户端很重、略卡。那做客户端的意义又在哪?
MasterMonkey
2020-11-01 09:13:22 +08:00
@jones2000 MFC 做 UI 程序生产力太低了吧,这个不好
MasterMonkey
2020-11-01 09:15:19 +08:00
@charlie21 嗯,同感,上了 js 的道,就必须天天升级了。
MasterMonkey
2020-11-01 09:18:07 +08:00
@charlie21 啥,太深奥?
MasterMonkey
2020-11-01 09:20:14 +08:00
@quan01994 这个不太靠谱吧,还在实验,一块大饼!感觉会被坑
MasterMonkey
2020-11-01 09:22:31 +08:00
@t6attack 客户端是业务需求了,用什么技术的话,主要是考虑好开发、好维护、方便和设计团队合作
AndyAO
2020-11-01 09:26:33 +08:00
@MasterMonkey #47
我也有这种感觉 MFC 是个老古董,没记错的话是直接调用 WinAPI 绘制控件之类的,UI 稍微复杂点就效率很低.
h82258652
2020-11-01 09:29:18 +08:00
还是要看需求啊,你像 telegram 这种聊天的基本就是网络请求的,用 electron 就很适合。但要做那种工控的,一堆 native 调用的,用 WPF 就适合很多。如果是高性能要求的,例如实时视频直播的,WPF 都不行,只能上 C++。
weiqk
2020-11-01 09:38:29 +08:00
我看了全部是回复,居然没有 delphi c++builder vb,我感到很神奇,认真做一套方案至少可以卖 30 年
AndyAO
2020-11-01 10:13:56 +08:00
@h82258652 #53
telegram 的 Windows 客户端用的并非 Electron.
alonehat
2020-11-01 10:25:47 +08:00
用 python 和 node 写桌面应用亏能真的做出来,不追求点开发速度-性能-稳定性的平衡嘛。electron 难用到爆,资源占用不说,开发起来坑就慢慢踩吧,上几个月做个工控没累死,最后砍了,用 wpf 重做。原生的多好不说,.netcore 基本是最前列的高级语言了,还考虑别的跨平台属实没必要
hotsymbol
2020-11-01 10:29:55 +08:00
最简单的难道不是。全平台切换到 Linux 。这样就不需要再考虑垃圾的 DotNet 了
cassyfar
2020-11-01 10:40:00 +08:00
推荐这个 Nodejs+Electon

你只需要招一个大佬把架子搭好,之后就是前端编程了,不愁招不到能干的人。
IsaacYoung
2020-11-01 10:45:28 +08:00
Electron 吧。。。虽然大
nicevar
2020-11-01 10:48:05 +08:00
看需求,如果需求复杂又追求性能的用 Electron 就是往火坑里跳,你们都有资源为啥不选 WPF ?这不没事找虐么,至于你要迁移 Web/Mobile/小程序完全可以用其他方案,没必要把系统差异巨大的东西非要整成一套,结果做出个四不像。即使是 2020 了,那些大型长期使用的应用大多还是 C 、C++的,Electron 开发出来的大多是辅助类的。

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

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

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

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

© 2021 V2EX