查看: 36|回覆: 0

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

[複製鏈接]

1

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2009-3-12
發表於 2022-6-28 10:39:00 | 顯示全部樓層 |閲讀模式
系列目录     【已更新最新开发文章,点击查看详细】

WebView2控件应用详解系列博客

.NET桌面程序集成Web网页开发的十种解决方案

.NET混合开发解决方案1 WebView2简介

.NET混合开发解决方案2 WebView2与Edge浏览器的区别

.NET混合开发解决方案3 WebView2的进程模型

.NET混合开发解决方案4 WebView2的线程模型

.NET混合开发解决方案5 WebView2运行时与分发应用

.NET混合开发解决方案6 检测是否已安装合适的WebView2运行时 

.NET混合开发解决方案7 WinForm程序中通过NuGet管理器引用集成WebView2控件

.NET混合开发解决方案8 WinForm程序中通过设置固定版本运行时的BrowserExecutableFolder属性集成WebView2控件

.NET混合开发解决方案9 WebView2控件的导航事件

.NET混合开发解决方案10 WebView2控件调用网页JS方法

.NET混合开发解决方案11 网页JS调用C#方法

.NET混合开发解决方案12 网页JS调用C#方法访问WinForm或WPF窗体

.NET混合开发解决方案13 自定义WebView2中的上下文菜单

.NET混合开发解决方案14 WebView2的基本身份验证

.NET混合开发解决方案15 WebView2控件集成到WinForm程序编译后的文件及结构说明

.NET混合开发解决方案16 管理WebView2的用户数据

.NET混合开发解决方案17 清除WebView2的缓存记录

.NET混合开发解决方案18 调试WebView2应用

  • 使用 WebView2 DevTools 调试应用程序
  • 使用 Visual Studio Code 调试应用程序
  • 使用 Visual Studio 调试WebView2应用

.NET混合开发解决方案19 使用 DevTools 协议帮助程序 

.NET混合开发解决方案20 使用 Microsoft Edge WebDriver 自动执行和测试 WebView2 应用

.NET混合开发解决方案21 WebView2 应用的开发最佳做法

.NET混合开发解决方案22 开发安全的 WebView2 应用

.NET混合开发解决方案23 将 WebView2 应用分发为单个可执行文件

  在本系列的前面多篇文章中介绍了WebView2从入门到集成的详细过程以及核心知识点。我为什么会写这么多篇博客来记录WebView2的使用历程,主要是在开发《建筑工程施工图BIM智能审查系统》过程中,勘察设计单位端与审查专家端(C/S架构 WinForm)的程序集成了Web端BIMFace的功能。BIMFACE在浏览器端渲染时使用了Html5、Css3、WebGL等技术,其中WebGL技术用到了客户端电脑的GPU,以增加图形处理与渲染性能与效率。

  第一次使用了CefSharp组件,集成开发结束后,测试及使用过程中遇到了一些无法处理的bug及严重的性能问题。然后又测试对比了其他多种组件,具体情况可以阅读我的博客《.NET桌面程序集成Web网页开发的十种解决方案》。最终选用了微软新出品的基于Edge浏览器的WebView2组件,经过测试及大量客户实际应用,可以直观的感受到WebView2组件的功能稳定性与其他强大、便捷之处。

下面通过多方位的对比WebView2与CefSharp组件,让大家有更直观的感受,抛砖引玉,希望对大家有所帮助。

如有表述不当,请大家及时指出。两者还有一些其他常用功能,这里无法详尽列出,大家可以在使用中再仔细对比。

为减少开发人员的负担:微软已向 Windows 10 消费者提供 Microsoft Edge WebView2 运行时。

从 Windows 11 开始,WebView2 运行时作为操作系统的一部分包含在内。

对于 Windows 10,我们建议开发人员随其应用程序一起分发和安装运行时。在过去的两年中,由于开发人员构建和分发 WebView2 应用程序,现在有超过 4 亿台设备拥有 WebView2 运行时。 可再发行运行时部署允许开发人员在尚未具备运行时的设备上使用 WebView2,但会增加开发成本,并且一直是 WebView2 开发人员的痛点。一旦我们完成了今天开始的 WebView2 运行时部署,开发人员可以更可靠地依赖于 Windows 10 或更高版本的消费者设备以及所有 Windows 11 设备上存在的 WebView2,从而使 WebView2 应用程序部署更加简单。

具体参考微软博客:https://blogs.windows.com/msedgedev/2022/06/27/delivering-the-microsoft-edge-webview2-runtime-to-windows-10-consumers/

其中第23项的现象如下

 

其中第24、25项的对比

  • 使用CefSharp组件加载大体量BIM模型渲染失败的现象

  • 使用WebView2组件加载大体量BIM模型渲染成功的现象

(1)CefSharp组件加载Web网页,BIMFACE轻量化后的模型加载到38%左右时,渲染失败,呈现黑色效果,客户端电脑的CPU跑满,内存消耗95%。在建筑工程施工图BIM智能审查应用场景中,BIM模型相对CAD、PDF来说,模型尺寸呈几何级增长,超大模型甚至达到10G,构件数量达到万级、三角片面数量达到百万甚至千万级。 同一台电脑,同一套程序,使用WebView2组件加载相同的大模型时一切正常,且CPU、内存均比使用CefSharp时使用率低。

(2)CefSharp加载大体量模型时,当内存消耗过高时,导致客户端程序闪退。 WebView2组件不存在该问题。

 

  经过对比不难发现 Cefsharp 与 WebView2 组件的功能都非常丰富。客户端程序如果只是集成简单的网页应用,二者任选其一都可以,前提是客户端电脑的缩放比例必须是100%。如果是加载游戏、二维图纸、三维模型等复杂内容时,建议使用微软的WebView2组件,其性能与稳定性比CefSharp处理的更好。

系列目录     【已更新最新开发文章,点击查看详细】
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部