NanUI:基于 .NET 平台的开源框架,通过 HTML5、CSS3 和 JavaScript 开发 WinForm 应用程序用户界面
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
前言在 Windows 平台开发中,WinForm 凭借其稳定性和易用性长期占据重要地位。然而,传统 WinForm 的界面设计受限于原生控件库,难以实现现代化、动态化的交互效果。 随着 Web 技术的普及,开发开始探索将 HTML5、CSS3 和 JavaScript 引入桌面应用开发的可能性。NanUI 框架正是这一趋势下的优秀代表,它通过 Chromium Embedded Framework (CEF) 将 Web 技术无缝集成到 WinForm 中,为大家提供全新的界面开发范式。 项目介绍NanUI 是一个基于 .NET 平台的开源框架,其核心目标是通过 HTML5、CSS3 和 JavaScript 开发 WinForm 应用程序的用户界面。 该框架基于 Xilium.CefGlue(CEF 的 .NET 实现),可以使用熟悉的 Web 技术设计界面,同时通过 C# 实现业务逻辑。这种"前端 Web 化、后端 .NET 化"的架构模式,既保留了 WinForm 的稳定性,又赋予了界面设计的灵活性。 项目功能NanUI 的核心功能可概括为三个方面: 1、Web 技术集成 通过 Chromium 内核渲染 HTML 页面,支持所有现代 Web 标准(包括 CSS3 动画、WebGL 等)。 2、双向通信机制 C# 与 JavaScript 的双向调用接口,实现业务逻辑与界面交互的无缝衔接。 3、窗口样式定制 支持完全自定义窗口边框、标题栏和菜单,可创建无边框、透明化等特殊效果。 项目特点
支持 Windows 7 SP1 及以上系统,覆盖绝大多数 Windows 用户群体。
对于 CEF 体积敏感的场景,推荐基于 WebView2 的 WinFormedge 框架(仅 36MB 压缩包)。
开发可使用 React、Vue 等前端框架开发界面,结合 Vite 等工具实现热更新。
集成 SkiaSharp(2D 图形库)、Vortice.Windows(DirectX 封装)等第三方库,增强图形处理能力。
完整的 NuGet 包管理,支持 Azure CDN 和华为云镜像加速依赖下载。 项目技术NanUI 的技术栈呈现"分层架构"特征: 底层依赖 基于 Xilium.CefGlue 实现 Chromium 嵌入,通过 P/Invoke 调用原生 CEF API。 核心层 Formium 基类封装窗口管理,通过 ChromiumEnvironmentBuilder 配置 CEF 运行时参数。 开发层 支持 ASP.NET Core 风格的依赖注入(IServiceCollection),可集成 Entity Framework 等后端服务。 调试层 内置 DevTools 集成,支持远程调试前端代码。 项目环境开发环境
部署环境
这是一个 仅限 Windows 的框架,所以它目前不能在 Linux 或者 MacOS 环境运行。 支持的最低 Windows 版本是 Windows 7 Service Pack 1,并且 Windows 7 不支持某些功能(例如 DirectComposition 离屏渲染)。 项目使用开发流程如下: 1、创建 WinForm 项目并安装 NanUI NuGet 包(NetDimension.NanUI + NetDimension.NanUI.Runtime)。 2、在 Program.cs 中初始化 NanUI 应用上下文:
3、定义应用启动类(MyApp)配置主窗口:
4、创建 Formium 子类(MyWindow)加载 Web 内容:
项目效果无边框窗体样式透明窗体样式系统窗体样式在某企业资源管理系统重构案例中,使用 NanUI 将传统 WinForm 界面升级为 Web 风格后,用户满意度提升 40%,开发周期缩短 30%。 项目源码GitHub:https://github.com/NetDimension/NanUI Gitee:https://gitee.com/NetDimension/NanUI 总结NanUI 重新定义了 WinForm 开发的可能性边界。对于需要兼顾稳定性与创新性的企业应用,它提供了"前端革命、后端坚守"的理想平衡点。 虽然存在 CEF 体积较大、Windows 7 部分功能受限等缺点,但其开放的架构和活跃的社区正在持续优化这些问题。随着 .NET 8 和 WebView2 的普及,NanUI 生态有望进一步扩展,成为跨平台桌面开发的重要选项。 关键词#NanUI、#WinForm、#HTML5、#CEF、#开源框架、#WebView2、Xilium.CefGlue、NuGet、#依赖注入、#跨平台 阅读原文:点击此处 该文章在 2025/8/5 16:25:22 编辑过 |
关键字查询
相关文章
正在查询... |