想开发一个跨平台的 gui 应用,不会 c#和 dart ,应该选哪个入手?
1
abujj 2022-06-02 17:33:12 +08:00
JS
|
2
Mithril 2022-06-02 17:36:15 +08:00
历史早已证明,M$出的 UI 框架都别碰。
|
3
lxml 2022-06-02 18:01:04 +08:00 via Android
没有性能压力的时候,你可以永远相信 web+js 的方案
|
4
dfgxcvbcv 2022-06-02 19:07:04 +08:00
虽然赞同 #2 的观点,但尝试过 Flutter 开发出来的有复杂 UI 的应用太卡了,而且开发体验很差,有空打算尝试 MAUI
|
5
mainjzb 2022-06-02 19:09:07 +08:00
flutter 在 windows 端。还不坎重用。多窗口都没有。
|
6
Buges 2022-06-02 19:15:29 +08:00 via Android
maui 只能用 vs 开发,而 flutter 支持 vscode 。
但 flutter 移动优先,桌面体验不如 web 。 |
7
makelove 2022-06-02 20:32:52 +08:00
珍爱生命,远离 .net
|
8
wanguorui123 2022-06-02 20:48:33 +08:00
JS
|
9
shiganwuguo 2022-06-02 21:10:27 +08:00
maui 只支持高版本的 win10. win7 和低版本 win10 不支持 首先排除。 微软真是搞笑
|
10
meetcw 2022-06-02 21:36:36 +08:00
maui 不支持 linux (社区自己搞了一个,不知道哪一年才能用),目前想开发全平台应用还是算了吧。
flutter 在 desktop 下缺少很多功能,不过通过插件勉强也能用。 |
11
mooyo 2022-06-02 22:07:13 +08:00
珍爱生命,远离 .net
|
12
Yadomin 2022-06-02 22:16:13 +08:00 via Android
你永远不知道微软这些新花样什么时候会被砍
|
13
ysc3839 2022-06-03 02:16:19 +08:00 via Android 2
个人比较讨厌.NET ,准确说是讨厌.NET 上的 GUI 框架,因为个人认为.NET 的 GUI 框架破坏了 Windows GUI 的开发体验。
早年的操作系统基本是只提供一套很基础的 API ,比如 Unix ,Win32 虽然有提供 GUI 相关的,但也是比较简陋的。而进入二十一世纪以来,许多操作系统都开始提供更丰富的 API ,比如 macOS 的 Cocoa ,让开发者通过系统内置的 API 就能开发出美观、完善的应用。 但是微软在推出 Windows Vista 时并没有加入现代化的 API ,而是同时推出了基于.NET 的 WPF 。如果.NET 做得好那问题也不大,但是长期以来.NET 不能直接使用 Win32 API ,需要自己手写声明。不同版本的 Windows 系统中.NET 版本不一致,要兼容多个系统版本,要不然给旧系统安装新版本.NET ,要不然只能用旧版本.NET 来写程序,没法用新特性。再者,WPF 默认主题直到现在都没有和 Win32 的主题统一,Win8 、Win10 、Win11 更新主题后,WPF 那个都显得很难看。 为什么微软要这么搞?我认为,把 WPF 跟.NET 捆绑,是为了拉拢开发者去用.NET ,“你想要爽的开发体验,那就别用 Win32 了,来用.NET 吧”。同时当年因为微软对生态的把控力度不强,Windows 上有很多别的语言 /编译器 /框架,给 Windows 本身加上一套丰富的 API ,很可能被竞争对手拿去发扬光大,所以不内置到系统中,而是独立出来。Windows 内部有一套微软私有的 GUI 框架,资源管理器、任务管理器等许多系统应用都有使用,就是不开放出来。 另一方面,.NET 没法轻松地调用系统 API ,WPF 不使用系统主题,大概是为了跨平台考虑。这么做有好处,可以避免.NET 跟 Windows 捆得太死,比如 Swift 最初推出时基本是 macOS/iOS 专用语言,加上 macOS/iOS 的 API 很丰富,于是很多库就依赖系统 API ,后面 Swift 能跨平台了很难移植。但是很多.NET 用户只是想快速开发一个 Windows only 的应用,想使用一些比较底层、高级的系统 API ,想要有接近原生的 UI 风格,.NET 用起来就很麻烦。这就好比苹果发布 Swift ,写 GUI 只能用 SwiftUI ,不能使用以前 xib 那套,界面风格还和系统不一致,要调用 objc API 要自己声明一遍。 现在新的 WinUI 稍有起色,微软又试图用 MAUI 来分裂了。我认为如果 MAUI 搞起来了,势必会有一堆基于 MAUI 而不是 WinUI 的控件、主题等出现,久而久之就没人给 WinUI 写代码了,都去写 MAUI 的代码了,结果又是跟.NET 捆死。有的人可能会说,那微软自己搞的 React Native for Windows 不也类似吗?确实是这样,但是 React Native 是可以嵌入使用的,可以在现有的 C++或者 C#项目中嵌入一个 React Native 写的基于 WinUI 的界面,而 MAUI 据我所知没有这样的功能,即使要嵌入,.NET 运行时体积也十分庞大。而且 React Native 是用 js 写的,一些底层高性能的操作还是要依赖 C++,没有完全抢走生态的风险,如果换成 MAUI ,可能底层代码也用.NET 写了。 |
14
GiantHard 2022-06-04 01:58:17 +08:00 via Android
先用最熟悉的技术方案快速做出一版,管用啥技术都行。如果觉得值得投入精力继续做下去,再重构,甚至重写都是可以的
|