.NET 9 Winform程序内嵌Webveiw2组件AOT发布与各windows系统版本兼容测试

一、什么是 .NET AOT

‌.NET AOT(Ahead-of-Time Compilation)是一种编译策略,其中.NET应用程序在运行之前就已经被完全编译为本地机器代码‌。
相比传统的JIT编译,AOT在启动速度和资源占用上有显著优势,尤其在运行大规模应用时表现突出‌。AOT编译后的代码是二进制,提高了反编译代码的难度,使得应用更安全;同时可以减少编译后的文件大小,节省IO空间,并减少内存的使用‌。

优点,简而言之就是:

1.启动速度快‌
2.‌减少运行时资源占用
3.‌提高程序安全性‌
4.‌减少依赖,体积更小

二、什么是 Webview2

WebView2是微软推出的一项技术,旨在为Windows应用程序提供强大的Web内容呈现能力‌。WebView2基于Chromium引擎,允许开发者在桌面应用中嵌入HTML、CSS和JavaScript等Web技术,从而构建丰富的用户界面。它使用Microsoft Edge作为渲染引擎,支持在WinForm、WPF、WinUI、Win32等本地应用程序中嵌入Web内容。

你可以把Webview2理解为一个乞丐版的Edge浏览器,同时可以对其用代码进行一系列的操作。
Webview2的主要功能特性有:

‌1.支持系统:Windows 7、8、10和11,提供一致的用户体验‌
‌2.代码共享‌:允许开发者在多个平台上重用代码,提高开发效率‌
3.本机功能‌:可以访问完整的本机API集,实现本地功能‌
‌4.快速应用‌:利用Web开发的优势,实现快速部署和迭代‌

三、为什么要 AOT + Webview2

试想一下:

1.你辛辛苦苦开发的应用,一上线就被反编译了,泄露了源码;
2.用户在下载你的应用时,包很大,用户又网速不好,下载需要的时间比较久;
3.用户好不容易下载好了,一打开应用,提示还需要安装.Net Framework/.Net Core运行时框架才能运行;
4.用户根据你提前写好的操作手册,找到了官网,下载好了相应运行时,一点击安装,提示当前系统不支持(比如:.Net Framework 4.8和.Net 8在不带Sp1的Win7上就安装失败);
5.这时候用户面临的选择:要么升级系统,承担因升级系统带来的风险、时间和精力消耗,要么不用你的应用;
6.由于你的应用万中挑一,光彩夺目,用户升级了系统,安装好了运行时,打开了你的软件,发现:启动速度慢、界面不好看、性能不如意……@#¥%,退钱!!!

以上任意一条都是让用户弃用你产品的理由,也都是让作为开发者的你崩溃的原因。

那么问题来了,现在我告诉你:有一个AOT + Webview2 的方案可以解决以上痛点,而且可以用你熟知的Web开发技能开发优美的桌面程序,且支持各个版本的Windows操作系统。你跟不跟?

四、.NET 9 AOT包在Win系统上的测试

高版本的.NET肯定比低版本的.NET的AOT能力更好,因此我们直接上.NET 9,开发好Demo后进行测试

由于64位系统是兼容32位应用程序的,所以我在打包的时候,打的是32位的包,进行的测试

1.Win 11 (通过)

在这里插入图片描述

2.Win 10 (通过)

在这里插入图片描述

3.Win8/8.1 (通过)

测试的系统是Win8.1

在这里插入图片描述

4.Win7 (通过)

测试的Win7系统版本不带Sp1补丁包,所以如果是Win7 Sp1版本,更是不在话下

在与Win7系统的测试中,32位系统和64位系统我都测试过,测试结果都是通过

在这里插入图片描述

5.XP (待测)

VM虚拟机里要不就是装不上XP系统,要不就是装上之后运行时卡顿,弃坑。后续找个实体机装上系统了再试,届时再把测试结果发上来。

五、总结

本文AOT发布后的demo已上传至资源,可下载体验。

从上面的情况看,至少在Win7及以上系统,AOT发布后是直接能运行的,且支持Webview2组件。
其实到这里,这个结果已经覆盖了绝大部分使用群体。
当然XP系统由于低占用的优势,现有存量也是蛮多的,尤其是在老机器上。

接下来,请用你熟知的技能,尽情Coding吧。

七、问题解答🔥

因为好多朋友在使用AOT和Webview2的时候,向我提出了很多问题,我整理一些主要的在这里,希望可以让大家对AOT和Webview2有个更清晰的认识

1.可以用Webview2中的JS调用后台C#代码?
可以

2.C#代码里能否使用BeginInvoke和Invoke增强性能?
可以

3.Native AOT并裁剪之后的程序体积有没有办法更小一点?
有,可以把体积降低30%-90%不等

4.Webview2适配Win7吗?
当然,本文就是枚举AOT+Webview2的系统兼容性的

5.Webview2的安装方式,常青引导和常青独立,我该选哪个?
个人建议【常青引导】,因为会根据你的系统版本,下载对应的安装组件,兼容性更好

六、鸣谢

感谢以下兄弟姐妹打赏本篇文章,排名不分先后:

昵称金额时间 ↓
时光28.002024.11.22
魏岩50.002024.11.29
Steven Song48.002024.12.12
千古18.802024.12.18
千古16.602024.12.18
千古50.002024.12.18
北海の樱花8.802024.12.29
许**28.002025.01.20
请叫我红领巾48.002025.02.17
浩秦50.002025.04.26

📢 要源码和解决方案,可以扫下方微信名片:吴所畏惧


都看到这里了,各位帅哥/美女,不管有用没用,都帮忙点个赞呗,❤️谢谢~


Author
吴所畏惧 2024.11.15
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吳所畏惧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值