ABP VNext学习日记25
1.public interface IHasConcurrencyStamp
解析:string ConcurrencyStamp { get; set; }
2.public interface IRouteTemplateProvider
解析:
string Template { get; }
int? Order { get; }
string Name { get; }
3.public abstract class PermissionDefinitionProvider
解析:
public virtual void PreDefine(IPermissionDefinitionContext context)
public abstract void Define(IPermissionDefinitionContext context)
public virtual void PostDefine(IPermissionDefinitionContext context)
4.public interface IPermissionDefinitionContext
解析:
IServiceProvider ServiceProvider { get; }
PermissionGroupDefinition GetGroup(string name);
PermissionGroupDefinition GetGroupOrNull(string name);
PermissionGroupDefinition AddGroup();
void RemoveGroup(string name);
PermissionDefinition GetPermissionOrNull(string name);
5.host文件夹
解析:host文件夹包含具有不同配置的应用程序,用于演示在应用程序中如何托管模块,这些不是模块的一部分,但开发时会很有用。
6.ICreationAuditedObject
解析:这个接口被实现来存储信息,谁和什么时候创建了信息。
DateTime CreationTime { get; }
Guid? CreatorId { get; }
7.IModificationAuditedObject
解析:这个接口被实现来存储信息,谁和什么时候修改了信息。
Guid? LastModifierId { get; set; }
DateTime? LastModificationTime { get; set; }
8.CreationAuditedAggregateRoot
解析:这个类被用来简化实现ICreationAuditedObject对于聚合根。
DateTime CreationTime { get; protected set; }
Guid? CreatorId { get; protected set; }
9.IAuditedObject
解析:这个接口能够被实现来增加标准审计属性到一个类中。
ICreationAuditedObject
IHasCreationTime
IMayHaveCreator
IModificationAuditedObject
IHasModificationTime
10.public interface IAbpModule
解析:
void ConfigureServices(ServiceConfigurationContext context);
11.options.AddDefaultRepositories(includeAllEntities: true)
解析:为DbContext中的所有实体注册默认仓储。
12.AddHttpClientProxies()方法
解析:在给定的程序集中,为所有扩展自IRemoteService接口的公开接口,注册HTTP客户端代理。
public static IServiceCollection AddHttpClientProxies(this IServiceCollection services, Assembly assembly, string remoteServiceConfigurationName = "Default", bool asDefaultServices = true)
13.public PropertyInfo[] GetProperties()
解析:返回当前类型的所有公共属性。
14.public class UserLookupCountInputDto
解析:
public string Filter { get; set; }
15.public interface IIdentityUserLookupAppService
解析:位于命名空间Volo.Abp.Identity中,包含方法:
Task<UserData> FindByIdAsync(Guid id);
Task<UserData> FindByUserNameAsync(string userName);
Task<ListResultDto<UserData>> SearchAsync(UserLookupSearchInputDto input);
Task<long> GetCountAsync(UserLookupCountInputDto input);
16.skip-cli-version-check
解析:跳过检查最新版本的ABP CLI。如果没有指定,它会检查最新版本,如果检查到ABP CLI的新版本,会显示一条警告消息。
17.ABP CLI命令
解析:
[1]help:展示ABP CLI的用法帮助信息
[2]new:生成基于ABP的启动模板
[3]update:自动更新的ABP解决方案ABP相关的NuGet和NPM包
[4]add-package:添加ABP包到项目
[5]add-module:添加应用模块到解决方案
[6]generate-proxy:生成客户端代理以使用HTTP API端点
[7]remove-proxy:移除以前生成的客户端代理
[8]switch-to-preview:切换到ABP框架的最新预览版本
[9]switch-to-nightly:切换解决方案所有ABP相关包为夜间构建版本
[10]switch-to-stable:切换解决方案所有ABP相关包为最新的稳定版本
[11]translate:当源代码控制存储库中有多个JSON[本地化]
[12]login:使用在abp.io的用户名和密码在你的计算机上认证
[13]logout:在计算机注销认证
[14]install-libs:为MVC/Razor Pages和Blazor Server UI类型安装NPM包
18.ABP默认泛型仓储
解析:
[1]ABP为实体提供默认的泛型仓储,可以使用它们来执行基本的数据库操作
[2]类中注入的IRepository<TodoItem,Guid>是TodoItem实体的默认存储库
19.Volo.Abp.Ddd.Application.Contracts
解析:
[1]IApplicationService
[2]ICreateAppService
[3]ICreateUpdateAppService
[4]ICrudAppService
[5]IDeleteAppService
[6]IReadOnlyAppService
[7]IUpdateAppService
20.Volo.Abp.Ddd.Application
解析:
[1]AbstractKeyCrudAppService
[2]AbstractKeyReadOnlyAppService
[3]ApplicationService
[4]CrudAppService
[5]ReadOnlyAppService
21.IRemoteService接口
解析:如果一个类实现了IRemoteService接口,那么它会被自动选择为API控制器。
22.ABP客户端代理生成
解析:Install-Package Volo.Abp.Http.Client。AddHttpClientproxies方法获得一个程序集,找到这个程序集中所有的服务接口,创建并注册代理类。
[DependsOn(typeof(AbpHttpClientModule), //用来创建客户端代理typeof(BookStoreApplicationContractsModule) //包含应用服务接口)]
public class MyClientAppModule : AbpModule
{public override void ConfigureServices(ServiceConfigurationContext context){//创建动态客户端代理context.Services.AddHttpClientProxies(typeof(BookStoreApplicationContractsModule).Assembly);}
}
23.ABP默认跨域配置代码
解析:
context.Services.AddCors(options =>
{options.AddPolicy(DefaultCorsPolicyName, builder =>{builder.WithOrigins(configuration["App:CorsOrigins"].Split(",", StringSplitOptions.RemoveEmptyEntries).Select(o => o.RemovePostFix("/")).ToArray()).WithAbpExposedHeaders().SetIsOriginAllowedToAllowWildcardSubdomains().AllowAnyHeader().AllowAnyMethod().AllowCredentials();});
});
24.ABP实现乐观锁
解析:AggregateRoot类实现了IHasExtraProperties和IHasConcurrencyStamp接口:
[1]IHasExtraProperties使实体可扩展
[2]IHasConcurrencyStamp添加了由ABP框架管理的ConcurrencyStamp属性实现乐观并发
25.Quartz.net实现单线程执行Job
解析:
[DisallowConcurrentExecutionAttribute]
public class QueryWork : QuartzBackgroundWorkerBase
{private IAppService _appService;public QueryWork(IAppService appService){_appService = appService;JobDetail = JobBuilder.Create<QueryWork>().WithIdentity(nameof(QueryWork)).Build();Trigger = TriggerBuilder.Create().WithIdentity(nameof(QueryWork)).WithDailyTimeIntervalSchedule(s => s.WithIntervalInSeconds(5)).Build();}public async override Task Execute(IJobExecutionContext context){await _appService.QueryAsync();}
}
ABP VNext学习日记25相关推荐
- 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学习日记2
1.框架模块和应用程序模块 解析: [1]框架模块:这些是框架的核心模块,比如缓存.邮件.主题.安全.序列化.验证.EF Core集成.MongoDB集成等.它们没有应用/业务功能,它们提供了日常开发 ...
- 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 ...
最新文章
- Nature:梁冠翔等发现肠道病毒组在新生儿体内分段寄生的模式
- 解析卷积的高速计算中的细节,一步步代码带你飞
- Spring mvc 转发、重定向
- HEVC支持苹果HLS的几个关键问题
- CasperJS基于PhantomJS抓取页面
- 一文解读使用WinDbg排查iis 中CPU占用高的站点问题
- 宣告推出.NET Core 3.0 Preview 7
- 单片机ADC采样算法----加权递推平均滤波法
- Deal with relational data using libFM with blocks
- 华为机试HJ64:MP3光标位置
- 同时安装 Python 2 和 Python 3环境下 pip 的使用
- 图片识别引擎tesseract-ocr安装
- Swift 5 UIStackView中添加自动换行的Label
- UDS学习笔记(六)——程序刷写
- 韩立刚老师 《计算机网络》视频课程目录
- 浅谈 Spring 中的设计模式
- 情境认知测量方法的研究
- 补肾常见中成药辩驳------右归丸、左归丸与桂附地黄丸、六味地黄丸
- 固定不动的层(兼容IE6)
- MarkdownPad 2 安装配置及常见问题
热门文章
- 嵊州D3T1 山魔 烙饼问题
- 零基础学 MySQL
- mysql中insert语句的五种用法
- 【网虫】做网站必知的两个命令 活用ping与tracert
- c语言编程高阶证书有用吗,信誉好:C语言编程高阶证什么报名流程那可以考取
- 树莓派4B系统一键安装opencv,再也不要用编译安装啦!(支持buster、bullseye)
- 成为顶级博主的秘诀是什么?《乘风者周刊》专访“处女座程序猿”牛亚运
- Excel数据处理:提取混合字符中的汉字
- 手感与画质兼备|广东未来科技AI立体数码相机
- 国产单片机GD32系列开坑,带你零死角玩转GD32 第五章