ABP VNext学习日记21
1.public class PagedResultDto<T> : ListResultDto<T>, IPagedResult<T>
解析:
public long TotalCount { get; set; }
2.public class ListResultDto<T> : IListResult<T>
解析:
public IReadOnlyList<T> Items;
private IReadOnlyList<T> _items;
3.public interface IListResult<T>
解析:
IReadOnlyList<T> Items { get; set; }
4.public interface IHasTotalCount
解析:
long TotalCount { get; set; }
5.Volo.Abp.Localization…Abstractions
解析:public class LocalizationResourceNameAttribute: Attribute
6.Volo.Abp.VirtualFileSystem
解析:public class AbpVirtualFileSystemOptions
7.Volo.Abp.Authorization.Permissions
解析:
public abstract class PermissionDefinitionProvider: IPermissionDefinitionProvider, ITransientDependency
8.AutoMapper
解析:
public abstract class Profile: IProfileExpression, IProfileConfiguration
9.AOP应用范围
解析:日记功能,审计功能,验证功能,安全控制,事务处理,异常处理,本地化,数据库连接管理,设置管理等。
10.AOP实现方式
解析:
[1]过滤器[Filter]:适用于身份验证、参数验证、处理耗时的Web服务
[2]动态代理[DynamicProxy]:适用功能模块间的解耦和重用
[3]中间件[Middleware]:适用底层服务的通信
11.AOP框架
解析:
[1]编译时:PostSharp、LinFu、SheepAspect、Fody、CIL
[2]运行时:Castle Windsor、StructureMap、Unity、Spring.NET
12.ABP仓储提供方法
解析:
[1]提供Insert方法用于保存新实体
[2]提供Update和Delete方法通过实体或实体id更新或删除实体
[3]提供Delete方法使用条件表达式过滤删除多个实体
[4]实现了IQueryable,可以使用LINQ和扩展方法FirstOrDefault、Where、OrderBy、ToList等
[5]所有方法都具有sync和async版本
13.ICrudAppService 接口
解析:
public interface ICrudAppService<TEntityDto,in TKey,in TGetListInput,in TCreateInput,in TUpdateInput>: IApplicationServicewhere TEntityDto : IEntityDto<TKey>
{Task<TEntityDto> GetAsync(TKey id);Task<PagedResultDto<TEntityDto>> GetListAsync(TGetListInput input);Task<TEntityDto> CreateAsync(TCreateInput input);Task<TEntityDto> UpdateAsync(TKey id, TUpdateInput input);Task DeleteAsync(TKey id);
}
14.ABP动态API接口生成规则
解析:
[1]Get:如果方法名称以GetList,GetAll或Get开头
[2]Put:如果方法名称以Put或Update开头
[3]Delete:如果方法名称以Delete或Remove开头
[4]Post:如果方法名称以Create,Add,Insert或Post开头
[5]Patch:如果方法名称以Patch开头
[6]其它情况:Post为默认方式
15.不使用ABP框架自带的返回格式
解析:在类或者方法上加上[DontWrapResult]特性。
16.abp <command> <target> [options]
解析:
[1]help: Show command line help. Write abp help \<command\>
[2]new: Generate a new solution based on the ABP startup templates
[3]get-source: Download the source code of the specified module
[4]update: Update all ABP related NuGet packages and NPM packages in a solution or project to the latest version
[5]add-package: Add a new ABP package to a project by adding related NuGet package dependencies and [DependsOn(...)] attributes
[6]add-module: Add a multi-package module to a solution by finding all packages of the module, finding related projects in the solution and adding each package to the corresponding project in the solution
[7]login: Sign in to https://account.abp.io/
[8]logout: Sign out from https://account.abp.io/
[9]generate-proxy: Generates Angular service proxies and DTOs to consume HTTP APIs
[10]remove-proxy: Generates Angular service proxies and DTOs to consume HTTP APIs
[11]suite: Install, update, remove or start ABP Suite. See https://commercial.abp.io/tools/suite
[12]switch-to-preview: Switches packages to preview ABP version
[13]switch-to-stable: Switches packages to stable ABP version from preview version
[14]switch-to-nightly: Switches packages to nightly preview ABP version
[15]translate: Mainly used to translate ABP's resources (JSON files) easier
[16]build: Builds a dotnet repository and dependent repositories or a solution
[17]bundle: Bundles all third party styles and scripts required by modules and updates index.html file
[18]create-migration-and-run-migrator
17.更新Volo.Abp.Cli和EasyAbp.AbpHelper
解析:
[1]dotnet tool update -g Volo.Abp.Cli
[2]dotnet tool update EasyAbp.AbpHelper -g
18.abphelper命令
解析:
abphelper [options] [command]Options:--version Show version information-?, -h, --help Show help and usage informationCommands:module Help quickly install/update/uninstall ABP modules. See 'abphelper module --help' for detailsgen, generate Generate files for ABP projects. See 'abphelper generate --help' for detailsef A shortcut to run 'dotnet ef' commands. See 'abphelper ef --help' for details
19.abphelper generate --help
解析:
generate:Generate files for ABP projects. See 'abphelper generate --help' for detailsUsage:abphelper generate [options] [command]Options:-?, -h, --help Show help and usage informationCommands:crud <entity> Generate a set of CRUD related files according to the specified entityservice <name> Generate service interface and class files according to the specified namemethods <method-names> Generate service method(s) according to the specified name(s)localization <names> Generate localization item(s) according to the specified name(s)controller <name> Generate controller class and methods according to the specified service
20.abp new <project-name> [options]命令
解析:
-t|--template <template-name> (default: app)
-u|--ui <ui-framework> (if supported by the template)
-m|--mobile <mobile-framework> (if supported by the template)
-d|--database-provider <database-provider> (if supported by the template)
-o|--output-folder <output-folder> (default: current folder)
-v|--version <version> (default: latest version)
--preview (Use latest pre-release version if there is at least one pre-release after latest stable version)
-ts|--template-source <template-source> (your local or network abp template source)
-csf|--create-solution-folder (default: true)
-cs|--connection-string <connection-string> (your database connection string)
--dbms <database-management-system> (your database management system)
--tiered (if supported by the template)
--no-ui (if supported by the template)
--no-random-port (Use template's default ports)
--separate-identity-server (if supported by the template)
--local-framework-ref --abp-path <your-local-abp-repo-path> (keeps local references to projects instead of replacing with NuGet package references)
相关例子如下所示:
abp new Acme.BookStore
abp new Acme.BookStore --tiered
abp new Acme.BookStore -u angular
abp new Acme.BookStore -u angular -d mongodb
abp new Acme.BookStore -m none
abp new Acme.BookStore -m react-native
abp new Acme.BookStore -d mongodb
abp new Acme.BookStore -d mongodb -o d:\my-project
abp new Acme.BookStore -t module
abp new Acme.BookStore -t module --no-ui
abp new Acme.BookStore -t console
abp new Acme.BookStore -ts "D:\localTemplate\abp"
abp new Acme.BookStore -csf false
abp new Acme.BookStore --local-framework-ref --abp-path "D:\github\abp"
abp new Acme.BookStore --dbms mysql
abp new Acme.BookStore --connection-string "Server=myServerName\myInstanceName;Database=myDatabase;User Id=myUsername;Password=myPassword"
21.public interface IMayHaveCreator
解析:Guid? CreatorId { get; }
说明:对于一个实体的标准接口,它可能有一个CreatorId。
22.public interface IAuditedObject : ICreationAuditedObject, IModificationAuditedObject
解析:这个接口被实现来增加一个标准审计实体到一个类中。
23.public abstract class FullAuditedAggregateRoot : AuditedAggregateRoot, IFullAuditedObject
解析:
public virtual bool IsDeleted { get; set; }
public virtual Guid? DeleterId { get; set; }
public virtual DateTime? DeletionTime { get; set; }
24.public abstract class FullAuditedEntity : AuditedEntity, IFullAuditedObject
解析:
public virtual bool IsDeleted { get; set; }
public virtual Guid? DeleterId { get; set; }
public virtual DateTime? DeletionTime { get; set; }
25.public interface IGeneratesDomainEvents
解析:
IEnumerable<object> GetLocalEvents();
IEnumerable<object> GetDistributedEvents();
void ClearLocalEvents();
void ClearDistributedEvents();
参考文献:
[1]AOP面向切面编程浅解析:https://www.cnblogs.com/laozhang-is-phi/p/9547574.html
[2]EasyAbp Team:https://github.com/EasyAbp
ABP VNext学习日记21相关推荐
- 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学习日记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 ...
- ABP VNext学习日记5
1.ABP后台模块 解析: [1]Volo.Abp.Threading:提供了一些常用的线程组件,其中AbpTimer就是在里面实现的. [2]Volo.Abp.BackgroundWorkers:后 ...
最新文章
- 机器学习(MACHINE LEARNING)主成分分析(PCA降维)
- bupt summer training for 16 #2 ——计算几何
- Redis持久化实践及灾难恢复模拟
- 主从mysql能过滤指定dml吗_MyCat教程二:mysql主从复制实现 - HG-93
- 线性拟合和梯度下降python代码实现—面向对象(二)
- grafana 创建仪表盘_创建仪表盘前要问的三个问题
- 3件Unreal Engine 3不得不说的故事
- zipkin brave mysql_Zipkin和Brave实现http服务调用的跟踪
- SpringMVC框架----SessionAttribute注解
- bootstrap页面布局
- [bzoj4278][ONTAK2015]Tasowanie_后缀数组_贪心
- java 企业微信对接_Java对接企业微信
- 明解C语言(入门篇)第十一章
- java进出口食品安全信息管理系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
- 【预研】关于互联网广告:半小时读懂互联网广告新生态
- python量化期权_如何20小时搞定Python量化期权实战?
- 中冠百年|上班族如何增加自己的收入
- 一些因吹斯汀的题目记录
- Matlab工具箱标定
- Cesium路径回放