百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Net/Net Core的界面框架NanUI发布新版本啦

ccwgpt 2024-10-12 02:47 22 浏览 0 评论

发布前感悟

NanUI 自从上一次更新 NanUI 0.7 已经过去大半年,B站和头条的教学视频也只制作到了第二集。

有朋友悄悄问我是不是发生什么事故我删库跑路了所以那么长时间不更新项目不发布教程,当然,这只是玩笑而已。

实际情况是 NanUI 0.7 基于 ChormiumFX 项目进行开发,刚刚发布 0.7 之后我就发现了框架自生存在有重大 BUG 而且是我没有能力处理的那种。

本想联系作者深入探讨下这个 BUG,谁知道 ChromiumFX 的项目似乎突然中止了,截至目前位置项目首页任然是走失状态。

因此我不得不考虑放弃 ChromiumFX 换一种内核,在甄选了 CefSharp 和 CefGlue 之后,还是觉得使用更接近 CEF 原生的 CefGlue 作为底层重置 NanUI 项目,并提升版本号到 0.8,这也是第一次在大项目版本几乎没有小版本更新的情况下直接升级大版本。

新版本的 NanUI 开发了大半年,踩了 CefGlue 各种坑,期间我太太还突发了非常不幸于的疾病,后来我也非常幸体验了人生第一次住院经历。还好,老天留下了我俩的狗命,估计将来还另做他用吧,所以也希望各位及家人身体健康,经历了这次浩劫,突然觉得人只要能好好的,健健康康活着就行,其他的都不重要。

废话就这么多吧,下面进入正题。

NanUI 简介

NanUI 界面组件是一个开放源代码的 .NET / .NET Core 窗体应用程序(WinForms)界面组件。她适用于希望使用 HTML5/CSS3 等前端技术来构建 Windows 窗体应用程序用户界面的 .NET/.NET Core 开发人员。

NanUI 的渲染引擎 WinFormium 基于谷歌可嵌入的浏览器框架 Chromium Embedded Framework,因此用户可以使用各种前端技术 HTML5/CSS3/JavaScript 和框架 React/Vue/Angular/Blazor 设计和开发.NET 桌面应用程序的用户界面。

同时,WinFormium 特有的 JavaScript Bridge 可以方便简洁地实现浏览器端与 .NET 之间的通信和数据交换。

使用 NanUI 界面框架将为传统的 WinForm 应用程序的用户界面设计和开发工作带来无限种可能!

如果您想了解更多关于 NanUI 项目的信息,请移步NanUI 项目主页。

0.8 新增内容

内核替换

内核从 ChromiumFX 替换为 CefGlue,Chromim 的版本提升到了80.0.3987.163

承载窗体

重写承载窗体底层删除了没必要的 API 仅保留和框架有关的功能,并且拓展了无边框窗体的能力,新增了两种阴影效果以及一种边框效果。

窗体类型

原生样式

系统原生窗体样式与传统的 WinForm 应用程序界面一致,拥有系统样式的标题栏、边框和系统命令区域,类似在传统的 Form 控件上拖入 WebBrowser 控件并设置 Dock 属性为 Fill 时的样子一致。

无边框窗体

在无边框窗体样式中系统原生的标题栏和边框被隐藏,可以使用整个窗体区域来绘制您的应用程序界面。

Kiosk 模式

Kiosk 样式的窗体普遍用于需要全屏展示窗体内容的场景,例如:工控上位机界面、查询机界面、数据大屏幕等。

异形窗口

使用 Layered 样式允许创建异形、半透明窗体。类似各种大师、各种管家提供的加速球那种效果。

亚克力特效窗体

亚克力特效是 Windows 10 创意者更新版之后提供的新功能,它允许窗体的透明或半透明区域与桌面元素进行模糊混合,实现特殊的磨砂亚克力效果。与 Layered 样式相同,根据网页中透明或者半透明区域的设置,将实现特定效果的磨砂玻璃效果。

窗体特效

阴影效果

关闭

泛光

阴影

投影

边框效果

无边框

普通边框

圆角边框

以上示例均已提交至 GitHub 代码仓库,请异步https://github.com/XuanchenLin/NanUI-0.8-Examples获取各个示例的源码。

离屏渲染支持

引入了 Direct2D 技术,CEF 的离屏渲染得以实现,由此添加了两种新的承载窗体样式:异形样式窗体亚克力特效窗体

资源处理器

新增了一种资源处理器,能够从 ZIP 文件里加载资源。

其他

  • 对一些 API 的写法进行了优化。
  • 优化了自定义资源控制器的抽象类,使用更简单了。
  • 优化了 JavaScript 扩展的抽象类,同上,麻麻在也不用担心我不会注册 .NET 对象到 JavaScript 的代码了。

使用 NanUI 0.8 创建一个应用程序

引用 NanUI 包

使用 Visual Studio 的NuGet包管理器或者程序包管理器控制台来获取 NanUI 的程序集,根据项目的类型(.NET Framework 或者 .NET Core)将自动安装合适的程序集。

PM> Install-Package NetDimension.NanUI

安装 NanUI 运行环境包。这个包主要包含了与CEF框架有关的文件,根据您项目架构(AnyCPU/x86/x64)的具体情况,此 NuGet 包将在编译时拷贝与架构对应的运行时文件到项目的输出目录中。

PM>  Install-Package NetDimension.NanUI.Runtime

如果您在国内 NuGet 访问较慢无法下载NetDimension.NanUI.Runtime包时,请您加QQ群521854872在群文件中下载NuGet 离线包 。

编码部分

在主窗体加载前初始化 NanUI 运行环境。

using NetDimension.NanUI;

class Program
{
  static void Main()
  {
    // ...
    WinFormium.CreateRuntimeBuilder(env => {

      env.CustomCefSettings(settings =>
      {
        // 在此处设置 CEF 的相关参数
      });

      env.CustomCefCommandLineArguments(commandLine =>
      {
        // 在此处指定 CEF 命令行参数
      });

    }, app =>
    {
        // 指定启动窗体
        app.UseMainWindow(context => new MainWindow());
    })
    .Build()
    .Run();
  }
}

编写窗体代码

using NetDimension.NanUI;
using NetDimension.NanUI.HostWindow;

class MainWindow : Formium
{
  // 设置窗体样式类型
  public override HostWindowType WindowType => HostWindowType.System;
  // 指定启动 Url
  public override string StartUrl => "https://www.formium.net";

  public MainWindow()
  {
    // 在此处设置窗口样式
    Size = new System.Drawing.Size(1024, 768);
  }

  protected override void OnReady()
  {
    // 在此处进行浏览器相关操作

    //ShowDevTools();
    //ExecuteJavaScript("alert('Hello NanUI')");
  }
}

没有复杂的步骤!只需简单操作 NanUI 项目就可以顺利运行。

项目相关

仓库

以上涵盖了本次更新的大概内容,如果想了解更多信息,请移步 NanUI 项目仓库首页。

  • https://github.com/NetDimension/NanUI
  • https://gitee.com/linxuanchen/NanUI/

目前 NanUI 0.8 版源码暂时没有放出,等黑测一段时间收集反馈修改后会提交至上面两个仓库。

文档

NanUI 提供了大部分功能的文档,使用这些文档将有助于轻松快速的开始使用 NanUI 进行开发。

  • NanUI 0.8 文档 @ GitHub
  • NanUI 0.8 文档 @ Gitee

目前 NanUI 文档正在逐步完善,如果有朋友愿意帮助翻译不同语言的文档,请与我取得联系或者直接提交其他语言文档的 Pull Request 即可,感激不敬!

开源协议

NanUI 项目基于 LGPL-3.0 开源协议开放项目源代码。本项目版权由项目发起人、开发者林选臣所有

依照 LGPL-3.0 协议规定:

  1. 您可以在任何商业软件中引用 NanUI 的二进制库而无需支付任何与版权相关的费用;
  2. 如果您的项目使用并修改了 NanUI 的源代码,那么您的项目也需要使用 LGPL 协议进行开源,并且在您的衍生项目中保留 NanUI 的版权信息:Powered by NanUI
  3. 如果您需要在非开源的应用程序中使用 NanUI 的源代码,为了保障您的合法权益,请考虑向项目作者购买商业授权。

关于 LGPL-3.0 协议的具体内容请参考此协议详细副本。此外,NanUI 项目基于诸多开源项目进行构建,相关的项目请查阅第三方授权协议。


NanUI 项目基于 LGPL-3.0 协议的开源项目并且它是完全免费的。


原文地址:https://www.cnblogs.com/linxuanchen/p/nanui-for-winforms-0_8-is-published.html

相关推荐

Spring WebFlux vs. Spring MVC(springboot是什么)

背景随着异步I/O和Netty等框架的流行,响应式编程逐渐走入大众的视野。但是,响应式编程本身并不是太新的概念,这个术语最早出现在1985年DavidHarel和AmirPnue...

深度解析微服务高并发:适配SpringMVC框架适配模块及实现原理

适配主流框架如果不借助Sentinel提供的适配主流框架的模块,则在使用Sentinel时需要借助try-catchfinally将要保护的资源(方法或代码块)包起来,在目标方法或代码块执行之前,调...

Spring MVC 底层原理深度解析:从请求到响应的全链路拆解

一、Servlet容器与DispatcherServlet的启动博弈1.Tomcat初始化阶段java//Tomcat初始化流程StandardContext#startInterna...

改造总结之传统SpringMVC架构转换为SpringBoot再到集群

改造出发点,是基于现在服务都在向上云的目标前进,传统SpringMVC难以满足项目持续构建、服务节点任意扩展的需求,所以开始了历史项目的改造。项目改造考虑的主要是兼容以前的业务代码,以及session...

SpringBoot3 整合 Spring MVC 全解析:开启高效 Web 开发之旅

在当今的JavaWeb开发领域,Spring框架家族无疑占据着重要的地位。其中,SpringBoot3和SpringMVC更是开发者们构建强大、高效Web应用的得力工具。今天,...

一文读懂SpringMVC(一文读懂!残疾人低保边缘家庭能领的超实用福利政策)

1.SpringMVC定义1.1.MVC定义Model(模型):是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据View(视图):是应用程序中处理数据显示的部分。通常...

69 个Spring mvc 全部注解:真实业务使用案例说明(必须收藏)

SpringMVC框架的注解为Web开发提供了一种简洁而强大的声明式方法。从控制器的定义、请求映射、参数绑定到异常处理和响应构建,这些注解涵盖了Web应用程序开发的各个方面。它们不仅简化了编码工作,...

Spring MVC工作原理:像拼积木一样构建Web应用

SpringMVC工作原理:像拼积木一样构建Web应用在Java的Web开发领域,SpringMVC无疑是一个让人又爱又恨的存在。它像一位神通广大的积木搭建大师,将一个个分散的功能模块巧妙地拼接在...

5千字的SpringMVC总结,我觉得你会需要

思维导图文章已收录到我的Github精选,欢迎Star:https://github.com/yehongzhi/learningSummary概述SpringMVC再熟悉不过的框架了,因为现在最火的...

SpringMVC工作原理与优化指南(springmvc工作原理和工作流程)

SpringMVC工作原理与优化指南在现代Java开发中,SpringMVC无疑是构建Web应用程序的首选框架之一。它以其优雅的设计和强大的功能吸引了无数开发者。那么,SpringMVC究竟是如何工作...

Spring MVC框架源码深度剖析:从入门到精通

SpringMVC框架源码深度剖析:从入门到精通SpringMVC框架简介SpringMVC作为Spring框架的一部分,为构建Web应用程序提供了强大且灵活的支持。它遵循MVC(Model-V...

3000字搞明白SpringMVC工作流程、DispatcherServlet类、拦截器!

SpringMVC基础虽然SpringBoot近几年发展迅猛,但是SpringMVC在Web开发领域仍然占有重要的地位。本章主要讲解SpringMVC的核心:DispatcherServlet类...

多年经验大佬用2000字透彻解析SpringMVC的常用注解及相关示例

SpringMVC注解SpringMVC框架提供了大量的注解,如请求注解、参数注解、响应注解及跨域注解等。这些注解提供了解决HTTP请求的方案。本节主要讲解SpringMVC的常用注解及相关示例...

知乎热议:如何成为前端架构师,赚百万年薪?

作者|慕课网精英讲师双越最近有一条知乎热议:从一个前端工程师,如何根据目标,制定计划,才能快速进阶成为前端架构师?不久之前我参与了一次直播,讲到了自己对于Web前端架构师的理解。架构师这个角色...

学习笔记-前端开发架构设计(前端架构设计方案)

前端开发的技术选项主要包含以下几点,下面对一些名词概念的解释做了笔记:1、分层架构:把功能相似,抽象级别相近的实现进行分层隔离优势:松散耦合(易维护,易复用,易扩展)常见分层方式:MVC,MVVM2、...

取消回复欢迎 发表评论: