ABP框架和ABP商业版 v2.7已经发布.我们没有为2.4,2.5和2.6发布博客文章,所以这篇文章也将涵盖这几个版本中新增内容和过去的2个月里我们完成了什么.
关于发布周期与开发之前说过我们已经开始每两个星期发布一个新的次要功能版本,一般在星期四.我们的目标是尽快提供新功能.
在过去的7-8周里, 我们在1,300+次提交中完成和合并了数百个issue和pull request, 这只是ABP框架的库.每日提交的次数不断增加:
ABP.IO平台正在快速增长,我们从社区获取的贡献越来越多.
ABP框架有哪些新增内容? 对象扩展系统(Object Extending System)在过去的几个版本中,我们主要集中在以NuGet/NPM包使用现有模块时, 提供扩展的方法,
对象扩展系统允许模块开发者创建可扩展的模块并允许应用开发者更容易地定制和扩展.
例如,你可以这样为Identity模块的User实体添加两个扩展属性:
ObjectExtensionManager.Instance
.AddOrUpdate(options =>
{
options.AddOrUpdateProperty("SocialSecurityNumber");
options.AddOrUpdateProperty("IsSuperUser");
}
);
也很容易为这些属性定义验证规则:
ObjectExtensionManager.Instance
.AddOrUpdateProperty(
"SocialSecurityNumber",
options =>
{
options.Attributes.Add(new RequiredAttribute());
options.Attributes.Add(
new StringLengthAttribute(32) {
MinimumLength = 6
}
);
});
你甚至可以编写自定义代码来验证属性.它会自动适用于应用服务, 控制器或页面的参数对象.
实体的扩展属性通常存储在数据库表的一个单独的JSON格式的字段中,但是你也可以轻松地使用EF Core映射配置该属性为一个表字段:
ObjectExtensionManager.Instance
.AddOrUpdateProperty(
"SocialSecurityNumber",
options =>
{
options.MapEfCore(b => b.HasMaxLength(32));
}
);
请参见有关该系统的详细信息对象扩展文档.
也可参见自定义现有模块指南,以了解所有可能的自定义选项.
文本模板包Volo.Abp.TextTemplating是v2.7.0中新加入的包.此前,Volo.Abp.Emailing包也有类似的功能,但它的功能是有限的,实验性质的并且和发送邮件紧密耦合在一起.
新文本模板包允许你定义基于文本的模板, 可以很容易地本地化和重用.你可以定义布局模板并且与其它模板共享.
目前,我们正在使用它发送邮件.一个需要发送邮件的模块通常定义了一个模板.如:
{{L "PasswordReset"}}
{{L "PasswordResetInfoInEmail"}}
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?


微信扫码登录