NanUI:基于 .NET 平臺(tái)的開(kāi)源框架,通過(guò) HTML5、CSS3 和 JavaScript 開(kāi)發(fā) WinForm 應(yīng)用程序用戶(hù)界面
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
前言在 Windows 平臺(tái)開(kāi)發(fā)中,WinForm 憑借其穩(wěn)定性和易用性長(zhǎng)期占據(jù)重要地位。然而,傳統(tǒng) WinForm 的界面設(shè)計(jì)受限于原生控件庫(kù),難以實(shí)現(xiàn)現(xiàn)代化、動(dòng)態(tài)化的交互效果。 隨著 Web 技術(shù)的普及,開(kāi)發(fā)開(kāi)始探索將 HTML5、CSS3 和 JavaScript 引入桌面應(yīng)用開(kāi)發(fā)的可能性。NanUI 框架正是這一趨勢(shì)下的優(yōu)秀代表,它通過(guò) Chromium Embedded Framework (CEF) 將 Web 技術(shù)無(wú)縫集成到 WinForm 中,為大家提供全新的界面開(kāi)發(fā)范式。 項(xiàng)目介紹NanUI 是一個(gè)基于 .NET 平臺(tái)的開(kāi)源框架,其核心目標(biāo)是通過(guò) HTML5、CSS3 和 JavaScript 開(kāi)發(fā) WinForm 應(yīng)用程序的用戶(hù)界面。 該框架基于 Xilium.CefGlue(CEF 的 .NET 實(shí)現(xiàn)),可以使用熟悉的 Web 技術(shù)設(shè)計(jì)界面,同時(shí)通過(guò) C# 實(shí)現(xiàn)業(yè)務(wù)邏輯。這種"前端 Web 化、后端 .NET 化"的架構(gòu)模式,既保留了 WinForm 的穩(wěn)定性,又賦予了界面設(shè)計(jì)的靈活性。 項(xiàng)目功能NanUI 的核心功能可概括為三個(gè)方面: 1、Web 技術(shù)集成 通過(guò) Chromium 內(nèi)核渲染 HTML 頁(yè)面,支持所有現(xiàn)代 Web 標(biāo)準(zhǔn)(包括 CSS3 動(dòng)畫(huà)、WebGL 等)。 2、雙向通信機(jī)制 C# 與 JavaScript 的雙向調(diào)用接口,實(shí)現(xiàn)業(yè)務(wù)邏輯與界面交互的無(wú)縫銜接。 3、窗口樣式定制 支持完全自定義窗口邊框、標(biāo)題欄和菜單,可創(chuàng)建無(wú)邊框、透明化等特殊效果。 項(xiàng)目特點(diǎn)
支持 Windows 7 SP1 及以上系統(tǒng),覆蓋絕大多數(shù) Windows 用戶(hù)群體。
對(duì)于 CEF 體積敏感的場(chǎng)景,推薦基于 WebView2 的 WinFormedge 框架(僅 36MB 壓縮包)。
開(kāi)發(fā)可使用 React、Vue 等前端框架開(kāi)發(fā)界面,結(jié)合 Vite 等工具實(shí)現(xiàn)熱更新。
集成 SkiaSharp(2D 圖形庫(kù))、Vortice.Windows(DirectX 封裝)等第三方庫(kù),增強(qiáng)圖形處理能力。
完整的 NuGet 包管理,支持 Azure CDN 和華為云鏡像加速依賴(lài)下載。 項(xiàng)目技術(shù)NanUI 的技術(shù)棧呈現(xiàn)"分層架構(gòu)"特征: 底層依賴(lài) 基于 Xilium.CefGlue 實(shí)現(xiàn) Chromium 嵌入,通過(guò) P/Invoke 調(diào)用原生 CEF API。 核心層 Formium 基類(lèi)封裝窗口管理,通過(guò) ChromiumEnvironmentBuilder 配置 CEF 運(yùn)行時(shí)參數(shù)。 開(kāi)發(fā)層 支持 ASP.NET Core 風(fēng)格的依賴(lài)注入(IServiceCollection),可集成 Entity Framework 等后端服務(wù)。 調(diào)試層 內(nèi)置 DevTools 集成,支持遠(yuǎn)程調(diào)試前端代碼。 項(xiàng)目環(huán)境開(kāi)發(fā)環(huán)境
部署環(huán)境
這是一個(gè) 僅限 Windows 的框架,所以它目前不能在 Linux 或者 MacOS 環(huán)境運(yùn)行。 支持的最低 Windows 版本是 Windows 7 Service Pack 1,并且 Windows 7 不支持某些功能(例如 DirectComposition 離屏渲染)。 項(xiàng)目使用開(kāi)發(fā)流程如下: 1、創(chuàng)建 WinForm 項(xiàng)目并安裝 NanUI NuGet 包(NetDimension.NanUI + NetDimension.NanUI.Runtime)。 2、在 Program.cs 中初始化 NanUI 應(yīng)用上下文:
3、定義應(yīng)用啟動(dòng)類(lèi)(MyApp)配置主窗口:
4、創(chuàng)建 Formium 子類(lèi)(MyWindow)加載 Web 內(nèi)容:
項(xiàng)目效果無(wú)邊框窗體樣式透明窗體樣式系統(tǒng)窗體樣式在某企業(yè)資源管理系統(tǒng)重構(gòu)案例中,使用 NanUI 將傳統(tǒng) WinForm 界面升級(jí)為 Web 風(fēng)格后,用戶(hù)滿意度提升 40%,開(kāi)發(fā)周期縮短 30%。 項(xiàng)目源碼GitHub:https://github.com/NetDimension/NanUI Gitee:https://gitee.com/NetDimension/NanUI? 總結(jié)NanUI 重新定義了 WinForm 開(kāi)發(fā)的可能性邊界。對(duì)于需要兼顧穩(wěn)定性與創(chuàng)新性的企業(yè)應(yīng)用,它提供了"前端革命、后端堅(jiān)守"的理想平衡點(diǎn)。 雖然存在 CEF 體積較大、Windows 7 部分功能受限等缺點(diǎn),但其開(kāi)放的架構(gòu)和活躍的社區(qū)正在持續(xù)優(yōu)化這些問(wèn)題。隨著 .NET 8 和 WebView2 的普及,NanUI 生態(tài)有望進(jìn)一步擴(kuò)展,成為跨平臺(tái)桌面開(kāi)發(fā)的重要選項(xiàng)。 關(guān)鍵詞#NanUI、#WinForm、#HTML5、#CEF、#開(kāi)源框架、#WebView2、Xilium.CefGlue、NuGet、#依賴(lài)注入、#跨平臺(tái) 閱讀原文:點(diǎn)擊此處 該文章在 2025/8/5 16:25:22 編輯過(guò) |
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)... |