我实现的一些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
为ABP Framework添加W2Ui.
Generic.Abp.OpenIddict
为ABP Framework添加OpenIddict
管理功能.
源代码:https://github.com/tianxiaode/GenericAbp
我实现的一些Abp模块相关推荐
- 基于DDD的.NET开发框架 - ABP模块设计
返回ABP系列 ABP是"ASP.NET Boilerplate Project (ASP.NET样板项目)"的简称. ASP.NET Boilerplate是一个用最佳实践和流行 ...
- abp模块生命周期设计思路剖析
abp中将生命周期事件抽象为4个接口: //预初始化 public interface IOnPreApplicationInitialization {void OnPreApplicationIn ...
- Magicodes.Pay,打造开箱即用的统一支付库,已提供ABP模块封装
Magicodes.Pay,打造开箱即用的统一支付库,已提供ABP模块封装 简介 Magicodes.Pay,是心莱科技团队提供的统一支付库,相关库均使用.NET标准库编写,支持.NET Framew ...
- ABP模块系统学习及使用
ABP模块系统简介 参考: ABP中配置的注册和初始化 ABP模块系统 ABP 源码解析 一. ABP启动 ABP框架提供了创建和组装模块的基础,一个模块能够依赖于另一个模块.在通常情况下,一个程序集 ...
- ABP模块系统插件机制
从官网下载ABP项目后,发现一般是有6个程序集,程序集之间是怎么相互关联的呢?这有关ABP的模块系统. 官网上模块的定义如下,模块定义有一个类,该类派生自ABP包中的AbpModule.假设我们正在开 ...
- 精简ABP的模块依赖
ABP的模块非常方便我们扩展自己的或使用ABP提供的模块功能,对于ABP自身提供的模块间的依赖关系想一探究竟,并且试着把不必要的模块拆掉,找到那部分核心模块.本次使用的是AspNetBoilerpla ...
- ABP入门系列(15)——创建微信公众号模块
1. 引言 现在的互联网已不在仅仅局限于网页应用,IOS.Android.平板.智能家居等平台正如火如荼的迅速发展,移动应用的需求也空前旺盛.所有的互联网公司都不想错过这一次移动浪潮,布局移动市场分一 ...
- ABP官方文档(三)【模块系统】
1.3 ABP总体介绍 - 模块系统 1.3.1 ABP模块系统简介 ABP框架提供了创建和组装模块的基础,一个模块能够依赖于另一个模块.在通常情况下,一个程序集就可以看成是一个模块.在ABP框架中, ...
- 【ABP框架系列学习】模块系统之插件示例开发
0.引言 上一篇博文主要介绍了ABP模块及插件的相关知识,本章节主要开发一个插件示例来学习如何创建一个插件,并在应用程序中使用.这个命名为FirstABPPlugin的插件主要在指定的时间段内删除审计 ...
最新文章
- 多继承中虚基类构造函数的一种调用规则
- 机器学习进阶-图像形态学操作-腐蚀操作 1.cv2.erode(进行腐蚀操作)
- 带你用4行代码训练RNN生成文本(附资源)
- document怎么取得日期选择框的值_一次性取得跨年度的租金收入如何进行财税处理?...
- 【Linux 内核】调度器 ② ( sched_class 调度类结构体源码 | 源码路径 linux-5.6.18\kernel\sched\sched.h )
- stm32之ADC应用实例(单通道、多通道、基于DMA)
- 深入浅出 JavaScript 中的 this
- Android Studio 2.1.2 升级到 2.2之后,gradle 编译版本更新为2.2.0,databinding报错
- Vue.js 3.0 响应式 API 比 2.x 好在哪儿?
- QQ空间小秘书 V1.70 Beta1 ~~ 天空原创软件
- UVA 12169 Disgruntled Judge
- ffmpeg编译的静态链接库问题
- Java新职篇:类型提升的约定
- 「洛谷P3469」[POI2008]BLO-Blockade 解题报告
- java 局部内部类
- S3C2440PWM 定时器
- 用计算机算标准曲线,标准曲线计算器官方版
- C语言函数的定义和声明
- 技术总监需要做些什么?
- 当yum安装包时显示系统空间不足,求指教