.NET桌面程序集成Web網(wǎng)頁開發(fā)的十種解決方案
當(dāng)前位置:點(diǎn)晴教程→知識管理交流
→『 技術(shù)文檔交流 』
B/S架構(gòu)的Web程序幾乎占據(jù)了應(yīng)用軟件的絕大多數(shù)市場,但是C/S架構(gòu)的WinForm、WPF客戶端程序依然具有很實(shí)用的價(jià)值,如設(shè)計(jì)類軟件 AutoCAD與Autodesk Revit、WPS、IT類的集成開發(fā)環(huán)境(數(shù)據(jù)庫、圖形處理軟件)、PC端的小工具等等,充分利用了客戶端電腦的資源綜合計(jì)算能力,處理性能更加優(yōu)秀。如果想在C/S架構(gòu)的客戶端程序中集成Web應(yīng)用,也只能借助Web網(wǎng)頁,然后將網(wǎng)頁集成到客戶端程序中,這樣就間接的達(dá)到了目的。下面是客戶端審圖系統(tǒng)中集成Web網(wǎng)頁的實(shí)際應(yīng)用案例
WinForm程序中集成網(wǎng)頁的基本原理就是通過一個包含類似瀏覽器功能的控件,將Web網(wǎng)頁載入并解析渲染出來。
介紹 WinForm、WPF 集成 Web 網(wǎng)頁的多種技術(shù)方案之前,先了解一下瀏覽器的內(nèi)核。 瀏覽器最重要或者說核心的部分是“Rendering Engine”,可大概譯為“渲染引擎”,不過我們一般習(xí)慣將之稱為“瀏覽器內(nèi)核”。負(fù)責(zé)對網(wǎng)頁語法的解釋(如標(biāo)準(zhǔn)通用標(biāo)記語言下的一個應(yīng)用HTML、JavaScript)并渲染(顯示)網(wǎng)頁。 所以,通常所謂的瀏覽器內(nèi)核也就是瀏覽器所采用的渲染引擎,渲染引擎決定了瀏覽器如何顯示網(wǎng)頁的內(nèi)容以及頁面的格式信息。不同的瀏覽器內(nèi)核對網(wǎng)頁編寫語法的解釋也有不同,因此同一網(wǎng)頁在不同的內(nèi)核的瀏覽器里的渲染(顯示)效果也可能不同,這也是網(wǎng)頁編寫者需要在不同內(nèi)核的瀏覽器中測試網(wǎng)頁顯示效果的原因。
內(nèi)核分類
內(nèi)核被包含在全世界最高的使用率的操作系統(tǒng)中,即為Windows操作系統(tǒng),所以我們又經(jīng)常把它稱之為IE內(nèi)核。 Trident內(nèi)核的常見瀏覽器有:
其中部分瀏覽器的新版本是“雙核”甚至是“多核”,其中一個內(nèi)核是Trident,然后再增加一個其他內(nèi)核。國內(nèi)的廠商一般把其他內(nèi)核叫做“高速瀏覽模式”,而Trident則是“兼容瀏覽模式”,用戶可以來回切換。
Gecko內(nèi)核常見的瀏覽器:Mozilla Firefox、Mozilla SeaMonkey、waterfox(Firefox的64位開源版)、Iceweasel、Epiphany(早期版本)、Flock(早期版本)、K-Meleon。
WebKit內(nèi)核常見的瀏覽器:Chrome、傲游瀏覽器3、Apple Safari (Win/Mac/iPhone/iPad)、Symbian手機(jī)瀏覽器、Android 默認(rèn)瀏覽器。
參考網(wǎng)站:https://liulanmi.com/labs/core.html
Blink是一個由Google和Opera Software開發(fā)的瀏覽器排版引擎,Google計(jì)劃將這個渲染引擎作為Chromium計(jì)劃的一部分,并且在2013年4月的時(shí)候公布了這一消息。這一渲染引擎是開源引擎WebKit中WebCore組件的一個分支,并且在Chrome(28及往后版本)、Opera(15及往后版本)和Yandex瀏覽器中使用。
瀏覽器內(nèi)核檢測
https://ie.icoa.cn 可檢測 PC 或手機(jī)瀏覽器內(nèi)核和操作系統(tǒng)類型,包括Google Chrome的WebKit、IE的Trident、ME的Edge、Firefox的Gecko/Servo,以及Windows/MacOS/Linux/iOS/Android等的判斷。
控件1:WebBrowser 微軟WinForm開發(fā)框架中老牌控件。
控件2:WebView WebView 使用原始的 Edge (Trident) 渲染引擎,是 Windows10 唯一的控件,功能、性能不理想。 控件3:Microsoft Edge WebView2【強(qiáng)烈推薦】 Microsoft Edge WebView2 控件允許在本機(jī)應(yīng)用中嵌入 web 技術(shù)(HTML、CSS 以及 JavaScript)。 WebView2 控件使用 Microsoft Edge(Chromium) 作為繪制引擎,以在本機(jī)應(yīng)用中顯示 web 內(nèi)容。 使用 WebView2,可以在本機(jī)應(yīng)用的不同部分嵌入 Web 代碼,或在單個 WebView 實(shí)例中生成所有本機(jī)應(yīng)用。
下圖是在Winform程序中使用WebView2組件加載我的博客園頁面的效果
控件4:CefSharp CefSharp是一種將功能齊全的符合標(biāo)準(zhǔn)的web瀏覽器嵌入C#或VB.NET應(yīng)用程序的簡單方法。CefSharp擁有WinForms和WPF應(yīng)用程序的瀏覽器控件,以及自動化項(xiàng)目的OffScreen版本。CefSharp基于Chromium Embedded Framework,這是Google Chrome的開源版本。
實(shí)際項(xiàng)目應(yīng)用效果如下圖(縮放比例為100%): 呈現(xiàn)的模型是三維BIM模型,里面用到了HTML5、CSS3、WebGL等新技術(shù)。
控件5:Miniblink Miniblink是一個追求極致小巧的瀏覽器內(nèi)核項(xiàng)目,全世界第三大流行的瀏覽器內(nèi)核控件。其基于chromium最新版內(nèi)核,去除了chromium所有多余的部件,只保留最基本的排版引擎blink。Miniblink保持了10M左右的極簡大小,是所有同類產(chǎn)品最小的體積,同時(shí)支持windows xp、npapi。 控件6:GeckoFX GeckoFX是skybound工作室開發(fā)的一個開源的用于方便將gecko引擎(最主要的瀏覽器是firefox)鏈接到.net 窗體應(yīng)用的一個組件。它是用C#寫成的,里面有大量的C#的注釋,geckofx是最完美的默認(rèn)的iE核心webbrowse控件的替代控件。 控件7:DotNetBrowser DotNetBrowser能嵌入一個基于Chromium的WPF或WinForms組件到你的.NET應(yīng)用中,用來顯示使用HTML5、CSS3、JavaScript、Silverlight等技術(shù)構(gòu)建的現(xiàn)代網(wǎng)頁。
控件8:EO.WebBrowser
控件9:Sciter.Forms Sciter.Forms是基于Sciter桌面引擎的.NET類庫,支持.net framework4.x、.NET CORE、.NET5及更高版本,支持Windows及Linux桌面系統(tǒng)。
官網(wǎng):https://sciter.com/ 開源地址:https://gitlab.com/c-smile/sciter-js-sdk
控件10:aardio
aardio專注于桌面軟件開發(fā),17年一直保持非?;钴S地更新,aardio 被多年用于生產(chǎn)項(xiàng)目實(shí)踐,久經(jīng)測試和錘煉。 aardio 小、輕、快,輕便利索,體積僅 6.5MB,學(xué)習(xí)和使用成本極低。aardio 雖然小,但提供了驚人數(shù)量的開源標(biāo)準(zhǔn)庫、擴(kuò)展庫 - 這些庫基本都是由純 aardio 代碼實(shí)現(xiàn),涉及到了桌面編程的方方面面。 aardio 可以嵌入非常多的瀏覽器控件,例如系統(tǒng)自帶的 WebBrowser、WebView 控件、 以及 WebView2、WebKit、Electron、CEF3、HTMLayout、Sciter...... 甚至可以直接調(diào)用系統(tǒng)安裝的 Chrome、Chromium Edge 等瀏覽器寫軟件界面。而且在網(wǎng)頁中調(diào)用本地接口、以及 aardio 與瀏覽器的交互極其方便,例如直接調(diào)用 Javascript 函數(shù),并且在 Javascript 中直接回調(diào) aardio 函數(shù),不需要任何復(fù)雜的封裝和中間件,你甚至可以在 Javascript 中直接調(diào)用 WINAPI 函數(shù)。
轉(zhuǎn)自https://www.cnblogs.com/SavionZhang/p/16194142.html 該文章在 2025/11/6 10:47:00 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |