敬财神 發表於 2022-6-28 10:39:00

.NET混合开发解决方案24 WebView2对比CefSharp的超强优势

<div id="comment_nav_orange"><strong>系列目录&nbsp;&nbsp;&nbsp;&nbsp; 【已更新最新开发文章,点击查看详细】</strong></div>
<blockquote>
<p><span> WebView2控件应用详解系列博客</span></p>
<p>.NET桌面程序集成Web网页开发的十种解决方案</p>
<p>.NET混合开发解决方案1 WebView2简介</p>
<p>.NET混合开发解决方案2 WebView2与Edge浏览器的区别</p>
<p>.NET混合开发解决方案3 WebView2的进程模型</p>
<p>.NET混合开发解决方案4 WebView2的线程模型</p>
<p>.NET混合开发解决方案5 WebView2运行时与分发应用</p>
<div>.NET混合开发解决方案6&nbsp;检测是否已安装合适的WebView2运行时&nbsp;</div>
<p>.NET混合开发解决方案7 WinForm程序中通过NuGet管理器引用集成WebView2控件</p>
<p>.NET混合开发解决方案8 WinForm程序中通过设置固定版本运行时的BrowserExecutableFolder属性集成WebView2控件</p>
<p>.NET混合开发解决方案9 WebView2控件的导航事件</p>
<p>.NET混合开发解决方案10 WebView2控件调用网页JS方法</p>
<p>.NET混合开发解决方案11 网页JS调用C#方法</p>
<p>.NET混合开发解决方案12 网页JS调用C#方法访问WinForm或WPF窗体</p>
<p>.NET混合开发解决方案13 自定义WebView2中的上下文菜单</p>
<p>.NET混合开发解决方案14 WebView2的基本身份验证</p>
<p><span>.NET混合开发解决方案15 WebView2控件集成到WinForm程序编译后的文件及结构说明</span></p>
<p>.NET混合开发解决方案16 管理WebView2的用户数据</p>
<p>.NET混合开发解决方案17 清除WebView2的缓存记录</p>
<p>.NET混合开发解决方案18 调试WebView2应用</p>
<ul>
<li>使用 WebView2 DevTools&nbsp;调试应用程序</li>
<li>使用&nbsp;Visual Studio Code&nbsp;调试应用程序</li>
<li>使用 Visual Studio&nbsp;调试WebView2应用</li>
</ul>
<p>.NET混合开发解决方案19 使用 DevTools 协议帮助程序&nbsp;</p>
<p>.NET混合开发解决方案20 使用 Microsoft Edge WebDriver 自动执行和测试 WebView2 应用</p>
<p>.NET混合开发解决方案21 WebView2 应用的开发最佳做法</p>
<p>.NET混合开发解决方案22 开发安全的 WebView2 应用</p>
<p>.NET混合开发解决方案23 将 WebView2 应用分发为单个可执行文件</p>
</blockquote>
<p><span style="font-family: &quot;Microsoft YaHei&quot;; font-size: 14px">  在本系列的前面多篇文章中介绍了WebView2从入门到集成的详细过程以及核心知识点。我为什么会写这么多篇博客来记录WebView2的使用历程,主要是在开发《建筑工程施工图BIM智能审查系统》过程中,勘察设计单位端与审查专家端(C/S架构 WinForm)的程序集成了Web端BIMFace的功能。BIMFACE在浏览器端渲染时使用了Html5、Css3、WebGL等技术,其中<span style="color: rgba(0, 0, 255, 1)">WebGL技术用到了客户端电脑的GPU,以增加图形处理与渲染性能与效率。</span></span></p>
<p><span style="font-family: &quot;Microsoft YaHei&quot;; font-size: 14px">  <span style="color: rgba(255, 0, 0, 1)">第一次使用了CefSharp组件,集成开发结束后,测试及使用过程中遇到了一些无法处理的bug及严重的性能问题</span>。然后又测试对比了其他多种组件,具体情况可以阅读我的博客《.NET桌面程序集成Web网页开发的十种解决方案》。最终选用了微软新出品的基于Edge浏览器的WebView2组件,经过测试及大量客户实际应用,可以直观的感受到WebView2组件的功能稳定性与其他强大、便捷之处。</span></p>
<p><span style="font-family: &quot;Microsoft YaHei&quot;; font-size: 14px"><img src="https://img2022.cnblogs.com/blog/142275/202206/142275-20220627221304919-1618354909.jpg" alt=""></span></p>
<p><span style="font-family: &quot;Microsoft YaHei&quot;; font-size: 14px">下面通过多方位的对比WebView2与CefSharp组件,让大家有更直观的感受,抛砖引玉,希望对大家有所帮助。</span></p>
<p><img src="https://img2022.cnblogs.com/blog/142275/202206/142275-20220628091326507-152184334.png" alt="" loading="lazy"></p>
<p><img src="https://img2022.cnblogs.com/blog/142275/202206/142275-20220628091429199-140110672.png" alt="" loading="lazy"></p>
<p><span style="font-family: &quot;Microsoft YaHei&quot;; font-size: 14px">如有表述不当,请大家及时指出。两者还有一些其他常用功能,这里无法详尽列出,大家可以在使用中再仔细对比。</span></p>
<blockquote>
<p><span>为减少开发人员的负担:微软已向 Windows 10 消费者提供 Microsoft Edge WebView2 运行时。 </span></p>
<p><span>从 Windows 11 开始,WebView2 运行时作为操作系统的一部分包含在内。</span></p>
<p><span>对于 Windows 10,我们建议开发人员随其应用程序一起分发和安装运行时。在过去的两年中,由于开发人员构建和分发 WebView2 应用程序,现在有超过 4 亿台设备拥有 WebView2 运行时。 可再发行运行时部署允许开发人员在尚未具备运行时的设备上使用 WebView2,但会增加开发成本,并且一直是 WebView2 开发人员的痛点。一旦我们完成了今天开始的 WebView2 运行时部署,开发人员可以更可靠地依赖于 Windows 10 或更高版本的消费者设备以及所有 Windows 11 设备上存在的 WebView2,从而使 WebView2 应用程序部署更加简单。</span></p>
<p><span>具体参考微软博客:https://blogs.windows.com/msedgedev/2022/06/27/delivering-the-microsoft-edge-webview2-runtime-to-windows-10-consumers/</span></p>
</blockquote>
<p><span style="font-family: &quot;Microsoft YaHei&quot;; font-size: 14px">其中第23项的现象如下</span></p>
<p><span style="font-family: &quot;Microsoft YaHei&quot;; font-size: 14px"><img src="https://img2022.cnblogs.com/blog/142275/202206/142275-20220628092400957-120513849.png" width="600" loading="lazy"></span></p>
<p><img src="https://img2022.cnblogs.com/blog/142275/202206/142275-20220628092716569-2111313114.png" width="1000" loading="lazy"></p>
<p><img src="https://img2022.cnblogs.com/blog/142275/202206/142275-20220628092901216-983923276.png" width="1000"></p>
<p>&nbsp;</p>
<p><span style="font-family: &quot;Microsoft YaHei&quot;; font-size: 14px">其中第24、25项的对比</span></p>
<ul>
<li><span style="font-family: &quot;Microsoft YaHei&quot;; font-size: 14px">使用CefSharp组件加载大体量BIM模型渲染失败的现象</span></li>
</ul>
<p><span style="font-family: &quot;Microsoft YaHei&quot;; font-size: 14px"><img src="https://img2022.cnblogs.com/blog/142275/202206/142275-20220628093654833-1787159489.gif" width="1000"></span></p>
<ul>
<li><span style="font-family: &quot;Microsoft YaHei&quot;; font-size: 14px">使用WebView2组件加载大体量BIM模型渲染成功的现象</span></li>
</ul>
<p><img src="https://img2022.cnblogs.com/blog/142275/202206/142275-20220628102927314-498131976.gif" width="1000"></p>
<p><span style="font-family: &quot;Microsoft YaHei&quot;; font-size: 14px; color: rgba(255, 0, 0, 1)">(1)CefSharp组件加载Web网页,BIMFACE轻量化后的模型加载到38%左右时,渲染失败,</span><span style="font-family: &quot;Microsoft YaHei&quot;; font-size: 14px"><span style="color: rgba(255, 0, 0, 1)">呈现黑色效果,客户端电脑的CPU跑满,内存消耗95%。在建筑工程施工图BIM智能审查应用场景中,BIM模型相对CAD、PDF来说,模型尺寸呈几何级增长,超大模型甚至达到10G,构件数量达到万级、三角片面数量达到百万甚至千万级。</span> <span style="color: rgba(0, 0, 255, 1)">同一台电脑,同一套程序,使用WebView2组件加载相同的大模型时一切正常,且CPU、内存均比使用CefSharp时使用率低。</span></span></p>
<p><span style="font-family: &quot;Microsoft YaHei&quot;; font-size: 14px; color: rgba(255, 0, 0, 1)">(2)CefSharp加载大体量模型时,当内存消耗过高时,导致客户端程序闪退。 <span style="color: rgba(0, 0, 255, 1)">WebView2组件不存在该问题。</span></span></p>
<p>&nbsp;</p>
<p><span style="font-family: &quot;Microsoft YaHei&quot;; font-size: 14px">  经过对比不难发现 Cefsharp 与 WebView2 组件的功能都非常丰富。客户端程序如果只是集成简单的网页应用,二者任选其一都可以,前提是客户端电脑的缩放比例必须是100%。如果是加载游戏、二维图纸、三维模型等复杂内容时,建议使用微软的WebView2组件,其性能与稳定性比CefSharp处理的更好。</span></p>
<div id="comment_nav_orange"><strong>系列目录&nbsp;&nbsp;&nbsp;&nbsp; 【已更新最新开发文章,点击查看详细】</strong></div>

</div>
<div id="MySignature" role="contentinfo">
    <div style="margin-bottom:15px;border: 1px solid #ececec; padding: 5px 10px; background: #DFFFA3; color: #555555; padding: 15px 20px 15px 30px;font-size: 14px; font-family: 'Microsoft Yahei'; clear: both;">
<p><strong>成在管理,败在经验;嬴在选择,输在不学!&nbsp; 贵在坚持!</strong></p>
<p>&nbsp;</p>

<p>&nbsp;<imgsrc="https://img2020.cnblogs.com/blog/142275/202105/142275-20210511151906789-1718967820.png"/><strong>个人作品</strong></p>
<p>&nbsp; &nbsp;</p>

<p>&nbsp; &nbsp;<b> BIMFace.SDK.NET</b></p>
<p>&nbsp; &nbsp; &nbsp;开源地址:https://gitee.com/NAlps/BIMFace.SDK</p>
<p>&nbsp; &nbsp; &nbsp;系列博客:https://www.cnblogs.com/SavionZhang/p/11424431.html</p>
<p>&nbsp; &nbsp; &nbsp;系列视频:https://www.cnblogs.com/SavionZhang/p/14258393.html</p>

<div style="margin-top:15px;margin-bottom:15px;border: 1px solid #ececec; background: #DFFFA3; color: #555555; padding: 15px 20px 15px 30px;font-size: 14px; font-family: 'Microsoft Yahei'; clear: both;">
<p>&nbsp;<imgsrc="https://img2020.cnblogs.com/blog/142275/202105/142275-20210511143255073-1133010989.png"/><strong>技术栈</strong></p>
<p>&nbsp; &nbsp;</p>
<p>&nbsp;1、AI、DeepSeek、MiniMax、通义千问</p>
<p>&nbsp;2、Visual Studio、.NET Core/.NET、MVC、Web API、RESTful API、gRPC、SignalR、Java、Python</p>
<p>&nbsp;3、jQuery、Vue.js、Bootstrap、ElementUI</p>
<p>&nbsp;4、数据库:分库分表、读写分离、SQLServer、MySQL、PostgreSQL、Redis、MongoDB、ElasticSearch、达梦DM、GaussDB、OpenGauss</p>
<p>&nbsp;5、架构:DDD、ABP、SpringBoot、jFinal</p>
<p>&nbsp;6、环境:跨平台、Windows、Linux</p>
<p>&nbsp;7、移动App:Android、IOS、HarmonyOS、微信小程序、钉钉、uni-app、MAUI</p>
<p>&nbsp;8、分布式、高并发、云原生、微服务、Docker、CI/CD、DevOps、K8S;Dapr、RabbitMQ、Kafka、RPC、Elasticsearch</p>
<p>&nbsp; &nbsp;</p>
<p><strong>欢迎关注作者头条号 张传宁IT讲堂,获取更多IT文章、视频等优质内容。</strong></p>
</div>

<div style="border: 1px solid #ececec; padding: 5px 10px; background: #4bacc6; color: #ffffff;font-size: 14px; font-family: 'Microsoft Yahei';">
    <p>出处:www.cnblogs.com/SavionZhang</p>
        <p>作者:张传宁 &nbsp;&nbsp;技术顾问、培训讲师、微软MCP、系统架构设计师、系统集成项目管理工程师、科技部创新工程师。</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;专注于企业级通用开发平台、工作流引擎、自动化项目(代码)生成器、SOA 、DDD、 云原生(Docker、微服务、DevOps、CI/CD);PDF、CAD、BIM 审图等研究与应用。</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;多次参与电子政务、图书教育、生产制造等企业级大型项目研发与管理工作。</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;熟悉中小企业软件开发过程:可行调研、需求分析、架构设计、编码测试、实施部署、项目管理。通过技术与管理帮助中小企业实现互联网转型升级全流程解决方案。</p>
    <p><span style="font-size: 14px; color: #ffffff; font-family: &quot;Microsoft YaHei&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></p>
    <hr style="border: 1px solid #eaeaea">
       <p><span style="font-size: 14px; color: #ffffff; font-family: &quot;Microsoft YaHei&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    </span></p><p>本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    </p>
        <p>如有问题,可以通过邮件<span style="font-size: 10pt">905442693@qq.com</span>联系。共同交流、互相学习。</p>
        <p>如果您觉得文章对您有帮助,请点击文章右下角【推荐】。您的鼓励是作者持续创作的最大动力!</p>
        </div>
</div><br><br>
来源:https://www.cnblogs.com/SavionZhang/p/16417101.html
頁: [1]
查看完整版本: .NET混合开发解决方案24 WebView2对比CefSharp的超强优势