[Abp vNext 源码分析] - 文章目录
一、简要介绍
ABP vNext 是 ABP 框架作者所发起的新项目,目前可以用于生产环境。新的 ABP vNext 框架完全是基于 ASP .NET Core 进行开发,其完全模块化的组件库能够让开发人员拥有更多的选择空间。
ABP vNext 框架核心库比 ABP 框架更加精简,因为将原有许多的组件从其核心库抽离成独立的组件。这样开发人员可以更加灵活的选择自己需要的功能进行集成,使项目远离臃肿的库。
当然新的框架也是基于多租户体系,不同租户的数据相互隔离,在开发人员进行编码的时候完全感受不到多租户的存在。
比起原有的 ABP 框架,我在这里总结了 ABP vNext 比 ABP 框架所提升的点。
- 完全基于 ASP .NET Core,丢掉了历史包袱,设计更加合理。
- ABP vNext 主要聚焦于微服务架构,便于开发人员构建自己的微服务系统。
- 更加细粒度的模块化设计,为现有应用 ABP 框架的项目减负,开发人员能够自主选择自己需要的组件。
- ABP vNext 提供了虚拟文件系统,方便资源文件在不同的项目中重用。
- 支持替换 DI 框架,可以自己选择需要使用的 DI 框架。(ABP vNext 使用的是 Autofac)
二、系列文章
因为 ABP vNext 还处于预览版 (Preview) 状态,后续 ABP vNext 框架可能会有重大改动。故本系列文章主要用于学习与研究其设计思路,不适合用于 ABP vNext 的教学资料/使用文档。
- 《[Abp vNext 源码分析] - 1. 框架启动流程分析》[点击我跳转]
- 《[Abp vNext 源码分析] - 2. 模块系统的变化》[点击我跳转]
- 《[Abp vNext 源码分析] - 3. 依赖注入与拦截器》[点击我跳转]
- 《[Abp vNext 源码分析] - 4. 工作单元》[点击我跳转]
- 《[Abp vNext 源码分析] - 5. DDD 的领域层支持(仓储、实体、值对象)》 [点击我跳转]
- 《[Abp vNext 源码分析] - 6. DDD 的应用层支持(应用服务)》[点击我跳转]
- 《[Abp vNext 源码分析] - 7. 权限与验证》[点击我跳转]
- 《[Abp vNext 源码分析] - 8. 审计日志》[点击我跳转]
- 《[Abp vNext 源码分析] - 9. 接口参数的验证》[点击我跳转]
- 《[Abp vNext 源码分析] - 10. 框架的模块配置系统》
- 《[Abp vNext 源码分析] - 11. 用户的自定义参数与配置》[点击我跳转]
- 《[Abp vNext 源码分析] - 12. 后台作业与后台工作者》[点击我跳转]
- 《[Abp vNext 源码分析] - 13. 本地事件总线与分布式事件总线(Rabbit MQ)》[点击我跳转]
- 《[Abp vNext 源码分析] - 14. EntityFramework Core 的集成》[点击我跳转]
- 《[Abp vNext 源码分析] - 15. ASP.NET Core Mvc 集成》
- 《[Abp vNext 源码分析] - 16. 对象自动映射功能 与 AutoMapper》
- 《[Abp vNext 源码分析] - 17. 流畅验证)》
- 《[Abp vNext 源码分析] - 18. 单元测试)》
- 《[Abp vNext 源码分析] - 19. 多租户》[点击我跳转]
- 《[Abp vNext 源码分析] - 20. 电子邮件与短信支持)》
- 《[Abp vNext 源码分析] - 21. 界面与文字的本地化)》[点击我跳转]
- 《[Abp vNext 源码分析] - 22. 微服务的支持与实践)》
- 《[Abp vNext 源码分析] - 23. 二进制大对象系统(BLOB)》[点击我跳转]
三、结语
.NET Core 平台在 2018 年已经相继发布了多个稳定版本,其中 2.0 以后的 .NET Core 其实已经可以用于生产环境进行使用。基于 .NET Core 平台的项目也犹如雨后春笋般拔地而起,其中最具代表性的项目如 Ocelot、DotNetCAP、AspectCore-Framework、surging、DotnetSpider、ABP vNext、Avalonia。
我也相信今后的 .NET Core 生态也会越来越繁荣,在这里我也会通过解析优秀 .NET Core 项目的源码实现让大家了解这些优秀项目的设计是如何实现的,有哪些地方值得我们去学习借鉴。
当然,我也希望大家不仅仅是要追求新的技术,打实基础才是后续发展的根本。在这里,我借用侯捷老师的一句话来说 “万丈高楼平地起,勿在浮沙筑高台” - 《深入浅出 MFC》 (侯捷)。