NuGet包管理器将根据您项目的架构信息自动生成依赖项目的目录和文件结构,您无需关注目录结构信息,这也是最快速最简便的方法。
编译NanUI源码或是用二进制包您可以从GitHub获取NanUI的全部源码并使用VS2019编译源码,或者通过NuGet安装NanUI二进制包。
NanUI项目源码 - https://github.com/NetDimension/NanUI/
使用NuGet包管理器安装NanUI
PM> Install-Package NetDimension.NanUI NanUI相关二进制包以下表格展示了NanUI项目的各个NuGet包及相关信息。
项目名称 框架 说明NetDimension.NanUI .NET Framework 4.0+ / .NET Core 3.1 您需要引用此库来构建NanUI应用程序,这是NanUI的核心库。
NetDimension.NanUI.Runtime .NET Framework 4.0+ / .NET Core 3.1 NanUI的依赖项,包括了CEF框架二进制文件和CFX二进制文件。
NetDimension.NanUI.Subprocess .NET Framework 4.0+ / .NET Core 3.1 NanUI的子进程可执行文件,如果是用NanUI的UseDefaultSubprocess特性需要安装此包。
NetDimension.NanUI.AssemblyResourceHandler .NET Framework 4.0+ / .NET Core 3.1 内嵌资源控制器。
NetDimension.NanUI.FileResourceHandler .NET Framework 4.0+ / .NET Core 3.1 文件资源控制器。
NetDimension.NanUI.RestfulResourceHandler .NET Framework 4.0+ / .NET Core 3.1 REST数据资源控制器。
创建第一个NanUI应用程序
NanUI基于Chromium浏览器核心,因此您可以使用您所熟悉的任何前端技术来打造您的桌面应用程序。您还可以向Javascript环境中注入.NET对象或方法;另外使用资源处理器,您还可以方便地向Web环境提供文件、多媒体和数据等内容。
您可以把NanUI看作一个嵌入到WinForm中的、精简化的Chromium浏览器,这个浏览器替代了传统WinForm界面的画布,因此您可以发挥想象力,使用任何Web前端技术来设计您的窗体界面。
不仅如此,您还能保留.NET框架的所有特性,能够使用EntityFramework,能够使用多线程、甚至能通过任何方式与您的硬件设备进行交互并把相关的信息反馈给Web环境。既满足了设计漂亮用户界面的需求,也保留了.NET强大的生态环境。
阅读下面的步骤,我们就来一起创建您的第一个NanUI应用程序。
选择一种.NET框架您可以根据实际项目的需求,选择使用针对于.NET Framework或者.NET Core框架的的Windows窗体(WinForm)应用程序。对于两种类型的窗体应用程序来说,所有的API接口都是相同的,您可以方便的从一种框架迁移到另外一种。
安装NanUI现在,您需要安装NanUI以及NanUI的依赖项。推荐您使用NuGet包管理起来安装他们。在包管理器中运行如下命令来安装:
安装NanUI
PM> Install-Package NetDimension.NanUI安装NanUI运行时依赖项
PM> Install-Package NetDimension.NanUI.Runtime 制作一个简易的HTML窗体NanUI使用了新的工厂来创建浏览器承载窗口,因此我们并不需要像往常一样通过窗体设计器来设计窗体和控件。因此我们可以直接删除项目模板中为我们自动创建的Form1.cs窗体。
新建MainWindow.cs,并让他继承NetDimension.NanUI.Formium基类,并实现该类的所有抽象接口:
using NetDimension.NanUI; using NetDimension.NanUI.Browser; class MainWindow : Formium { public override string StartUrl => "https://www.google.com"; public override HostWindowType WindowType => HostWindowType.Standard; protected override Control LaunchScreen => null; public MainWindow() { Title = "第一个NanUI应用" } protected override void OnWindowReady(IWebBrowserHandler browserClient) { } protected override void OnRegisterGlobalObject(JSObject global) { } }修改StartUrl属性,指定启动时访问的Url地址。
public override string StartUrl => "https://www.google.com";指定WindowType属性,选择窗体以原生样式显示还是使用无边框样式。
public override HostWindowType WindowType => HostWindowType.Standard;使用LaunchScreen属性来返回一个自定义的用户控件,用来显示网页加载时的等待画面,通常他可以是一个PictureBox,放置一张静态的图像或者GIF图像来告知用户应用程序启动的状态。如果不需要该功能,返回null即可。
protected override Control LaunchScreen => null;