一、Abp vNext 基础篇丨介绍
缘起
在.Net行也目前工作5年,前年认识了老张的哲学
,也跟着一起学习了非常多的知识,非常感谢老张鼓励我来做ABP这个系列的教程,我也努努力带着我那小小的海漂梦(上海漂流)来搞起。
ABP vNext 简要介绍
ABP vNext 框架是一个基于ASP.NET核心的完整基础设施,通过遵循软件开发最佳实践和最新技术来创建现代web应用程序和API,不同于老的ABP框架新的 ABP vNext 框架核心库更加精简,因为将原有许多的组件从其核心库抽离成独立的组件。这样开发人员可以更加灵活的选择自己需要的功能进行集成,使项目远离臃肿的库,比起原有的 ABP 框架 ABP vNext 完全基于 ASP.NET Core 丢掉了历史包袱,设计更加合理,更加细粒度的模块化设计。
Abp vNext 官方文档提供了非常全面的功能介绍,官方提供了启动模板,模板遵循了领域驱动设计的最佳实践来进行项目分层,引入了常用的功能模块。
如果你有不错的.Net基础那么Abp你用起来会的心用手,使用过程中遇到的问题几乎可以在官方文档和Issues中找到并解决。
但如果你是一个 .Net 新手你不知道什么是依赖注入、模块化、DDD 推荐先去 https://www.cnblogs.com/laozhang-is-phi/p/9495618.html#autoid-1-0-0
学习一下。
后续文章中出现的ABP都是指ABP vNext。
开篇简介
Bcvp.Blog.Core
是基于老张的哲学
Blog.Core项目采用ABP vNext框架和DDD思想进行重构的项目,教程面向.Net Core初中级开发人员,从基础项目搭建开始一步步学习使用ABP vNext框架并在开发中融入DDD思想。
整篇文章目前会分为3个阶段分别是。
- 基础篇(学习ABP vNext框架和DDD)。
- 中级篇(学习模块化和部分源代码)。
- 高级篇(ABP vNext微服务)。
组织地址:
https://github.com/BaseCoreVueProject
作者博客:
https://www.cnblogs.com/MrChuJiu/
框架功能
整体教程会设计的功能介绍如下,下图为ABP官方商业版,我们只抽取部分功能进行实现。
前端框架目前采用Bcvp组织的:https://github.com/BaseCoreVueProject/angular-template 作为前端教程框架,暂时不推荐将该框架应用生产(不是技术问题),ABP官方的目前正在推行LeptonX应该会有新的进展
ABP 自带功能
- Saas管理
- 组织管理
- 角色管理
- 审计日志
- 系统设置
业务功能
- 博客管理
- 文章管理
前端站点
- 发布文章
- 用户登录/注册
- 文章评论
项目分层依赖关系
Domain.Shared 其他项⽬直接或间接引⽤,项⽬中定义的类型在所有项⽬中共享。
Domain 只引⽤ Domain.Shared ,⽐如:在 Domain.Shared 中定义的 IssuType 枚举类型需要 在 Domain 项⽬中 Issue 实体中⽤到。
Application.Contracts 依赖 Domain.Shared ,这样我们可以在 DTOs 中使⽤这些共享类型。 ⽐如: CreateIssueDto 中可以直接使⽤ IssueType 枚举。
Application 依赖 Application.Contracts ,因为 Application 实现 Application.Contracts 中定义的服务接⼝和使⽤ DTO 对象。同时,引⽤ Domain 项⽬,在应 ⽤服务中使⽤仓储接⼝或领域对象。
EntiryFrameworkCore 依赖 Domain ,映射 Domain 对象(实体和值类型)到数据库表 (ORM)并实现在 Domain 中定义的仓储接⼝。
HttpApi 依赖 Application.Contract ,在控制器在内部对 应⽤服务接⼝ 进⾏依赖注⼊。
HttpApi.Client 依赖 Application.Contract 消费应⽤服务 Web 依赖 HttpApi ,发布⾥⾯定义的 HTTP APIs 。另外,通过这种⽅式,它间接地依赖于 Application.Contracts 项⽬,可以在⻚⾯/组件中使⽤应⽤服务
结语
本节只是作为一个开篇讲解希望各位持续关注
联系作者:加群:867095512 @MrChuJiu