我做 PCB 制造业 ERP,前端是 Blazor Server,组件库一直用 Radzen(数据密集型表单多,现成 DataGrid 省事)。团队里几个前端出身的同事总念叨 antd 那套审美和交互,我也一直想搞清楚:Ant Design Blazor 到底成不成熟,能不能接中后台的活。
先说版本,这是最近一个坑:我之前写的稿子里说它「还在 1.0 之前」,开源作者亲自在评论区纠正——现在稳定版已经是 1.6.2,NuGet 下载量几百万了。我去仓库核对了一下,确实是,2.0 / antd 5.0 风格还在 nightly 分支没进稳定版。下面按我实际翻下来的情况说,不夸不踩。
它是什么
基于 Ant Design 设计规范的企业级 Blazor 组件库,MIT 协议。
几个我实际确认过的点:
- .NET Core 3.1 到 .NET 9 都支持,最近一次提交(2026-10-29)已经跟到 .NET 11 RC3,维护没停。
- Blazor Server / WASM / MAUI / WPF / WinForms(Hybrid)都能跑,Electron 也行。
- NuGet 包名就是
AntDesign,本地化有单独的AntDesign.Extensions.Localization。
- 2026 年初官方给文档加了 MCP server,配到 Claude / Cursor 里能直接查组件用法和示例源码。我们组最近写 Blazor 就靠这个少切几次网页。
怎么跑起来
官方给了两条路,我是直接引到现有项目的:
dotnet add package AntDesign// Program.cs builder.Services.AddAntDesign();@* _Imports.razor *@ @using AntDesign@* index.html / _Host.cshtml *@ <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"。这个不加,你调试半小时都想不到是这原因。
一个能抄的片段
我们 ERP 里工单列表 + 新建弹窗大概长这样(简化过):
@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 / Radzen 怎么选
不绕弯子:圈子里做 Blazor,十个人有八个第一反应是 MudBlazor——Material 风、开源、社区最热闹。Radzen 在中文社区存在感不高,而且免费和付费边界容易踩坑,我不建议拿来入门。
我自己的情况可能和很多人相反:生产环境用的是 Radzen,因为 ERP 表单字段多、要现成 DataGrid,它能省不少事。但 Radzen 的付费边界确实要提前确认,不是所有控件都免费。
把几个主流的摆一起:
库 | 风格 | 许可 | 适合场景 | 提醒 |
MudBlazor | Material | 开源 | 通用项目、要社区 | 默认选择,文档全、示例能抄 |
Ant Design Blazor | antd 中后台 | MIT | 中后台、团队熟 antd | 1.6.2 已稳,但仍在快速演进 |
Radzen Blazor | 中性简洁 | 免费+付费 | 数据密集型企业管理 | 控件多,付费边界要确认 |
Blazorise | 多 CSS 框架 | 免费+付费 | 绑 Bootstrap/Tailwind | 灵活,但样式得自己定 |
我的判断:
- 刚起步、要纯开源 + 踩坑有人答,MudBlazor 最稳。
- 团队本来就 React + antd、现在转 Blazor 做中后台,Ant Design Blazor 心智一致,值得上。我们就是这种情况,所以才认真看了它。
- 生产环境要现成 DataGrid / 设计器、能接受授权成本,再评估 Radzen。
选型上别迷信「社区最火」,得看你自己项目长什么样。
上生产前注意
1.6.2 还在演进期,breaking change 会有。上生产前锁版本、读 release notes,别追 nightly——2.0 的 antd 5.0 样式在预览分支,官方明确说别用于生产。样式和脚本是按需加载的,注意别重复引,不然包体积会涨。
就这些。如果你也在 Blazor 里做中后台、纠结组件库,可以一起聊聊实际踩过的坑。我后面打算把 ERP 里用 Blazor 过的几个生产场景(表格行内编辑、服务端分页、表单联动)单独拆出来写。