
考虑开发一个原生的 Win 平台 App,一调研技术傻眼了 Winform WPF 已死 UWP 半死不活 Xamarin 即将绝响 俩新玩意 MAUI WinUI3,但好像都还是早期阶段 试问 Win 平台就没有一个可以和 SwiftUI,Jetpack 媲美的原生框架吗?
1 h82258652 2021-01-27 14:51:27 +08:00 WinUI,然而这玩意至少要等三月份 0.5 版出来才能用。 |
2 ysc3839 2021-01-27 15:03:45 +08:00 via Android Win32 平台长期以来都没有什么主推的 UI 框架的,MFC 曾经可能算,但是很多年前就停止加入新功能了。 Windows 内部有个 DirectUI 框架,可惜是私有的。 WPF 虽然是平台相关,但是跟语言捆死,我觉得在 Windows 这种较为开放的平台上算不上系统级的框架,只能说是语言级别的。(虽然 macOS 中 UI 框架也是跟 objc 和 Swift 捆死,但相比之下 macOS 没那么开放,连大部分系统 API 都是和 objc 捆死的。而 Windows 的 API 基本上都是可用 C 语言调用,某种意义上并不和语言绑定) 后面 UWP 出来之后 Windows 有了系统级的 Windows.Xaml.UI ,不过长期以来仅限于 UWP 应用使用,直到最近才开放给 Win32 。 |
3 q197 2021-01-27 15:10:50 +08:00 期待 winui3 maui 这些。其实现在大家希望的是跨平台,小文件,后端性能还行的解决方案。net5+maui 可能可以火。winui 也不错,uwp 的界面(更重要的是支持触摸手势、手柄等特殊输入),win32 的权限。 |
4 wanguorui123 2021-01-27 15:10:55 +08:00 Windows 平台的原生开发越来越小众了,我以前是搞 WinForm/WPF 的,现在能不用原生就不用 |
5 ysc3839 2021-01-27 15:15:07 +08:00 via Android 对于 Win32,还是以 POSIX 的角度去看待吧,基本上可以认为是类似 POSIX 这种系统底层功能,加上简单的界面功能,还是上个世纪的设计思路。和 21 世纪的 macOS, Android 这种“丰富 API”的系统没有可比性。 |
6 QBugHunter 2021-01-27 15:17:47 +08:00 《 windows 编程革命简史》 这篇文章可以参考下,合适微软一贯的作风 |
7 paradoxs 2021-01-27 15:18:22 +08:00 没推的了。。 用电脑的人越来越少了。 全部绝迹早晚的事 |
8 AndyAO 2021-01-27 15:19:19 +08:00 "WPF 已死"的结论是从哪里来的? |
10 dk7952638 OP @QBugHunter 这文章写的真好 |
11 mosfet 2021-01-27 15:24:36 +08:00 那就 Qt 好了 |
12 AndyAO 2021-01-27 15:26:56 +08:00 经常能看见这种问题,抛出比较惊人的说法,问问大家的意见是什么样子的,但是对于那个说法,本身却没有给出任何的证据。 知乎上经常会说「先问有没有」,我觉得这是说的很好的。 WPF 刚更新了,而且.NET5 也是支持 WPF 的,没有理由说已经死了。 等到已经不更新了,甚至官方直接明说放弃支持了,那个时候再说死了这种话,那样才对吧。 |
13 ysc3839 2021-01-27 15:39:24 +08:00 via Android @dk7952638 我只是业余玩玩……并不专业。 要我推荐的话,我大概会推荐 Qt 。 如果不考虑兼容旧系统的话 (至少 Win10 1903),可以试试 UWP 那个 XAML UI,但是相关资源应该会比 Qt 少很多。 愿意学 C# 那套的话选 WPF 也行,不过我自己还是偏好 C++。 |
14 Chenamy2017 2021-01-27 15:54:41 +08:00 原生的不指望,推荐 Qt 。 不过我现在用 Electron 。 |
16 SWALLOWW 2021-01-27 17:02:29 +08:00 wpf/winform 在线接活,我觉得没有死,windows 应用最快最全面就是这两个,wpfui 还多,好看,以后也支持,至少中国主流非互联网公司搞 windows 的有一大部分。 另外从支持的角度,不外乎 windows 系统,windwos 不外乎.net framework,只要这个不变,就算 wpf100 年不更新有关系吗? |
17 CallMeReznov 2021-01-27 17:06:48 +08:00 最近用 winform 写了几个小工具,突然想喊一句 winform 天下第一! 托就完事了! |
18 across 2021-01-27 17:12:28 +08:00 via iPhone 想问问这个调研怎么做的。和移动端 web 端问他们 windows 用啥 ui 框架? |
19 muraku 2021-01-27 18:35:00 +08:00 via iPhone 目前微软正式版的技术中最先进的应该就是 winui2+uwp 了 |
20 Tink PRO qt 吧 |
21 ylqhust 2021-01-27 19:31:47 +08:00 libcef+react |
22 fiveelementgid 2021-01-27 20:22:26 +08:00 via Android 四个字母的 MAUI ?记不太清了 现在的话 可以考虑一下 Blazor |
23 luchong 2021-01-27 20:38:26 +08:00 @fiveelementgid Blazor 这玩意貌似是针对 web 的 桌面端 WPF 挺香的 不过微软想主推 uwp 但 uwp 条件有点苛刻 win101803 版本以下的不支持 相对来说 WPF 目前算是比较成熟的解决方案了 MAUI 理论上是整合了 Xamarin |
24 Devin 2021-01-27 20:59:26 +08:00 via Android wpf 的创作者真是天才,如果不是移动端趋势,微软能继续打磨 wpf 就好了 |
26 12101111 2021-01-27 22:29:01 +08:00 @dk7952638 微软最新的 Windows10 X 系统原生 GUI 只有 UWP, 其他 UI 一律容器(轻量级虚拟机)里跑 |
27 danieladu 2021-01-27 22:39:46 +08:00 via Android electron |
28 cmdOptionKana 2021-01-27 23:45:00 +08:00 via Android 现在用 Mac 的人不少了,所以一般都考虑跨平台方案。 |
![]() | 29 mmdsun 2021-01-28 00:14:24 +08:00 via Android https://developer.microsoft.com/zh-cn/windows/get-started-windows-10/ Windows UI (WinUI) 库和 Project Reunion 是最新技术。 |
30 nerocc 2021-01-28 07:04:33 +08:00 via Android |
32 fiveelementgid 2021-01-28 17:27:36 +08:00 via Android @luchong Blazor 好像有 Web API pattern,差不多 |
33 nerocc 2021-01-28 22:27:09 +08:00 via Android @dk7952638 暂时不可以,Project Reunion 就是朝向这个目的走过去的,今年底只能做到 Win32 的 WinUI 3 。剩下的要等明年.NET 6 适配 UWP 。但是目前最成熟的 WinUI 技术都在 2.x 的 UWP 里。所以你要是不需要 Win32 权限,官方最推荐直接写 UWP 。如果你需要 Win32 权限,可以用 XAML Island 在 Win32 里面 host UWP 的 UI 。当然除此之外还有 React Native for Windows 。然后今年 Rust 应该也快要可以写 WinUI 的应用了。Rust for Windows 刚刚做到了能创建 COM,所以下一步就是可以跟 XAML 交互了。 |