怎么使用模块
1. 建立模块直接的依赖关系,可以通过DependsOnAttribute特性来确定依赖关系
2. 先配置模块,实现为模块填充数据和功能设置。
3. 使用模块提供的功能接口

怎么定义模块
1. 每个模块都应该定义一个模块类并继承AbpModule抽象了类
2. 通过DependsOnAttribute特性来关联需要使用的模块
3. 重写OnApplicationInitialization方法来初始化模块。也可以配置AspNetCore处理管道
4. 重写ConfigureServices

模块怎么加载
Abp系统在启动的时候才会通过反射扫描所有模块,每个模块可以通过DependsOnAttrbute特性来确定依赖关系。
ConfigureServices:是将你的服务添加到依赖注入系统并配置其他模块的主要方法
OnApplicationInitialization:初始化配置的所有模块的所有服务
OnApplicationShutdown:如果要在应用程序关闭时执行

Program.Main
|
Startup.ConfigureServices -> PreConfigureServices -> ConfigureServices -> PostConfigureServices -> OnPreApplicationInitialization -> OnApplicationInitialization -> OnPostApplicationInitialization
|
Application Shutdown

 目录结构

1. Application 为应用服务层,在这里编写服务的接口以及对应的实现
2. HttpApi.Hosting 相当于一个web项目,但这个主要依赖于HttpApi模块
3. HttpApi 职责主要是编写Controller,所有Api都写在这里,同时依赖于Application模块
4. Caching 缓存层
5. Application.Contracts 可以存放我们的传输对象(DTO),引用Domain.Shared
6. Domain 实体领域模型
7. Domain.Shared 层相当于Domain的一个扩展
8. EntityFrameworkCore自定义存储
9. ToolKits 扩展方法,公共工具类

Abp vNext 模块化系统简单介绍的更多相关文章

  1. ABP VNext框架基础知识介绍(1)--框架基础类继承关系

    在我较早的时候,就开始研究和介绍ABP框架,ABP框架相对一些其他的框架,它整合了很多.net core的新技术和相关应用场景,虽然最早开始ABP框架是基于.net framework,后来也全部转向 ...

  2. ABP VNext框架基础知识介绍(2)--微服务的网关

    ABP VNext框架如果不考虑在微服务上的应用,也就是开发单体应用解决方案,虽然也是模块化开发,但其集成使用的难度会降低一个层级,不过ABP VNext和ABP框架一样,基础内容都会设计很多内容,如 ...

  3. 尝试从零开始构建我的商城 (一) :使用Abp vNext快速一个简单的商城项目

    尝试从零开始构建我的商城 (一) :使用Abp vNext快速搭建一个简单的项目 前言 GitHub地址 https://github.com/yingpanwang/MyShop 此文目的 本文将尝 ...

  4. ABP vnext模块化架构的最佳实践的实现

    在上一篇文章<手把手教你用Abp vnext构建API接口服务>中,我们用ABP vnext实现了WebAPI接口服务,但是并非ABP模块化架构的最佳实践.我本身也在学习ABP,我认为AB ...

  5. [Abp vNext 源码分析] - 18. 单元测试

    简介 ABP vNext 框架使用 xUnit 作为单元测试组件,官方的所有模块都编写了大量的 单元/集成测试 确保功能正常.由于 ABP vNext 模块化系统的原因,开发人员在建立单元测试项目的时 ...

  6. 浅谈Abp vNext的模块化设计

    abp的模块化给我留下深刻的印象,模块化不是什么新概念,大家都习以为常,但是为什么要模块化,模块化的意义或者说目的是什么?也许我们思考得并不深入.难得的是abp不仅完美的阐述了模块化概念,而且把模块化 ...

  7. 利用代码生成工具Database2Sharp生成ABP VNext框架项目代码

    我们在做某件事情的时候,一般需要详细了解它的特点,以及内在的逻辑关系,一旦我们详细了解了整个事物后,就可以通过一些辅助手段来提高我们的做事情的效率了.本篇随笔介绍ABP VNext框架各分层项目的规则 ...

  8. abp vnext 开发快速入门 3 实现权限控制

    上篇讲了abp vnext 实现了简单的增加操作的例子.删除更新查询基本类似,这里就不讲了,接下来说下如何实现角色权限控制. 再说之前,先说下如果想更加透彻的理解abp vnext的权限控制,最好是先 ...

  9. abp vnext 调试

    在用Abp或者asp.net core 开发过程中,难免会遇到稀奇古怪的问题,需要对底层源代码进行调试,下面就教大家如何通过配置Visual Studio 2019来进行调试: 首先我们通过查看Abp ...

  10. [译]ABP vNext介绍

    译者注 ASP.NET Boilerplate是.Net平台非常优秀的一个开源Web应用程序框架,在国内也有大量的粉丝. 近日, 本人在github上闲逛, 发现ASP.NET Boilerplate ...

随机推荐

  1. WPF 使用 VideoDrawing 播放视频

    本文告诉大家如何在 WPF 使用 VideoDrawing 进行视频播放 用这个方法有什么优势?其实只是想作为某个控件的背景,某个控件的背景使用视频而已 控件的背景使用 DrawingBrush 传入 ...

  2. dotnet 在 UOS 国产系统上使用 MonoDevelop 进行拖控件开发 GTK 应用

    先从一个 Hello World 应用开始,试试和古老的 WinForms 一样的拖控件式开发 在创建完成一个 GTK# 2.0 应用之后,咱可以试试开始拖控件的开发,当然这个开发方式开发出来的应用界 ...

  3. 005_Orcad里创建Homogeneous分裂元件

    005_Orcad里创建Homogeneous分裂元件 两种类型Homogeneous和Hetergeneous的区别,都是用来把一个复杂的元件分成多个部分来画,不同的是homogeneous画的每部 ...

  4. HDU 多校 2023 Round #6 题解

    HDU 多校 2023 Round #6 题解 \(\text{By DaiRuiChen007}\) A. Count Problem Link 题目大意 求有多少个长度为 \(n\),字符集大小为 ...

  5. jeecg-boot中分页接口用自定义sql和list实现

    1.controller中 @ApiOperation(value="分析仪工作状态和报警-3列-分页", notes="分析仪工作状态和报警状态-分页") @ ...

  6. 处理flex布局

    点击查看代码 <view class="recommend-view"> <view class="title-view"> 热门推荐 ...

  7. 回顾复习x学习笔记

    从头回顾(截至搜索) #define fo(x,y,z) for(int (x)=(y);(x)<=(z);(x)++) #define foo(x,y,z) for(int (x)=(y);( ...

  8. C语言:ACLLIB图形库——如何搭建环境(附三个文件代码)

    看一下我配置完的运行结果: 1)首先创建一个项目. 2)选择win项目和C语言 3)然后找到你保存项目的文件夹里面拷贝两个.c和.h文件,两个文件代码我附在最后. 4)现在还不能用,找到项目属性 5) ...

  9. Flutter(九)Json序列化与反序列化(转Model)

    在日常开发中JSON的序列化与反序列化是一个常见的操作:而Dart语言不支持反射,运行时反射会影响Dart的tree shaking(摇树优化),tree shaking可以"抖掉" ...

  10. AI 画图真刺激,手把手教你如何用 ComfyUI 来画出刺激的图

    目前 AI 绘画领域的产品非常多,比如 Midjourney.Dalle3.Stability AI 等等,这些产品大体上可以分为两类: 模型与产品深度融合:比如 Midjourney.Dalle3 ...