请教个关于桌面应用开发的问题

2022-03-31 09:30:43 +08:00
 zxCoder

现在 windows 原生桌面开发能做到 win11 类似的界面吗?需要自己写还是说原生开发就自带了那些组件?

3955 次点击
所在节点    问与答
38 条回复
3dwelcome
2022-03-31 09:36:48 +08:00
现在 windows 原生基本上很少用 C++了,全部都是 C#。

B 站有教程,好像写到后面,组件堆砌还是很复杂。除非你程序就那么几个按钮。

试一下 electron 吧,那是真的省心省力。
ysc3839
2022-03-31 09:49:47 +08:00
如果你说的是 Fluent Design 那种,那可以做到,直接用 Xaml Island + WinUI 2 就行,组件都是 XAML 和 WinUI 提供的。
zxCoder
2022-03-31 10:03:07 +08:00
@3dwelcome js 水平也是半桶水...,electron 试过好像配置挺复杂的,而且打包出来很大
nicevar
2022-03-31 10:17:26 +08:00
原生的运行组件应该有版本要求的,win10 某个版本以上,如果做的应用不是很重要,可以用 Electron ,打出来的包确实比较大,前阵子给客户做了一个打包出来 400 多 M ,用 Qt 的话要不了 50M 。
3dwelcome
2022-03-31 10:18:42 +08:00
@zxCoder 个人非常不倾向于原生直接开发。

原因是现在 GUI 跨平台解决方案,比起以前成熟不少,选择也多。比如 QT 之类。

就算原生开发,组件复杂后代码量也不少。普通人 JS 写个 VUE 组件,再怎么也比 C#里写要快。
zxCoder
2022-03-31 10:28:17 +08:00
@3dwelcome 有道理,先用 electron 试试
zxCoder
2022-03-31 11:25:17 +08:00
@3dwelcome 试了不到一个小时,就卡住了 hhh ,按官网的打包教程就一直报错,搜到了 github 和 statckoverflow 上好几个为解决的 issue (
shawnsh
2022-03-31 11:33:15 +08:00
@3dwelcome 原生不原生开发是看具体项目的,别以为跨平台是万能的,里面坑可不少。项目灵活度还是应该考虑的,跨平台灵活度太低,适应范围有限
Chad0000
2022-03-31 11:38:16 +08:00
能固定 Windows 这个环境的话,直接就上 WPF 了。
ysc3839
2022-03-31 12:01:14 +08:00
怀疑是 X-Y Problem coolshell.cn/articles/10804.html
建议楼主说一下原始需求
3dwelcome
2022-03-31 12:03:49 +08:00
@zxCoder 我就把 electron 当成一个 webview 来用的,相对来说都比较顺利。
singerll
2022-03-31 12:04:58 +08:00
electron 是真的垃圾,总有一种卡顿的感觉。这种桌面应用不到万不得已我从来不装。

别跟我说是你不会优化,你看 vscode 都多好啥的,这就跟我说高中学历不行你非要拿比尔盖兹给我举例子一样,没有意义。
maichael
2022-03-31 12:18:58 +08:00
没有跨平台需求强上 Electron 就是给自己找麻烦。
3dwelcome
2022-03-31 12:24:07 +08:00
@singerll electron 不垃圾的,就是一个 chrome 浏览器内核+nodejs 的合体。

不卡,可以用 wasm 替代 js 来运行逻辑。
不顿,可以用 websocket 长连接替代传统 http restapi 。

要说唯一的缺点,那可能确实体积有点大。
zxCoder
2022-03-31 12:39:53 +08:00
@ysc3839 啊 原始需求就是要做一个 windows 桌面应用(也会考虑跨平台,但不是最急需的),然后很喜欢 win11 的 ui 风格,就不知道现在 windows 的原生开发是不是直接用自带的组件就是那个样子。

如果需要自己写样式或者用第三方 ui 库就有点麻烦了,不如前端的生态丰富
ysc3839
2022-03-31 12:42:07 +08:00
@zxCoder 一定要原生(WinUI)且跨平台的话大概只能使用 React Native 。建议考虑清楚跨平台重要还是原生风格重要。
leyviw
2022-03-31 12:47:44 +08:00
Electron 或 cef
singerll
2022-03-31 13:07:54 +08:00
@3dwelcome 我并没有说 electron 技术垃圾,我说的是用户体验垃圾,注意是用户体验不是开发者体验。

什么 wasm 、websocket 的再快,也需要网络加载时间,跟原生 ui 加载根本不一个等级。

况且他用啥技术我根本不关心,我是以一个普通用户的角度来评价 electron 的桌面应用,目前为止用的 electron 写的应用,根本就没见过一个不卡顿的,就连优化最好的 vscode ,天生都有一种卡顿的感觉。

至于体积大,确实是缺点,但肯定不是唯一的缺点。
MakHoCheung
2022-03-31 13:26:16 +08:00
@zxCoder 现在最新的不是 Windows SDK + WinUI3 吗,还有即将到来的可以跨平台的 MAUI ,想到用 Electron 为啥不用 Compose for Desktop
zxCoder
2022-03-31 13:27:20 +08:00
@3dwelcome 换了个第三方的打包工具总算成了,弄了个 helloworld ,安装包 120+M ,安装完 350+M 哈哈哈确实够大的

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

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

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

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

© 2021 V2EX