Window 平台,开发客户端软件,大家一般用什么语言写界面呀?

2020-04-29 14:41:44 +08:00
 Trinity888
13414 次点击
所在节点    程序员
95 条回复
asdjgfr
2020-04-30 13:20:06 +08:00
我们公司用的 electron
nerocc
2020-04-30 14:05:36 +08:00
楼主不要乱听吧,这个不是那么简单的问题的。
一个现代的工程,除了用什么技术框架以外还要考虑很多别的东西的。技术的未来发展,跨平台的可能性,代码重复利用性,等等。
技术投资也是一个需要考虑的大问题,你这么问,意思应该就是需要现学了,那尽量不要去学一个马上就要被淘汰的技术。

如果项目是有可能需要跨平台的话,尽量考虑 Web + electron 。

qt 的话,尽量不推荐了。这个年代投资在 c++和 qt 上的技术,看不到未来有多大的回报。
winform 是一个非常老的技术了,wpf 也是。如果选择用.Net Framework 来写 winform 或者 wpf 的话,你要考虑清楚.Net Framework 已经过时淘汰了。现在使用的.Net 版本是.Net Core(从 1.0 迭代到现在的 3.1),开源并且可以跨平台,甚至 webassembly 。下个月 Build 大会.Net 5.0 就要开启预览版了(现在处在 preview-3)。.Net 5.0 是.Net Core 的下一个版本,也是.Net 的未来,所以去掉了 Core 这个名字,也跳过了本属于.Net Framework 的 4.x 的版本号,直接统一使用 5.0 的版本号。5.0 之后,所有的.Net 项目都会是同一个 SDK 和同一个 Runtime,代表着基本上学一套知识,能用来写任何( web,mobile,desktop,IoT,ML,micro service,gaming )种类的项目。

winform 和 wpf 也可以用.Net Core 来写,但是 winform 和 wpf 都是 win32 的框架,编译出来的程序,在未来的 Windows 10X 上面注定是在容器内运行的非原生应用。并且 winform 和 wpf 的 UI 全都不是硬件加速的,而且没有触摸优化,没有黑白模式的自动模板。

很多人这个时候就要开始推荐 UWP 了,用 C#和 XAML,是 Windows 10 和其分支里面唯一的原生应用模式 /框架。但是 UWP 也是只是适合个别应用的,虽然我也会极力推荐 UWP,但是绝不是不考虑适合程度的盲目推荐。

那到底还有什么选项呢?
其实 Windows 10 是有自己的原生 UI 库的,叫 WinUI,完全按照 Fluent Design System 的规范用 C++编写,UI 硬件加速。以前版本是集成在系统内的,仅供 UWP 使用。现在的 3.0 之前的版本,虽然也是仅供 UWP 使用,但是可以打包在应用层,以免不同版本的系统不兼容有的控件。在几天后的 Build 大会,3.0 会正式进入测试阶段,到时候任何应用都可以使用 WinUI 来编写 UI,逻辑层用什么语言 /框架都可以。所以,不着急的话,稍微等一等.Net 5.0 + WinUI 3.0 。 这两个放在一起会是一个非常强大的组合。现代化的语言,工具和 UI,至少让你可以放心的做技术投资。
kwklover
2020-04-30 14:42:10 +08:00
如果是自己想做个作品,那就什么容易上手就用那个吧,我现在用 winform,以后会考虑 WPF,一种技术可能不代表未来,但要淘汰也不是三五年内的事情了,考虑太多酒多虑了。你看看 asp 就知道了,上古时代的技术,淘汰十几年了还有人用呢。
mopian
2020-04-30 17:59:19 +08:00
跨平台:要性能用 Qt,要简单用 electron
纯 Windows:Qt or WPF
baobao1270
2020-04-30 18:32:19 +08:00
跨平台:不在乎性能 electron,在乎性能 Qt
纯 Windows:简单点 C#+WPF ;复杂点 duilib ;随便玩玩 UWP
sunbreak
2020-05-01 09:35:49 +08:00
要求不高的项目,可以考虑 Flutter

36 记智能手写本( Android/iOS/Web/Windows/macOS )
https://www.36notes.com/html/download/windows.html


我们用 Agora 做教学场景的远程白板,就包装了下开源出来了

Agora RTM
https://github.com/woodemi/Flutter-RTM-Desktop

Agora RTC
https://github.com/woodemi/Flutter-SDK-Desktop
sunbreak
2020-05-01 09:53:31 +08:00
另外建议先评估下是否需要开发客户端,现在大部分情况下 Web 足够用了。

要么特别复杂,要么场景独特(比如频繁唤起,后台常驻),要么有硬件交互( 36 记智能手写本)
其他情况能用 Web 就用 Web 吧,优势比 Native 多太多了
AloneGhost
2020-05-01 12:57:53 +08:00
一般用的 python 写的,界面就用 PyQt5 这个库
admirez
2020-05-01 22:32:17 +08:00
我一直用 delphi,简单,快速
Trinity888
2020-05-02 11:46:44 +08:00
@all 感谢大家给我提了这么多建议,我会考虑
Trinity888
2020-05-02 11:47:18 +08:00
@所有人 感谢大家给我提了这么多建议,我会考虑
secondwtq
2020-05-02 13:34:58 +08:00
说起 Delphi,我前段时间买了 Beyond Compare,然后好奇看了下这东西的依赖。发现 BC 是用 Pascal 写的,GUI 库应该是 FreePascal 的 Lazarus 提供的 LCL,BC Linux 版的 LCL 底层是 Qt 。

看起来还挺像样的,玩 Delphi 的有人接盘了……
lsj8924
2020-05-02 21:54:45 +08:00
听我的,MFC 很好用。
sunbreak
2020-05-18 01:06:49 +08:00
所以楼主最后选了什么?
Trinity888
2020-06-03 16:10:17 +08:00
@sunbreak 目前在需求阶段,待确认后再定。目前也是倾向使用 web 方式,但要看客户方的设备是否能支持。

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

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

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

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

© 2021 V2EX