女子世界杯_世界杯今日赛事 - fdrwxy.com SPACE


大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章能成为你成长路上的垫脚石,让我们一起精进。

abp框架在.net社区是spring一样的存在,用的人也非常多,毫无疑问,它确实是一个不错的框架,不然社区的star也不会那么多。我也是因为它的模块化,ddd,微服务兼容等特点做的选型。但是随着你使用的项目越多,你会发现它也有自己的不足,所谓没有十全十美的框架。

一、abp的痛点

通过使用商业版和社区版的经验,有几个痛点:

1.前端不支持VUE:

angular前端不好招聘,小公司可能个别会ng,但是架不住离职的风险。我曾经见过一个开发团队,后端用abp,前端用ng,前后端不分离,这个时候后端人员就硬着头皮去修改前人的angular,问他为什么改得这么慢,对方说:我比较熟悉vue,老板只有暗暗着急,却无可奈何。显然技术选型出问题,对团队和交付的影响是非常大的;

2.社区版界面比较丑陋:

是不是我的理解有偏差,感觉老外大部分都不怎么重视脸面问题。商业版的界面稍微就好看一些,但是味道感觉还是差了那么一点点;

3.售后服务非常慢:

这个可能是最坑的地方,对新人比较不友好,如果项目紧急,随时可能要面对的是漫长的等待,记得我刚入坑到时候,碰到一个https配置问题,问了邮件许久都没有回复;

4.功能不好用:

社区版的功能要么水土不服,要么功能太浅。看起来好些功能挺多的,但是用起来,还是要改得满头大汗;

5.价格比较昂贵:

带源码商业版要4万3左右,企业版更贵,大概要7.3万。

二、我们如何处理?

我不是说abp商业版不好,它挺不错的,只是不适合自己的业务需求,于是,我们用VUE3+ABP重做了一下(传送门),请大家指教,目前有几个增强点:

1.功能更深入。

比如:

【增强】文件管理:支持多种SSO存储渠道配置和切换;支持图片、文档、视频、音频的存储;

【新增】任务调度:支持单体和集群,支持可视化配置和日志记录;

【重写】认证授权:支持用户池,用户同步,单点登录,目前正在开发中;

【增强】用户和角色扩展;

【复刻】关联账户;

【复刻】委托登录;

【新增】菜单管理;

【新增】行政单位;

【新增】计量单位;

【新增】校验规则;

至于多语言,审计日志, opendidct,多租户等自带的功能,我们用vue3把他们优化和重写了,功能基本没有变化,没有什么可以分享的。

下面是认证授权的同步中心,用来解决多个系统用户集中管理和单点登录问题。

2.细节更深入。

功能层面

比如:菜单支持标星收藏和归类;前后端分离我们基于permission表扩展了菜单表,这样既能支持系统默认菜单,也能支持自定义菜单。

返回格式

又比如,abp的接口返回格式比较没有规则,考虑前端的体验,我们给它包了一个壳,做了格式统一:

abp的返回格式:

我们的返回格式:

考虑前端的体验,我们给它包了一个壳

{

"code": null,

"data": {},

"isSuccess": true,

"msg": null,

"extras": null,

"timestamp": 1739241669

}

抛出异常状态码

这里面的状态码也很有讲究,我们观察发现abp也不是很规范,后台抛异常各自情况都有,我们统计了一下,abp的异常种类很多,多到感觉抓不到规律:

Application层:

throw new AbpException($"No policy defined to get/set permissions for the provider '{providerName}'. Use {nameof(PermissionManagementOptions)} to map the policy.");

throw new ApplicationException($"The permission named '{permission.Name}' has not compatible with the provider named '{providerName}'");

throw new AbpValidationException();

throw new FileNotFoundException($"Signing Certificate couldn't found: {file}");

t

不必因为自己有“自杀”“杀人”的想法而恐慌
dnf魔女图在哪个地方

友情链接