ABP VNext学习日记4
1.分布式事件总线
解析:分布式事件总线是在一个应用程序中发布事件,并在相同服务器或不同服务器运行的相同应用程序或不同应用程序中接收事件的方法。
2.Guid.parse()和new Guid()
解析:
var myguid = Guid.Parse("9546482E-887A-4CAB-A403-AD9C326FFDA5");
var myguid = new Guid("9546482E-887A-4CAB-A403-AD9C326FFDA5");
说明:Guid.TryParse()。
3.Entity<Guid>
解析:Entity<TKey>类只是用给定的主键类型定义了一个Id属性。
4.GuidGenerator类型
解析:GuidGenerator类型是IGuidGenerator,它是在ApplicationService基类中定义的属性。
5.AggregateRoot<TKey>类
解析:
[1]AggregateRoot<TKey>类继承自Entity<TKey>类,所以默认有Id这个属性。
[2]ABP会默认为聚合根创建仓储,当然ABP也可以为所有的实体创建仓储。
[3]如果不想聚合根继承AggregateRoot<TKey>类,可以直接实现IAggregateRoot<TKey>接口。
6.审计接口
解析:
[1]IHasCreationTime定义了以下属性:CreationTime
[2]IMayHaveCreator定义了以下属性:CreatorId
[3]ICreationAuditedObject继承IHasCreationTime和IMayHaveCreator,所以它定义了以下属性:CreationTime和CreatorId
[4]IHasModificationTime定义了以下属性:LastModificationTime
[5]IModificationAuditedObject扩展IHasModificationTime并添加了LastModifierId属性,所以它定义了以下属性:LastModificationTime、LastModifierId
[6]IAuditedObject扩展ICreationAuditedObject和IModificationAuditedObject,所以它定义了以下属性:CreationTime、CreatorId、LastModificationTime、LastModifierId
[7]ISoftDelete定义了以下属性:IsDeleted
[8]IHasDeletionTime扩展ISoftDelete并添加了DeletionTime属性,所以它定义了以下属性:IsDeleted、DeletionTime
[9]IDeletionAuditedObject扩展IHasDeletionTime并添加了DeleterId属性,所以它定义了以下属性:IsDeleted、DeletionTime、DeleterId
[10]IFullAuditedObject继承IAuditedObject和IDeletionAuditedObject,所以它定义了以下属性:CreationTime、CreatorId、LastModificationTime、LastModifierId、IsDeleted、DeletionTime、DeleterId
7.审计基类
解析:
[1]CreationAuditedEntity<TKey>和CreationAuditedAggregateRoot<TKey>实现了ICreationAuditedObject接口
[2]AuditedEntity<TKey>和AuditedAggregateRoot<TKey>实现了IAuditedObject接口
[3]FullAuditedEntity<TKey>andFullAuditedAggregateRoot<TKey>实现了IFullAuditedObject接口
8.IHasExtraProperties接口
解析:
[1]ABP定义了IHasExtraProperties接口,可以由实体实现,以便能够动态地设置和获取的实体属性。
[2]IHasExtraProperties要求实现类定义一个名称为ExtraProperties的Dictionary<string,object>属性。
9.HasProperty和RemoveProperty扩展方法
解析:
[1]HasProperty:用于检查对象是否设置了属性
[2]RemoveProperty:用于从对象中删除属性,可以使用它来替代设置null值
10.Test项目
解析:
[1].Domain.Tests:用于测试领域层
[2].Application.Tests:用于测试应用层
[3].EntityFrameworkCore.Tests:用于测试EF Core配置与自定义仓储
[4].Web.Tests:用于测试UI[适用于ASP.NET Core MVC UI]
[5].TestBase:所有测试项目的基础[共享]项目
11.IDataSeedContributor接口
解析:
[1]将数据种子化到数据库需要实现IDataSeedContributor接口
[2]IDataSeedContributor定义了SeedAsync方法用于执行数据种子逻辑
12.DataSeedContext
解析:
[1]如果应用程序是多租户,DataSeedContext包含TenantId,因此可以在插入数据或基于租户执行自定义逻辑时使用该值
[2]DataSeedContext还包含用于从IDataSeeder传递到种子提供者的name-value配置参数
[3]一个应用程序可以具有多个种子数据贡献者[IDataSeedContributor]类,任何可重用模块也可以实现此接口播种其自己的初始数据
13.IDataSeeder类
解析:
[1]IDataSeeder是用于生成初始数据的主要服务
[2]可以注入IDataSeeder,并且在需要时使用它初始化种子数据,它内部调用IDataSeedContributor的实现去完成数据播种
14.Func<T,TResult>形式
解析:
[1]Func<T,TResult>
[2]Func<T,T1,TResult>
[3]Func<T,T1,T2,TResult>
[4]Func<T,T1,T2,T3,TResult>
[5]Func<T,T1,T2,T3,T4,TResult>
TResult表示委托所返回值所代表的类型,而T、T1、T2、T3、T4表示委托所调用的方法的参数类型。
15.客户端代理生成
解析:
[1]Install-Package Volo.Abp.Http.Client。
[2]AddHttpClientproxies方法获得一个程序集,找到这个程序集中所有的服务接口,创建并注册代理类。
16.IHttpClientProxy接口
解析:
[1]可以通过注入IBookAppService来使用客户端代理
[2]可以注入IHttpClientProxy<IBookAppService>获取更多明确的用法,这种情况下可以使用IHttpClientProxy<T>接口的Service属性
17.AbpRemoteServiceOptions
解析:
[1]默认情况下AbpRemoteServiceOptions从appsettings.json获取
[2]可以使用Configure方法来设置或重写它
18.自动API控制器
解析:
19.HTTP Method
解析:ABP在确定服务方法的HTTP Method时使用命名约定:
[1]Get:如果方法名称以GetList、GetAll或Get开头
[2]Put:如果方法名称以Put或Update开头
[3]Delete:如果方法名称以Delete或Remove开头
[4]Post:如果方法名称以Create、Add、Insert或Post开头
[5]Patch:如果方法名称以Patch开头.
[6]其它情况:Post为默认方式
20.IRemoteService接口
解析:如果一个类实现了IRemoteService接口,那么它会被自动选择为API控制器。由于应用程序服务本身实现了IRemoteService接口,因此它自然就成为API控制器。
21.RemoteService Attribute
解析:RemoteService可用于将实现IRemoteService接口的类标记为远程服务或禁用它。
22.固有的注册类型
解析:一些特定类型会默认注册到依赖注入:
[1]模块类注册为singleton
[2]MVC控制器[继承Controller或AbpController]被注册为transient
[3]MVC页面模型[继承PageModel或AbpPageModel]被注册为transient
[4]MVC视图组件[继承ViewComponent或AbpViewComponent]被注册为transient
[5]应用程序服务[实现IApplicationService接口或继承ApplicationService类]注册为transient
[6]存储库[实现IRepository接口]注册为transient
[7]域服务[实现IDomainService接口]注册为transient
23.依赖接口
解析:
[1]ITransientDependency:注册为transient生命周期
[2]ISingletonDependency:注册为singleton生命周期
[3]IScopedDependency:注册为scoped生命周期
24.Dependency特性
解析:配置依赖注入服务的另一种方法是使用DependencyAttribute:
[1]Lifetime:注册的生命周期Singleton、Transient或Scoped
[2]TryRegister:设置true则只注册以前未注册的服务,使用IServiceCollection的TryAdd … 扩展方法
[3]ReplaceServices:设置true则替换之前已经注册过的服务,使用IServiceCollection的Replace扩展方法
25.IAsyncQueryableExecuter
解析:IAsyncQueryableExecuter是一个用于异步执行IQueryable<T>对象的服务,不依赖于实际的数据库提供程序。
ABP VNext学习日记4相关推荐
- ABP VNext学习日记17
1.public static Assembly GetExecutingAssembly() 解析:得到包含的代码正在执行的程序集. 2.public interface IHostedServic ...
- ABP VNext学习日记20
1.AbpApiControllerActivator 解析:实现了IHttpControllerActivator接口,根据controller的类型生成指定的controller. 2.AbpDy ...
- ABP VNext学习日记15
1.Polly服务容错模式 解析: [1]错误处理fault handling:重试.熔断.回退 [2]弹性应变resilience:超时.舱壁.缓存 2.Polly错误处理步骤 解析: [1]定义条 ...
- ABP VNext学习日记3
1.ABP中的DTO 解析:在ABP的设计中,有两种不同类型的DTO,分别是用于新增.修改.删除的Input DTO,和用于查询的Output DTO. 2.Unit of Work 解析:工作单元与 ...
- ABP VNext学习日记21
1.public class PagedResultDto<T> : ListResultDto<T>, IPagedResult<T> 解析: public lo ...
- ABP VNext学习日记30
1.IDS4中的/connect/token接口 解析:固定写法,不是开发自定义的,只需要直接去使用就行了,注意调用方式时的输入参数. 2.RequestPasswordTokenAsync 解析: ...
- ABP VNext学习日记18
1.IAuthorizationService 解析:IAuthorizationService具有两个AuthorizeAsync方法重载:一个接受资源和策略名称,另一个接受资源并提供要评估的要求的 ...
- ABP VNext学习日记22
1.PreConfigureServices和PostConfigureServices 解析:AbpModule类还定义了PreConfigureServices和PostConfigureServ ...
- ABP VNext学习日记1
1.安装和更新ABP CLI 解析: dotnet tool install -g Volo.Abp.Cli dotnet tool update -g Volo.Abp.Cli 2.模块拆分原则 解 ...
- ABP VNext学习日记14
1.Abp.AbpBootstrapper 解析:这是一个主类,它负责开始全部的ABP系统. 2.Abp.Dependency.IocManager 解析:这个类用于直接执行依赖注入任务. 3.voi ...
最新文章
- with as python_python - with as的用法
- ES6笔记(4)-- Symbol类型
- 3gpp协议_【5G学习笔记】3GPP 5G协议分类清单大全
- EBS 常见的AD命令
- 《Python Cookbook 3rd》笔记(4.14):展开嵌套的序列
- python 复现AC自动机
- 6-6-阶段案例:传智书城JSP页面
- mysql 修改字段长度
- char* char [] 区别[zz]
- 全民营销,只看这篇文章就够了
- Android6.0 源码修改之屏蔽系统短信功能和来电功能
- Oracle备份与恢复-误删数据文件恢复(非归档模式)
- Python:索引总结
- 将dubbo暴露HTTP服务
- docker update修改内存/cpu
- Apache Commons Poo GenericObjectPool 避免泄漏
- 实现图片验证码与手机短信验证码
- STM32——浅谈睡眠模式、停机模式、待机模式
- java基于SSM的手机商城
- PCBA加工波峰焊空焊原因及对策