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

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

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

3984 次点击
所在节点    问与答
38 条回复
icyalala
2022-03-31 13:32:10 +08:00
原生现在无非就是 WPF 、WinForm 、QT ,你想要的基础组件都有。
Electron 的问题是:它只对开发者友好,但不是所有开发者都能达到 VSCode 团队的水平,因此它对用户不友好。
wzwb
2022-03-31 14:03:03 +08:00
可以试试 Tauri ,比 Electron 小很多
woxihejinghao
2022-03-31 14:07:06 +08:00
建议了这么多。为啥没有建议 flutter 的
lower
2022-03-31 14:12:23 +08:00
webview2
zxCoder
2022-03-31 14:24:21 +08:00
@wzwb 这个感觉不错,就是居然是 rust... 难度++。
pengtdyd
2022-03-31 15:30:12 +08:00
@woxihejinghao 现在用 flutter desktop 绝对是个天坑!!!我觉的还是 electron 更好,生态好!至于原生的开发框架,我不是很推荐,因为时代在发展,跟随主流才能更好的发展。
ysc3839
2022-03-31 16:02:38 +08:00
Win11 并没有使用 WPF 来开发界面,WPF 默认的界面风格也和 Win11 的原生风格相差很大,你需要使用第三方的组件库才能得到类似 Win11 的风格。
至于那堆名词,WinUI 和 C# 或 .NET 没有关系,其他都和 C# 或 .NET 有关系。
ITACHIJAMES
2022-03-31 19:35:48 +08:00
Eletron 水平一般的真的很难做好,卡,臃肿。
Win 原生开发推荐 WPF ; Blazor 和 Eletron 有点像,可以看作是 Web ; MAUI 是最新的架构,推荐,但可能有坑; Xamrian 已经被代替了不用管; Avalonia 是一个还不错的框架。写 C#你会享受的。
FrankAdler
2022-03-31 20:52:54 +08:00
win11 才能用 winui3 ,暂时不用考虑,主用 winform 或者 wpf 就行了,考虑到新手上手难度建议先用 winform ,我前段时间从零自学写个小工具,半天就写好了,wpf 感觉稍微难点
zenghx
2022-03-31 22:37:58 +08:00
那天看到 flutter for Windows 的宣传视频,貌似可以
zxCoder
2022-03-31 22:46:52 +08:00
话说…有人推荐 pyqt 吗 这跟上面这些框架是一个类型的东西吗?
bequt
2022-03-31 23:09:58 +08:00
有谁还记得那个 VB6.0
kingfalse
2022-04-01 07:49:40 +08:00
Java swt 。。。
Vaspike
2022-04-01 08:39:34 +08:00
直接 Compose-desktop
sunbreak
2022-04-01 10:23:03 +08:00
楼主最好先说下自己的情况,比如做过什么项目,擅长什么语言和框架

- 擅长 C++,推荐 Qt ,不推荐 Win 的 C++直接开发

- 擅长 C#,推荐 WinUI 2/3 的 UI 层,用 WindowsAppSdk 接口层(兼容 WinForm 和 WPF 框架)

- 擅长 Java/Kotlin ,推荐 Compose for Desktop ,JetBrains 出品有保障

- 擅长 TS/JS ,推荐 Electron 或者 ReactNative-Windows ,后者是微软官方支持,其实 Win11 的 Settings 是用 RN-Win 写的

- 其他,推荐 Flutter Windows ,我估计你也不是要开发很复杂的应用(否则就得研究深入研究前面某一个框架)

- 不推荐 Tauri ,如果是纯 Rust 团队还行,其他情况 Rust 做 UI 对个人学习压力和画组件速度都不占优

- 如果熟悉 Go ,甚至可以试试 GoVCL

利益相关:主要做移动跨平台架构,但也对接过不少桌面需求
zxCoder
2022-04-01 11:07:45 +08:00
@sunbreak 情况就是又菜要求还高.... 是个逻辑还比较复杂的应用,想弄好看点,但是也想要性能稍微好点。 自己的话没有特别擅长的语言,反正语法都差不多能写,主要就是一些配置会比较复杂难懂一些。考虑到逻辑需求比较多,所以排除了 c++ rust go

剩下的 winform 试了下,主要就是一个问题,太丑哈哈,compose for desktop ,也试了下,感觉相比 c#没什么优势,electron 是包太大,而且也蛮复杂的,跟写 web 也不太一样。
sunbreak
2022-04-01 15:04:45 +08:00
@zxCoder

这样看以下是比较靠谱的选择了,都是官方支持,UI 上有保障

- ReactNative-Windows
- WinUI 3 + WindowsAppSdk
youyouyou0123456
2022-04-01 16:13:18 +08:00
会啥用啥。nanui 看了一眼似乎就是 winform 嵌套 cef ,就是在 winform 中放了个浏览器。
我 wpf 开发的项目比较多,我一般都是维护自己一套控件库,不过如果你想直接用别人的控件库 https://github.com/Carlos487/awesome-wpf 可以在这个 github 里面找找,还是有很多开箱即用控件库的。
对 UI 和开发效率有要求,就不要用 winform ,qt 。
如果项目复杂且对性能,文件大小有要求,就不要用 web 相关的技术做桌面端。
如果想跨平台,就用 web 相关技术做桌面端。
如果开发时间有要求,就要需要用成熟的技术,ReactNative-Windows 、WinUI 3 、Blazor 等,有的技术很新,有的很少人用,中文文档基本没有,英文文档也不够全,遇到难题估计要靠自己踩坑。

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

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

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

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

© 2021 V2EX