Auto模式,渐进式分离的AntDesign Blazor管理后台模板

💡 原文中文,约3600字,阅读约需9分钟。
📝

内容提要

本文介绍了基于asp.net core 8.x的快速开发框架abp9.x(一代)及其增加的功能。项目包括通用abp模块、帮助库和blazor web app。通用abp模块包含文件附件、树形结构数据和数据字典等实用模块。帮助库提供通用功能和帮助类方法,不依赖abp。blazor web app集成了AntBlazor,并支持aop无限层次结构的数据抽象。项目特征包括通用文件/附件、微信小程序登录/支付、事件总线等。项目结构分为公共库和主项目库,公共库可以发布为nuget包。

🔎

延伸解读

Auto模式与渐进式分离的实践

文章标题提到“Auto模式,渐进式分离”,但正文未详细解释其含义。从项目结构看,Blazor Web App的Auto模式可能指自动选择渲染模式,而渐进式分离体现在ClientProxy库的使用:后期部分页面通过HTTP客户端访问后端API,实现前后端分离。这种设计允许项目从一体化逐步过渡到分离架构,适应不同开发阶段的需求。

模块化与代码复用的设计

项目通过公共库和主项目库的划分,将通用功能(如帮助类、ABP模块)封装为NuGet包,供多个具体项目引用。公共库可独立升级,主项目复制后引用相同包,确保一致性。这种模块化设计减少了重复代码,提高了开发效率,尤其适合多应用共享逻辑的场景。

技术栈与架构选择

项目基于ABP 9.x和ASP.NET Core 8.x,但明确不遵循DDD,保持三层架构。这降低了学习曲线,适合传统开发团队。集成AntBlazor作为UI框架,并支持AOP实现无限层次数据抽象,如商品分类。同时提供微信小程序登录/支付等实用功能,增强了项目的实用性。

快速开始与注意事项

文章提供了详细的快速开始步骤,包括环境要求(VS2022、.NET 8、SQL Server 2012+)和启动流程。需要注意的是,文档更新可能滞后于代码,应核对最后更新时间。项目使用私有NuGet源,若使用ZLJ.sln需添加指定源。在线demo和视频资源可供参考,但需自行验证功能。

❓

Q&A

abp9.x(一代)是什么?它包含哪些主要特征?

abp9.x(一代)是基于asp.net core 8.x的快速开发框架,包含用户角色权限、多租户、多语言、模块化、日志、后台任务、缓存、对象映射、通知等大部分项目都会用到的特征。

这个项目由哪些部分组成?

项目由abp9.x(一代) + 通用abp模块 + 帮助库 + blazor web app(auto模式,渐进式分离)组成。

通用abp模块和帮助库有什么区别?

通用abp模块依赖abp相关nuget包,是按abp模块方式定义的实用模块,如通用文件附件、通用树形结构的数据、数据字典等;帮助库不依赖abp的任何内容,提供通用功能和帮助类方法,可用于任何.net core项目。

如何快速启动这个项目?

环境要求:vs2022、.net8、sqlserver2012+。步骤:克隆项目,双击ZLJWithModules.sln启动;修改ZLJ.Migrator和ZLJ.Web.Host中的appsettings.json中的数据库连接字符串;将ZLJ.Migrator设为启动项并启动,按y后回车自动生成并迁移数据库,再按y后回车自动插入演示数据;将ZLJ.Web.Host(后端api)和ZLJ.Web.HostBlazor(blazor web app auto模式)设为启动项并启动;登录信息:租户default,账号admin,密码123qwe。

项目结构是如何划分的?公共库和主项目库分别包含什么?

项目结构分为公共库和主项目库。公共库通常发布为nuget包,被主项目引用,包含Libs文件夹(普通.net core项目,与abp无关,如BXJG.Common等)和Modules文件夹(跟abp相关但与具体项目无关的模块,如BXJG.Utils等)。主项目是具体项目,包含framework下多个应用共享的库(如ZLJ.Application.Common等)和admin下的后台管理应用(如ZLJ.Admin.ClientProxy等)。

这个项目有哪些特色功能?

特色功能包括:基于肉夹馍(静态编织)的aop无限层次结构的数据抽象,可轻松实现类似商品分类的无限层次结构;通用文件/附件;依赖权限,如商品列表页访问权限依赖商品分类的查看权限,授权时自动一并授权;微信小程序登录/支付;范围级事件总线,让界面元素之间不直接引用,也可在租户级别触发事件;不遵循DDD,保持三层架构;增强的CrudAppService,增加批量操作,允许更细粒度的方法重写;代码生成器(开发中)。

🏷️

标签

➡️

继续阅读