Abp vNext 模块化系统简单介绍
怎么使用模块
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 模块化系统简单介绍的更多相关文章
- ABP VNext框架基础知识介绍(1)--框架基础类继承关系
在我较早的时候,就开始研究和介绍ABP框架,ABP框架相对一些其他的框架,它整合了很多.net core的新技术和相关应用场景,虽然最早开始ABP框架是基于.net framework,后来也全部转向 ...
- ABP VNext框架基础知识介绍(2)--微服务的网关
ABP VNext框架如果不考虑在微服务上的应用,也就是开发单体应用解决方案,虽然也是模块化开发,但其集成使用的难度会降低一个层级,不过ABP VNext和ABP框架一样,基础内容都会设计很多内容,如 ...
- 尝试从零开始构建我的商城 (一) :使用Abp vNext快速一个简单的商城项目
尝试从零开始构建我的商城 (一) :使用Abp vNext快速搭建一个简单的项目 前言 GitHub地址 https://github.com/yingpanwang/MyShop 此文目的 本文将尝 ...
- ABP vnext模块化架构的最佳实践的实现
在上一篇文章<手把手教你用Abp vnext构建API接口服务>中,我们用ABP vnext实现了WebAPI接口服务,但是并非ABP模块化架构的最佳实践.我本身也在学习ABP,我认为AB ...
- [Abp vNext 源码分析] - 18. 单元测试
简介 ABP vNext 框架使用 xUnit 作为单元测试组件,官方的所有模块都编写了大量的 单元/集成测试 确保功能正常.由于 ABP vNext 模块化系统的原因,开发人员在建立单元测试项目的时 ...
- 浅谈Abp vNext的模块化设计
abp的模块化给我留下深刻的印象,模块化不是什么新概念,大家都习以为常,但是为什么要模块化,模块化的意义或者说目的是什么?也许我们思考得并不深入.难得的是abp不仅完美的阐述了模块化概念,而且把模块化 ...
- 利用代码生成工具Database2Sharp生成ABP VNext框架项目代码
我们在做某件事情的时候,一般需要详细了解它的特点,以及内在的逻辑关系,一旦我们详细了解了整个事物后,就可以通过一些辅助手段来提高我们的做事情的效率了.本篇随笔介绍ABP VNext框架各分层项目的规则 ...
- abp vnext 开发快速入门 3 实现权限控制
上篇讲了abp vnext 实现了简单的增加操作的例子.删除更新查询基本类似,这里就不讲了,接下来说下如何实现角色权限控制. 再说之前,先说下如果想更加透彻的理解abp vnext的权限控制,最好是先 ...
- abp vnext 调试
在用Abp或者asp.net core 开发过程中,难免会遇到稀奇古怪的问题,需要对底层源代码进行调试,下面就教大家如何通过配置Visual Studio 2019来进行调试: 首先我们通过查看Abp ...
- [译]ABP vNext介绍
译者注 ASP.NET Boilerplate是.Net平台非常优秀的一个开源Web应用程序框架,在国内也有大量的粉丝. 近日, 本人在github上闲逛, 发现ASP.NET Boilerplate ...
随机推荐
- centos中普通用户使用sudo报错:centos is not in the sudoers file. This incident will be reported.
centos中普通用户使用sudo报错:centos is not in the sudoers file. This incident will be reported. su - chmod u+ ...
- 解决:Failed to get D-Bus connection: Operation not permitted
docker中安装完httpd服务后,使用命令systemctl start httpd.service,发现报错,错误信息:Failed to get D-Bus connection: Opera ...
- Docker基础 ubuntu安装docker
目录 如何在Linux深度系统deepin下安装docker 介绍 安装docker 在ubuntu的docker中运行ubuntu 在ubuntu的docker中运行centos 卸载docker ...
- nim 6. 使用包
本来想按照制作包 - 发布包 - 使用包的顺序写.发现制作包一时还没搞懂,先看看怎么使用包吧. nim的包管理工具,是自带的 nimble. nimble的官方包列表是:Nim package di ...
- JavaScript 实现前端文件下载
A.download HTML5的A标签有一个download属性,可以告诉浏览器下载而非预览文件,很实用,参考链接:http://www.zhangxinxu.com/wordpress/2016/ ...
- 腾讯、阿里、B站最新面经汇总,有的妥妥的凉经。
除了BAT(没错我说的B是B站的B),还有网易.希音科技.美柚等中小厂的最新面经. 这次投稿的同学行文幽默风趣,处处透漏着不成功便搞笑的骚气. 祝他早日上岸,也欢迎大家在评论区讨论这些面试题,有哪些面 ...
- C 语言编程 — 堆栈与内存管理
目录 文章目录 目录 前文列表 栈(Stack)和堆(Heap) 栈 堆 内存管理 动态分配内存 重新调整内存的大小和释放内存 前文列表 <程序编译流程与 GCC 编译器> <C 语 ...
- ASP.NET Core如何禁用模型验证(或者从模型状态中移除某些属性)?
这是一篇4年前的文章:[经验分享]在ASP.NET Core中,如果禁用某个请求的模型验证? 事隔多年,又有网友问到这个问题.我就来重新整理一下,顺便扩展一下之前的解决办法. ===== 这是一个来自 ...
- systemctl管理自定义服务模版
一 日常工作中,有许多需要使用systemctl进行管理服务的时候 [Unit] Description=radius Release [Service] ExecStart=/etc/init.d ...
- MLOps 学习之旅「GitHub 热点速览」
又是 AI 神仙打架的一周,上周 OpenAI 发布了最新的 GPT-4o 模型,而谷歌也紧跟着开源了 Gemma 2 模型.随着 AI 大模型不断地变强,各大科技巨头正利用它们重塑自家的产品,这也让 ...