ABP设置管理模块: Abp.SettingUi

开源地址: https://github.com/EasyAbp/Abp.SettingUi

一直想宣传一下SettingUi, 因为 懒 工作比较忙, 所以才拖到今天.

关于ABP就不需要我再多废口舌了, 已经是一个非常出名的.NET Core的框架, 在国内也已经有很多企业在正式项目中广泛使用了.

Abp.SettingUi是一个用来管理Abp中设置模块, 简单来讲它可以让用户通过UI来管理ABP中各个设置的值, 比如修改默认语言, 设置密码复杂度等等, 可以说装上这个模块你就开启了ABP的"隐藏功能".

应该说设置管理是一个很重要的功能, 但是ABP的社区版没有内置, 只在ABP的商业版中才有设置的UI, 但仍需开发者通过代码来为各个设置项进行适配才可以.

而SettingUi会自动扫描系统中所有的设置, 并在UI中显示出来, 无需开发者过多干预, 开箱即用.

从发布至今, SettingUi在NUGET上已经有近7000次下载, 可以说是ABP中非常实用一个模块, 甚至也有ABP商业版用户来使用这个模块, 可见SettingUi得到了很多ABP开发者的认可.

为了更好的让国内开发者使用, SettingUi 1.3.0版增加了中文文档, 该文档是我花了很多心思写的一个Step by Step的教程, 所以接下来就是该文档复制过来, 希望能吸引更多的使用者:)

Abp.SettingUi

一个用来管理ABP设置的模块

ABP设置管理模块: Abp.SettingUi

如果你在使用 ABP v2.1.1 之前的版本, 请查看Abp.SettingManagement.Mvc.UI

功能

通过UI管理ABP设置的值

支持本地化

设置分组

为不同设置显示适当的控件

可通过权限控制设置的显示

在线演示

我们为这个模块创建了一个在线演示: https://settingui.samples.easyabp.io

安装 使用AbpHelper (推荐)

在你的ABP项目的根文件夹中运行以下命令:

abphelper module add EasyAbp.Abp.SettingUi -acshlw

手动安装包

安装以下 NuGet 包.

EasyAbp.Abp.SettingUi.Application

EasyAbp.Abp.SettingUi.Application.Contracts

EasyAbp.Abp.SettingUi.Domain.Shared

EasyAbp.Abp.SettingUi.HttpApi

EasyAbp.Abp.SettingUi.HttpApi.Client (只有 才需要)

EasyAbp.Abp.SettingUi.Web

添加 DependsOn(typeof(AbpSettingUiXxxModule)) 属性来配置模块依赖. ()

配置本地化资源

为了让SettingUi模块使用应用程序的本地化资源, 我们需要将它们添加进SettingUiResource:

MyAbpApp.Domain.Shared 项目 - MyAbpAppDomainSharedModule 类

Configure<AbpLocalizationOptions>(options => { ... options.Resources .Get<SettingUiResource>() .AddVirtualJson("/Localization/MyAbpApp"); });

使用

授权 ("Setting UI" - "Show Setting Page")

ABP设置管理模块: Abp.SettingUi

刷新浏览器, 然后你就可以使用 "Administration" - "Settings" 菜单来看见所有ABP内置的设置了

管理自定义设置

除了ABP自定义设置以外, 你也可以使用这个模块来管理你自己的设置.

定义一个设置

MyAbpApp.Domain 项目 - Settings/MyAbpAppSettingDefinitionProvider 类

public class MyAbpAppSettingDefinitionProvider : SettingDefinitionProvider { public override void Define(ISettingDefinitionContext context) { context.Add( new SettingDefinition( "Connection.Ip", // 设置的名称 "127.0.0.1", // 默认值 L("DisplayName:Connection.Ip"), // 显示名称 L("Description:Connection.Ip") // 描述 )); } private static LocalizableString L(string name) { return LocalizableString.Create<MyAbpAppResource>(name); } }

设置的名称为"Connection.Ip"

提供了一个默认值: "127.0.0.1"

使用帮助方法 L 为 显示名称 和 描述 赋予了可本地化的字符串. 格式 "DisplayName:{SettingName}" 是ABP推荐的形式.

ABP的设置系统, 请参见 设置文档

定义本地化资源, 出于演示目的, 我们定义了英语和简体中文的本地化资源

MyAbpApp.Domain.Shared 项目

Localization/MyAbpApp/en.json

{ "culture": "en", "texts": { ... "DisplayName:Connection.Ip": "IP", "Description:Connection.Ip": "The IP address of the server." } }

Localization/MyAbpApp/zh-Hans.json

{ "culture": "zh-Hans", "texts": { ... "DisplayName:Connection.Ip": "IP", "Description:Connection.Ip": "服务器的IP地址." } }

重新启动应用程序, 我们可以看到设置显示了, 并且本地化也正常工作

ABP设置管理模块: Abp.SettingUi

分组

你可能注意到我们的自定义设置显示在"其它"标签, "其它"卡片中, 这些是默认的分组, 分别称之为"Group1"和"Group2"

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wppxzw.html