WebView2控制元件應用詳解系列部落格
.NET混合開發解決方案2 WebView2與Edge瀏覽器的區別
.NET混合開發解決方案5 WebView2執行時與分發應用
.NET混合開發解決方案7 WinForm程式中通過NuGet管理器引用整合WebView2控制元件
.NET混合開發解決方案8 WinForm程式中通過設定固定版本執行時的BrowserExecutableFolder屬性整合WebView2控制元件
.NET混合開發解決方案9 WebView2控制元件的導航事件
.NET混合開發解決方案10 WebView2控制元件呼叫網頁JS方法
.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應用
.NET混合開發解決方案19 使用 DevTools 協議幫助程式
.NET混合開發解決方案20 使用 Microsoft Edge WebDriver 自動執行和測試 WebView2 應用
.NET混合開發解決方案21 WebView2 應用的開發最佳做法
在本系列的前面多篇文章中介紹了WebView2從入門到整合的詳細過程以及核心知識點。我為什麼會寫這麼多篇部落格來記錄WebView2的使用歷程,主要是在開發《建築工程施工圖BIM智慧審查系統》過程中,勘察設計單位端與審查專家端(C/S架構 WinForm)的程式整合了Web端BIMFace的功能。第一次使用了CefSharp元件,整合開發結束後,測試及使用過程中遇到了一些無法處理的bug及嚴重的效能問題。然後又測試對比了其他多種元件,具體情況可以閱讀我的部落格《.NET桌面程式整合Web網頁開發的十種解決方案》。最終選用了微軟新出品的基於Edge瀏覽器的WebView2元件,經過測試及大量客戶實際應用,可以直觀的感受到WebView2元件的功能穩定性與其他強大、便捷之處。
下面通過多方位的對比WebView2與CefSharp元件,讓大家有更直觀的感受,拋磚引玉,希望對大家有所幫助。
如有表述不當,請大家及時指出。兩者還有一些其他常用功能,這裡無法詳盡列出,大家可以在使用中再仔細對比。
其中第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處理的更好。