NovaAdmin.Blazor 1.0.9

dotnet add package NovaAdmin.Blazor --version 1.0.9
                    
NuGet\Install-Package NovaAdmin.Blazor -Version 1.0.9
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="NovaAdmin.Blazor" Version="1.0.9" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="NovaAdmin.Blazor" Version="1.0.9" />
                    
Directory.Packages.props
<PackageReference Include="NovaAdmin.Blazor" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add NovaAdmin.Blazor --version 1.0.9
                    
#r "nuget: NovaAdmin.Blazor, 1.0.9"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package NovaAdmin.Blazor@1.0.9
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=NovaAdmin.Blazor&version=1.0.9
                    
Install as a Cake Addin
#tool nuget:?package=NovaAdmin.Blazor&version=1.0.9
                    
Install as a Cake Tool

NovaAdmin

基于 Blazor Server 的后台管理与 SaaS 中台骨架:UI 使用 BootstrapBlazor,数据访问使用 FreeSql,提供开箱即用的管理端基础能力与可扩展业务框架,具备前后端统一技术栈、组件化程度高、扩展性强、部署维护成本低等技术优势,尤其适合医疗系统、检验质控平台等场景的定制开发。

适合作为企业后台、多租户管理端、医疗信息化项目或二次开发起点,可显著缩短项目搭建、功能迭代与交付上线周期。


技术栈概览

层次 说明
前端 Blazor Server、BootstrapBlazor 组件库、Razor 页面(含 Dock 多标签布局等)
后端 ASP.NET Core 8、Web API(Swagger / RapiDoc)、依赖注入
ORM FreeSql(支持多库路由、仓储、工作单元、CodeFirst 同步结构)
可选能力 多租户、RBAC 菜单与按钮权限、定时任务(FreeScheduler)、数据字典与参数、OSS 上传(MinIO / 阿里云 / 腾讯云等)、审计与登录日志等

仓库结构

NovaAdmin.sln          # 解决方案
NovaAdmin/             # 主启动项目(Web 宿主,示例业务与种子数据)
NovaAdmin.Blazor/      # Razor 类库:管理端页面、API 控制器、扩展与静态资源
  • NovaAdmin:入口 Program.cs,配置数据库连接、AddNovaAdmin 注册、地图 Razor 组件与 Admin API;可在此增加本业务的 EntitiesComponentsApiSeedData
  • NovaAdmin.Blazor:封装后台通用能力(登录、菜单、用户角色、租户、文件、任务调度等),静态资源位于 wwwroot/(如 novaadmin.css / novaadmin.js),发布时引用路径为 _content/NovaAdmin.Blazor/

使用模板创建项目

如果你希望直接从 NuGet 模板快速创建一个新的后台项目,可使用 dotnet new 安装并生成。建议始终显式指定项目名,避免生成到当前目录并和现有文件混在一起:

# 安装模板
dotnet new install NovaAdmin.Templates

# 创建新项目
dotnet new novaadmin -n MyAdmin -o MyAdmin

# 进入项目目录并运行
cd MyAdmin
dotnet restore
dotnet run

创建完成后,模板项目会自动通过 NuGet 引用 NovaAdmin.Blazor,并同时生成 MyAdmin.Tests 测试项目。你可以在生成的宿主项目基础上继续增加自己的:

  • Entities 实体
  • Components 页面与布局
  • Api 控制器或服务接口
  • SeedData 初始化数据

同时模板还会生成配套的 MyAdmin.Tests 测试项目,默认已引用生成后的宿主工程,方便你直接补充接口回归测试和缓存相关测试。

默认情况下,项目使用 SQLite,本地数据库文件名为 novaadmin.db。首次运行后,可直接访问控制台输出的地址开始使用。

如需更新到模板的最新版本,可先更新模板包后重新创建项目:

dotnet new update
dotnet new install NovaAdmin.Templates

如需卸载模板:

dotnet new uninstall NovaAdmin.Templates

快速开始

环境:安装 .NET 8 SDK

# 还原并编译
dotnet build NovaAdmin.sln

# 运行宿主项目(默认 SQLite 数据库文件为 novaadmin.db)
cd NovaAdmin
dotnet run

浏览器访问控制台输出的地址(如 http://localhost:5038,以 launchSettings.json 为准)。

默认账号(由类库种子数据初始化,可在首次运行前于扩展中修改):用户名与密码一般为 admin / admin,请以实际库内数据为准。

Docker 部署

项目内提供了自动化脚本 NovaAdmin/docker-auto.sh,用于一键重建并启动容器。

cd NovaAdmin
chmod +x docker-auto.sh
./docker-auto.sh

脚本默认使用宿主机端口 6038,会自动执行以下流程:

  • 检查当前终端是否已加载 docker 用户组,必要时使用 sg docker 重新执行脚本。
  • 清理占用目标端口的本地进程。
  • 执行 docker compose builddocker compose downdocker compose up -d

如需改用其他宿主机端口,可在运行前传入环境变量:

cd NovaAdmin
HOST_PORT=6038 ./docker-auto.sh

容器启动后,默认通过 http://localhost:6038 访问;如修改了端口,则按实际映射端口访问。


界面演示

以下截图可作为后台能力的直观演示案例:

题目管理

展示题目录入与管理页面效果:

题目管理演示

角色权限

展示角色列表与权限配置相关界面:

角色权限演示

定时任务

展示任务调度与执行管理页面:

定时任务演示


扩展与集成要点

  1. AddNovaAdmin:在 WebApplicationBuilder 上注册 FreeSql 云、后台服务、BootstrapBlazor、控制器与 Swagger 等;通过 NovaAdminOptions 传入业务程序集、连接配置、是否开启 Swagger 等。
  2. 附加 Razor 程序集:宿主已使用 AddAdditionalAssemblies(typeof(NovaAdminOptions).Assembly);若业务页面放在宿主程序集中,保持 Assembliestypeof(Program).Assembly 即可参与菜单与路由发现。
  3. APIapp.UseAdminOmniApi() 挂载管理端 Web API(带 Admin 上下文初始化);与 UI 共用同一套认证与租户逻辑。
  4. 命名空间约定:宿主示例 API / 种子使用 NovaAdmin.APINovaAdmin.SeedData;类库内为 NovaAdmin.Blazor.*(及部分历史命名如 AdminOmni (filter/mvc))。

许可与致谢

  • 第三方组件各自遵循其开源协议;商用前请自行核对 BootstrapBlazor、FreeSql 等依赖许可。
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.9 29 5/12/2026
1.0.8 34 5/12/2026
1.0.7 50 5/11/2026
1.0.6 52 5/11/2026
1.0.5 47 5/11/2026
1.0.4 44 5/11/2026
1.0.3 43 5/10/2026
1.0.2 42 5/10/2026
1.0.1 39 5/10/2026
1.0.0 45 5/10/2026