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相关推荐

  1. ABP VNext学习日记17

    1.public static Assembly GetExecutingAssembly() 解析:得到包含的代码正在执行的程序集. 2.public interface IHostedServic ...

  2. ABP VNext学习日记20

    1.AbpApiControllerActivator 解析:实现了IHttpControllerActivator接口,根据controller的类型生成指定的controller. 2.AbpDy ...

  3. ABP VNext学习日记15

    1.Polly服务容错模式 解析: [1]错误处理fault handling:重试.熔断.回退 [2]弹性应变resilience:超时.舱壁.缓存 2.Polly错误处理步骤 解析: [1]定义条 ...

  4. ABP VNext学习日记3

    1.ABP中的DTO 解析:在ABP的设计中,有两种不同类型的DTO,分别是用于新增.修改.删除的Input DTO,和用于查询的Output DTO. 2.Unit of Work 解析:工作单元与 ...

  5. ABP VNext学习日记18

    1.IAuthorizationService 解析:IAuthorizationService具有两个AuthorizeAsync方法重载:一个接受资源和策略名称,另一个接受资源并提供要评估的要求的 ...

  6. ABP VNext学习日记22

    1.PreConfigureServices和PostConfigureServices 解析:AbpModule类还定义了PreConfigureServices和PostConfigureServ ...

  7. ABP VNext学习日记1

    1.安装和更新ABP CLI 解析: dotnet tool install -g Volo.Abp.Cli dotnet tool update -g Volo.Abp.Cli 2.模块拆分原则 解 ...

  8. ABP VNext学习日记14

    1.Abp.AbpBootstrapper 解析:这是一个主类,它负责开始全部的ABP系统. 2.Abp.Dependency.IocManager 解析:这个类用于直接执行依赖注入任务. 3.voi ...

  9. ABP VNext学习日记5

    1.ABP后台模块 解析: [1]Volo.Abp.Threading:提供了一些常用的线程组件,其中AbpTimer就是在里面实现的. [2]Volo.Abp.BackgroundWorkers:后 ...

最新文章

  1. 机器学习(MACHINE LEARNING)主成分分析(PCA降维)
  2. bupt summer training for 16 #2 ——计算几何
  3. Redis持久化实践及灾难恢复模拟
  4. 主从mysql能过滤指定dml吗_MyCat教程二:mysql主从复制实现 - HG-93
  5. 线性拟合和梯度下降python代码实现—面向对象(二)
  6. grafana 创建仪表盘_创建仪表盘前要问的三个问题
  7. 3件Unreal Engine 3不得不说的故事
  8. zipkin brave mysql_Zipkin和Brave实现http服务调用的跟踪
  9. SpringMVC框架----SessionAttribute注解
  10. bootstrap页面布局
  11. [bzoj4278][ONTAK2015]Tasowanie_后缀数组_贪心
  12. java 企业微信对接_Java对接企业微信
  13. 明解C语言(入门篇)第十一章
  14. java进出口食品安全信息管理系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  15. 【预研】关于互联网广告:半小时读懂互联网广告新生态
  16. python量化期权_如何20小时搞定Python量化期权实战?
  17. 中冠百年|上班族如何增加自己的收入
  18. 一些因吹斯汀的题目记录
  19. Matlab工具箱标定
  20. Cesium路径回放

热门文章

  1. 经典算法大全51例——3.杨辉三角(又称帕斯卡三角形)
  2. 2020年11月14日
  3. 细细品味hadoop
  4. 细细品味Flex——BlazeDS开发指南
  5. Python中文件操作(读、写、关闭)
  6. TCP的三次握手各字段(ack,seq,ACK,SYN)是什么意思?
  7. bsf dfs 专题(一)
  8. InfoPath 开发
  9. pandas处理Excel基本方法
  10. 数据可视化BI平台选型调研报告 Superset VS Redash VS Metabase