我实现的一些Abp模块
Posted 上将军
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我实现的一些Abp模块相关的知识,希望对你有一定的参考价值。
Generic.Abp.Application
该模块只要是为了适应Sencha Ext JS开发而更改了Configuration
相关接口以及Settings
接口,可通过演示程序的swagger
查看。
该模块只有一个项目,在Abp应用程序的HttpApi
引用并添加依赖。
Generic.Abp.BusinessException
用于封装一些常见的商业意外,在Domain.Shared
引用并添加依赖。
Generic.Abp.DDD
对Abp原有的领域类和接口做了一些扩充,如增加ITree
、ITranslation
和Translation
等接口和实体类。
Generic.Abp.Enumeration
为应用程序添加枚举类并通过/api/configuration/enums
接口将枚举类返回客户端。
要定义枚举类,需要在Domain.Shared
项目中引用Generic.Abp.Enumeration.Domain.Shared
项目,然后通过继承Enumeration
来创建自己的枚举类:
class MyEnum: Generic.Abp.Enumeration.Enumeration<MyEnum>
public static readonly MyEnum MyEnum1 = new MyEnum(1, "MyEnum1", isDefault: true);
public static readonly MyEnum MyEnum2 = new MyEnum(2, "MyEnum2");
protected MyEnum(byte value, string name, string[] permission = null, bool isDefault = false,
bool isPrivate = false) : base(value, name, permission, isDefault, isPrivate)
在枚举类中,包含以下5个属性:
- value: 枚举值
- name:枚举名
- permission: 权限,如果不是私有,会根据权限选择哪些枚举项可返回客户端
- isDefault: 是否默认值
- isPrivate:私有,不会返回客户端
完成枚举定义后,如果希望枚举通过接口返回客户端,需要在模块初始化服务ConfigureServices
中将枚举添加到枚举资源中:
public override void ConfigureServices(ServiceConfigurationContext context)
Configure<EnumerationOptions>(options =>
options
.Resources
.Add(typeof(MyEnum));
);
Generic.Abp.ExtResource.Application
封装了Sencha Ext JS的本地化资源以实现动态本地化。
为Sencha Ext JS菜单提供了接口。未来会将菜单独立为一个模块,通过数据库来管理菜单。
Generic.Abp.FileManagement
封装了文件上传的相关功能(FileManager
):
- CheckAsync: 通过文件的散列值验证文件是否已存在,或是否存在已上传部分
- UploadChunkAsync: 上传文件块
- MergeAsync: 合并文件块并保存
- GetFileAsync: 获取整个文件或某一块文件
- GetThumbnailAsync: 获取文件预览图片
Generic.Abp.Helper
一些诸如字符串增长、文件类型检测等辅助功能。
Generic.Abp.IdentityServer
为ABP Framework添加Identity Server 4
管理功能.
Generic.Abp.W2Ui
Generic.Abp.OpenIddict
为ABP Framework添加OpenIddict
管理功能.
源代码:https://github.com/tianxiaode/GenericAbp
以上是关于我实现的一些Abp模块的主要内容,如果未能解决你的问题,请参考以下文章
abp(net core)+easyui+efcore实现仓储管理系统——模块管理升级之上(六十一)