我把 Ant Design Blazor 翻了一遍:Blazor 中后台组件库到底能不能用

我们组做制造业 ERP,前端 Blazor Server,组件库一直 Radzen。最近因为几个前端同事习惯 antd,我想看看 Ant Design Blazor 接中后台活够不够格。

先更正一个我之前犯的错误:我早先以为它「还在 1.0 之前」,结果开源作者亲自在评论区纠正 ------现在稳定版已经 1.6.2,NuGet 下载量几百万。我去仓库核对,确实,1.0 那波早过了,2.0 / antd 5.0 风格还在 nightly 没进稳定版。所以下面说的都是基于 1.6.2 实际翻下来的情况。

它是什么,能跑在哪

基于 Ant Design 设计规范的企业级 Blazor 组件库,MIT 协议。我确认过的几点:

  • .NET Core 3.1 到 .NET 9 都支持,2026-10-29 那次提交已经跟到 .NET 11 RC3,维护是活的。
  • Server / WASM / MAUI / WPF / WinForms(Hybrid)/ Electron 全都能跑。
  • 包名 AntDesign,本地化有单独的 AntDesign.Extensions.Localization。
  • 文档带了 MCP server(2026 初加的),配 Claude / Cursor 能直接查组件用法。我们写 Blazor 现在就靠这个,少开几个网页。

接进去要几步

引到现有项目最省事:

复制代码
dotnet add package AntDesign
csharp 复制代码
// Program.cs
builder.Services.AddAntDesign();

_Imports.razor 加 @using AntDesign,再在 index.html / _Host.cshtml 引它的 css 和 js:

html 复制代码
<link href="_content/AntDesign/css/ant-design-blazor.css" rel="stylesheet" />
<script src="_content/AntDesign/js/ant-design-blazor.js"></script>

新建项目用模板也行:

复制代码
dotnet new --install AntDesign.Templates
dotnet new antdesign -o MyApp      # -ho server|wasm|webapp 指定托管模型

坑我第一次就踩了:Modal / Message / Notification 这类弹出组件,App.razor 里必须加 <AntContainer /> ,不然弹窗死活不出来。Blazor WebApp 还得给它和 <Routes> 都加 @rendermode="RenderMode.InteractiveAuto"。这个不加,你查半小时都想不到是它。

一段能抄的代码

工单列表加新建弹窗,简化后是这样:

razor 复制代码
@page "/orders"
@using AntDesign

<Button Type="primary" OnClick="() => visible = true">新建工单</Button>

<Table TItem="Order" Data="@orders">
    <PropertyColumn Property="c => c.OrderNo" Title="单号" />
    <PropertyColumn Property="c => c.Status" Title="状态" />
</Table>

<Modal Title="新建工单" Visible="@visible"
       OnOk="() => visible = false" OnCancel="() => visible = false">
    <p>这里放你的表单......</p>
</Modal>

@code {
    private bool visible;
    private List<Order> orders = new()
    {
        new("WO-001", "已排产"),
        new("WO-002", "待物料"),
    };
    record Order(string OrderNo, string Status);
}

Table + PropertyColumn 写法和 antd 几乎一样,我们前端同事不用我解释列定义。但有一点:Modal 要弹得起来,前提是上面那个 <AntContainer /> 已经就位------代码本身没问题,坑在别处。

选型:别只看社区热度

MudBlazor 是大多数人第一反应,开源、Material、社区最热闹,没问题。Radzen 在中文社区不火,免费付费边界还容易踩,不适合入门。

我的情况有点反常识:生产环境我用 Radzen,因为 ERP 表单字段多、要现成 DataGrid。但 Radzen 付费边界得提前确认。

几个主流摆一起看:

库 风格 许可 适合场景 提醒
MudBlazor Material 开源 通用、要社区 默认最稳,文档全
Ant Design Blazor antd 中后台 MIT 中后台、团队熟 antd 1.6.2 已稳,仍在演进
Radzen Blazor 中性 免费+付费 数据密集型管理 控件多,付费边界确认
Blazorise 多框架 免费+付费 绑 Bootstrap/Tailwind 灵活但样式自定

我的看法:起步要纯开源选 MudBlazor;团队本就 React + antd、转 Blazor 做中后台,Ant Design Blazor 心智一致,值得上;生产要现成 DataGrid、能接受授权,再评估 Radzen。选型看自己项目长相,不是看哪个火。

上生产前

1.6.2 还在演进,会有 breaking change。锁版本、读 release notes,别追 nightly------2.0 的 antd 5.0 样式在预览分支,官方说别上生产。样式脚本按需加载,别重复引,包体积会涨。


翻完的结论:它接中后台活是够的,1.6.2 这版已经稳,团队本来就 antd 的话迁移心智很顺。我们 ERP 后续一些新模块我会考虑用它试。你们在 Blazor 里踩过组件库的坑,欢迎评论区聊聊。

原文连接:https://www.coderlog.net/post/ant-design-blazor-review-worth-recommending-dotnet-teams

相关推荐
IT规划师43 分钟前
Redis 数据类型全解 - ZSet:两个编码,七种玩法(五)
redis·.net
rockey62713 小时前
AScript之字符串模板
c#·.net·script·expression·动态脚本
玩泥巴的1 天前
源生成与 AOT 就绪的微信生态 .NET SDK:结构、能力边界与 API 定位方法
ai·微信·.net·agent·aot·roslyn
1-1=01 天前
C# 泛型
c#·.net·.netcore
有志冬瓜1 天前
.NET Framework全部版本离线下载安装教程
安全·.net·软件需求
IT规划师1 天前
Redis 数据类型全解 - Set 的三个真相:去重、标签、共同好友(四)
redis·.net
椒颜皮皮虾྅2 天前
让文档不止于文字:DeploySharp + PP-Structure,打通版面分析与表格重建
开发语言·学习·c#·.net·cuda
玩泥巴的2 天前
可能是最现代化的微信生态 .NET 服务端 SDK
ai·微信·.net·aot