我们组做制造业 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