您当前的位置: 首页 > 

寒冰屋

暂无认证

  • 0浏览

    0关注

    2286博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

ABP框架 v2.7.0已经发布!

寒冰屋 发布时间:2020-05-11 13:14:12 ,浏览量:0

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"}}

关注
打赏
1665926880
查看更多评论
0.0487s