结果还是乱乱乱!!!!!
WPF 和 UWP 傻傻分不清楚,有时候说 UWP 可以用,有时候又说 UWP 不能用, 新的.Net Core 居然不是系统自带。 WinUI3 目前还属于不稳定的状态,windowing 的功能虽然画勾了但是模式依然很固定,api 依然很少。 xaml 技术也不是主流,只能在 Windows 平台用一用。
微软总是什么都想要...绝了绝了绝了,我就想开发个桌面的 app ,太烦了。
1
learningman 2022-01-30 21:28:16 +08:00 1
建议 electron
|
2
liuser666 OP @learningman 唯一的缺点就是太大了!!真的是唯一的缺点了!
|
3
yayiji 2022-01-30 21:30:28 +08:00 via Android
我放弃了,面向浏览器编程吧
|
4
ychost 2022-01-30 21:32:30 +08:00
WPF 挺好用的,不考虑靠平台的话
|
5
ysc3839 2022-01-30 21:36:01 +08:00 via Android
WPF 和 UWP 分不清是因为它们都用了 XAML 吧,搜索的时候都混在一起了。微软自己的文档是分得挺清楚的,UWP 的是在单独的分类下面。
.NET Core 大概是继承了 Windows 不自带非必要运行时的传统,类似的 VC++ 运行库也是不自带的。 WinUI 3 个人感觉还没到可用的地步,目前更建议用 XAML Island 。 |
6
xiaocaoge 2022-01-30 21:37:11 +08:00
Electron 比大更不能忍受的是启动速度慢
|
7
nieyujiang 2022-01-30 21:40:17 +08:00 via iPhone
考虑一下 qt 吧
|
8
Jabin 2022-01-30 21:41:13 +08:00 via Android
|
9
chashao 2022-01-30 21:45:35 +08:00
感觉 pyqt 也不错呀,我们很多工具都是它写的
|
10
Mintonmu 2022-01-30 21:46:14 +08:00
昨天 WinUI3 的第一次尝试就失败了,VS 2022 安装环境都能失败,还是滚回去用 Qt 吧
|
11
QingchuanZhang 2022-01-30 21:48:39 +08:00
.NET Core app 可以 self-contain 啊
|
12
ffire 2022-01-30 22:03:31 +08:00 via iPhone
不清楚楼主的需求。没看到人提,其实我想说用 win32 api 直接写也没那么麻烦,兼容性也是最好的,想做成单 exe“开箱即用”也可以。
|
13
makelove 2022-01-30 22:39:35 +08:00
没追求选 electron,有追求选 qt,中间选系统 webview
|
17
wzzzx 2022-01-30 23:51:44 +08:00
我们公司很多都是直接上 WPF 的
|
18
jim9606 2022-01-31 00:30:17 +08:00
看了下某 MVP 的试玩报告,感觉问题不是一般的大。(拿出你的爱与勇气与希望)
商店的 WinUI3 Controller Gallery 样例甚至部分控件都没实现。 https://www.cnblogs.com/dino623/p/Get-started-with-WinUI-3-for-desktop-apps.html https://www.cnblogs.com/dino623/p/test_winui3_preview3_performance.html 我也不知道是不是 UWP 的锅,我现在用的 Win11 预览版,只要用上 UWP 组件的(例如那个被骂上天的右键菜单),总会莫名其妙卡顿,搞不好还会传染给 WinUI3 应用。 |
19
agagega 2022-01-31 00:34:26 +08:00 via iPhone
直接 Win32 API 一把梭(
|
20
mingl0280 2022-01-31 06:57:55 +08:00 via Android
Windows 桌面 app:
传统路线——WinForm (省事,快),MFC (老古董) 现代路线——UWP ( Windows 应用商城 app ),WPF (普通桌面软件),二者均使用 XAML 作为界面描述。 以上二者建议使用.Net Framework 4.0 以上开发,新版 C#省事。 .Net core 不支持桌面 GUI 软件开发。 桌面跨平台:QT ,GTK ,两个都会让你做得想死(而且 QT 问题挺多的)。 基于浏览器的 GUI 就多了,Electron 什么的都还可以用,不过也别太指望跨平台了,复杂点的在 Linux 下能跑到五分钟崩一次都算是万幸了…… |
21
zk8802 2022-01-31 08:12:14 +08:00 via iPhone
PySide6
|
22
bankroft 2022-01-31 09:34:40 +08:00
简单一点的可以考虑 flutter
|
24
coolcfan 2022-01-31 10:21:08 +08:00
想试试超级 old school 的可以看下 Lazarus
|
25
thtznet 2022-01-31 12:27:59 +08:00
桌面用 Winform\WPF\WinUI 等任何技术, 反正只是一个框,然后框里嵌个 webview2 就可以了,剩下的就是 HTML5 的事情了,一点也不乱。
|
26
mcdull619 2022-01-31 13:47:44 +08:00
|
27
jsq2627 2022-01-31 14:44:42 +08:00
election / webview2 / sciter
|
28
shayuvpn0001 2022-01-31 15:21:35 +08:00
UWP 现在没有任何意义,所谓的跨平台跨来跨去现在只剩下自己的 Windows 和 xbox 之间跨了,除非你想上架 Microsoft Store ,否则 UWP 这种没有前途的东西只是白白浪费时间精力。
开发效率和兼容性综合起来最好的是 Winform ,没有什么花里胡哨的东西,该有的控件都有,多线程和底层支持也很完美,这么多年坑也踩得差不多了,Visual Studio 完美支持,兼容性你选.Net Framework 4.0 连 xp 都能跑,这样很多工控机都能照顾到。 稍微追求一点花里胡哨的就是 WPF ,后面的什么 UWP ,WinUI 根本不用看,一是框架本身后续微软的支持问题,二是论投入产出 Electron/QT 都比这些好,如果你是微软铁粉,当我(曾经的微软铁粉)上面这堆话没说。 |
29
uni 2022-01-31 18:32:02 +08:00
嫌 electron 太大,那就试试 tauri 吧
|
30
azur 2022-01-31 19:29:22 +08:00
mark ,准备研究下 winui3
|
31
orafy 2022-01-31 19:32:03 +08:00
这几个里面任意一个都可以
|
32
crayygy 2022-01-31 20:33:29 +08:00
QT 的 QML 感觉挺不错,但是也有一些坑(哪个平台哪个框架没点儿坑呢)
MS 好像有在弄 WinUI3 https://docs.microsoft.com/en-us/windows/apps/winui/winui3/ 之前了解过一些,但还没正式 release ,所以目前只能观望,有做 Windows UI 的需求还是 QT or Win32/WPF 吧 |
33
crayygy 2022-01-31 20:34:57 +08:00
BTW Flutter 也可以跨平台的,也许可以考虑一下
|
34
placeholder 2022-02-01 10:49:13 +08:00
仅 pc 端且仅考虑 win 平台的话且不需要太多高等级的 api 的话,其实可以看看微软的 uwp 文档,相对布局加默认控件加 csharp 一把梭就得了(手动狗头)
|
35
zeal7s 2022-02-01 10:59:50 +08:00
考虑一下 React Native Windows ,也是微软维护的
|
36
FrankHB 2022-02-01 13:53:18 +08:00
Electron 唯一的缺点显然不只是太大了。一些其它问题最终用户也能感知到。
区别无非是用户够多,坑能相互活埋,不太会有拎不清楚常规开发需求的维护者主动跳出来暴露智商,例如: https://github.com/dart-lang/language/issues/490 。 事实上,WPF 一样有类似的问题,但实现的优化质量好得多,以至于不少开发者自动忽略了。但是其它多数实现不大有这个余裕。 |
37
FrankHB 2022-02-01 14:21:31 +08:00 3
@shayuvpn0001 WinForms 永远干不翻最大的设计上的坑:依赖 HWND 。
所以一旦遇到控件这个层次上不能解决的问题(比如说,自己实现不能通过组合现有控件完全实现的新控件),问题就很可能陡然恶心起来:很可能用户就得把 Win32 UI 的花里胡哨的屎味咖喱过一遍,还比原生 Win32 破事更多(因为涉及互操作)。 Win32 的屎味咖喱也是为什么传统的搞 Win32 UI 的受不了纷纷跳出来搞新的一套所谓的 DirectUI 。 讲道理,原生的 HWND 其实确实是希望用户按传统意义的方式扩展的。这特别体现在任何一个像样的 Win32 控件都是桌面隐喻的所谓“窗口”( Windows 这个名字也指的是这个)上,而不是现在大多数最终用户理解的窗体和对话框。 但是 Win32 API 用 C 提供,不管对用户使用还是维护者扩展都有天坑(用户看不到 HWND 实现,微软也没可能让用户彻底看到),加上一些底层设计问题(如滥用低效的异步窗口消息、WndProc 的签名扩展性差甚至要用户折腾 thunk )和 Windows API 固有的更新周期导致跨操作系统版本体验碎片化(比如分层子窗口只在 Windows 8 后支持)导致这种方式最终是无药可救的。 在扩展 HWND 无望的情况下,Windowless 是自然选项了。如果把扩展 HWND 实现这样的权利看作是用户(桌面系统开发者)的自由,那么所有健全的 GUI 天生都是所谓的 DirectUI (所以这词虽然是微软开发者发明的,但也挺 low 的),而基于 HWND 封装的方案(包括 MFC 和 WinForms )只是残废版而已。 WinForms 这种咖喱味的屎在常规 Win32 用户的面前解决了旧的 Win32 C API 的一些屎味和随着操作系统版本分发导致的部分表面问题,但没办法解决根本问题(而且 .NET Framework 的分发周期早年一样挺欠揍的)。对原有 Win32 的就是只想搓出来个能看的 GUI 的最传统的用户,API 和工具易用性提升的开发效率已经足够可观,所以才能忍受;但对原本就受不了 HWND 又没法找到现成方案的用户再说,最终需要 hack Win32 的问题也是忍无可忍的。(所以现在还流行的就包括大部分倒腾工控机的,因为这些用户大多对干掉后者的屎味感知不大。) (题外话,任意不是靠模拟来实现的“原生”GUI 风格的解决方案,不管是什么平台的,一样很可能有这里的残废屎味;至少遇到 Windows 就很可能放纵了;其实还有少数比 Win32 还烂的,比如各种 CAD 之类的私有界面扩展 API ……不过不提也罢。) WPF 甩掉了 HWND 的包袱,才算是一个相对“完整”的 GUI 解决方案;而且相对 Win32 过渡到 WinForms ,工具的改进使过渡的体验更加平滑,这才是 WPF 的基本盘。至于 MVVM 和 XAML ,其实不像一些用户理解的那么适合传统桌面开发,既是加分项又是减分项(不过最传统的一些用户有些就只是待在 WinForms 觉得够用挺好,也就不会有什么有效反馈了)。当然,光说完成度,WPF 就够打翻 UWP 和现在的 WinUI 的了。 |
38
crackhopper 2022-02-01 15:23:14 +08:00
@fy qt 基本是 LGPL 。粗略的说,动态链接即可(我看 FSF 里也声明不限制 inheritence dependency)。不过严格理解 LGPL 协议的话,要提供用户能升级 Qt 的方案,这样就需要暴露一些代码(依赖 Qt 的)。稳妥起见,可以把业务数据层的代码做成动态库再在 Qt 里用;但我个人觉得大部分人不会考虑太多,动态链接就完了,也不会开源。目前来看风险不大。
|
41
m0yBPjyX3475syS4 2022-02-03 00:04:27 +08:00
直接用 mono 写介面?
|
42
asuraa 2022-02-03 13:20:28 +08:00
qt 把 别看了 你看着看着最后就去写 mfc 了
|
43
ikas 2022-02-03 17:03:36 +08:00
如果跨平台,微软技术栈就是 MAUI,不选微软技术栈,那也有很多
如果是只支持 windows 1.win app sdk (包含 windows ui3)是以后的主路,现在支持 ui3 不够完善,但是基础的都有了,api 还少吗?你要知道 win app sdk 对于 win32 与 winrt 几乎没有任何限制..win32 的资源还少么?? 2.uwp(包含 win ui2.7),现在就是成熟,即便 uwp/winrt 不支持,你现在也可以直接加入 win32 组件,使用 pipe 通信.. 主流 ui 技术是什么?xaml 只是表象,在 windows 平台使用 xaml 已经很容易了...现在哪有跨平台又好用的原生 ui? |
44
mmdsun 2022-02-04 22:07:32 +08:00 via iPhone
我也在看,Win 应用在下面技术中选吧,
其他的微软都不推荐了。前端有个 Electron 挺火的,但性能很差。https://docs.microsoft.com/zh-cn/windows/apps/get-started/?tabs=cpp-win32 |
45
forgottencoast 2022-02-13 20:34:34 +08:00
@mingl0280 .Net Core 怎么就不支持桌面 GUI 开发了?.Net Core 3 就支持 WinForm 和 WPF 了,只是不支持桌面 GUI 跨平台而已。
|
46
mingl0280 2022-02-14 13:48:40 +08:00 via Android
@forgottencoast 你去 VS 里面勾,.net core 5.0 desktop app ,你就会看见一个提示:部分.net framework 的功能不支持。
你要是觉得这也叫支持的话我无话可说 |
47
forgottencoast 2022-02-14 18:53:46 +08:00
|
48
liuser666 OP @forgottencoast .NET Core 的开发过程其实我还挺满意的,只是微软不内置.NET Core 导致安装包太大了,我只能用 Framework 开发。
|
49
forgottencoast 2022-02-15 00:14:45 +08:00
|