想看看微软的桌面原生应用开发,现在是什么样一个情况,
去官方文档看今天推荐的原生方案是 WinUI ,
试着用 visual studio2022 创建一个 WinUI 的空模板,
生成的 Release 版本文件,总体积竟然高达 100MB
感觉微软有点魔怔了,你既然都 100MB 了,
那跟 electron 那边有多少区别,
从前那个 迅雷 5 ,千千静听,体积不超过 10MB 的时代,同样多姿多彩。
今天的 UI 生态,更多的是在产能上的改进。
但用户体验上,不见得比以前进步到哪里。
十年前用户接触的就是那几个控件,
而 UI 技术栈迭代了 N 个版本的今天,
用户接触的还是那几个控件。按钮,输入框,图像。
如果真要开发 windows 上的桌面工具,我宁愿用 WinForm
![]() |
2
ODESZA 3 天前
现在的桌面应用臃肿还不是因为是个软件都给你整上直播、商城、短视频、新闻、安全管家,然后一堆弹窗。
|
![]() |
3
minami 3 天前 via Android
无内鬼,来点 winui3 笑话
https://github.com/microsoft/microsoft-ui-xaml/discussions/9417 |
4
busier 3 天前 via iPhone
用 c 或者 c++把,像 win32 内置应用那样
|
![]() |
5
xkeyC 3 天前 ![]() 可以试试 flutter ,用社区 winui 实现开发的软件比原生 winui3 还流畅,空包压缩后体积在 10M 以内。
https://pub.dev/packages/fluent_ui 。 再给个我自己项目的示例: https://github.com/StarCitizenToolBox/app: 游戏工具,30M 左右,微软店港区工具类最高评分 TOP2 https://github.com/xkeyC/fl_caption :22M 内置了 rust 实现的 AI 推理框架, |
![]() |
6
paopaosa 3 天前
现在 100M 已经不算大程序了吧。
你可以不把 .Net 运行库 打包进去的。 |
![]() |
7
ashong 3 天前
直接 chromium 60MB 左右 😄
|
![]() |
8
ysc3839 3 天前
你用 WinUI 2 就不大了
|
![]() |
9
NightFlame 3 天前
因为运行时占用了很大的空间
|
![]() |
10
FanyFull 3 天前
win32 + webview2 ,win32 本身打包 debug 版本出来占用 4mb 左右,运行时占用内存 2mb 不到,单个 webview 简单页面占用内存 20mb 不到。
|
![]() |
11
levelworm 3 天前 via Android
直接 Win32 API 岂不美哉?
|
![]() |
12
june4 3 天前
追求小的话不如上 rust/go + webview 这类方案
|
![]() |
13
cwcc 3 天前 ![]() 打包一个国际化的 icu 包就至少会给一个 lib 增加 20M ,所以软件大小只有在 Linux 上那种依赖地狱模式才能体现软件本身的体积。其他平台或者尤其是面向 C 端的程序,基本都是饱和式兼容,塞所有依赖进去。如果在 Linux 、Windows 上纯静态编译一个包含主流库的 C 语言程序,也至少要 40-50M 左右。
根本原因就是有的语言框架、功能的包袱太重了,比如在 linux 写个 C++的 hello world ,如果要静态编译 C++的话,一个 C++库就要 30MB 。有时候为了实现一个小功能要依赖一个完整的大库,再加上功能叠加,开发者根本不想梳理接近底层的这些依赖,能跑就行,反正现在硬盘不值钱。 |
![]() |
14
clocean 3 天前
我不太懂,我在 github 上 clone 了一个用 bilibili-api 下载 up 主动态里面所有图片的项目,然后用 Cursor 加了一个界面,打包出来 mac ARM 版本 100MB ~,python 项目,正常吗?
这就一个功能而已😓,还是说是 ai 写了很多没用的工作?问题是就 3 个 py 文件而已 |
![]() |
15
buf1024 3 天前 via Android
千千静听时代的 win32 api 现在还适用的,如果追求小,也可以用那个时候的技术的
|
16
mumbler 3 天前
1. 2M 的安装包,但界面很丑
2. 120M 的安装包,界面漂亮 99%用户都会选 2 ,你喜欢,你宁愿,重要吗 |
17
NonClockworkChen 3 天前
我看着我 1T 的硬盘,我都懒得思考你的顾虑
|
18
lumia1020 3 天前
到现在还在用 MFC 开发桌面小工具,方便分享。
|
![]() |
19
Cloud9527 3 天前
时代变了,纠结这些干啥,硬盘都多大了! 随便一个 app 安装包都一二百 mb,手游比端游安装包都大
|
20
shen13176101 2 天前
@clocean #14 拿起一瓶水喝了一口,见鬼,我明明只喝了 100ml ,为什么我要拿那么大的瓶子
|
![]() |
21
clocean 2 天前
@shen13176101 意思是 py 做 UI 就是会这样子吗?佬,直说啊,不懂啊
![]() |
22
caiqichang 2 天前
目前用 winform + webview2
|
![]() |
23
xueyuehua 2 天前
@caiqichang 大佬,请教个问题,就是 winform+webview2 怎么发送 http 请求,我之前尝试过在 html 页面的 js 里面发 ajax 请求,但是一直失败,好像发不出去。只能改成前端把参数传给 winform 后端,再由 winform 去发送。
这是 webview2 的限制,还是我 js 真的写的有问题 |
24
caiqichang 2 天前
|