大话领域驱动设计——表示层及其他

概述

fb40b2c38f6ae09f112c98f515f909f9.png

表示层又称用户界面层,包含应用程序的页面、组件等UI元素。

7d020f70878838644dba23a02dcc949d.png

服务层提供项目的HTTP API接口,包含MVC Controller和相关组件。

79168aec59d1ad09bbc3db3c9351b67c.png

ABP框架虽然在表示层提供了不少组件,但是这些和DDD本身没有多少关系。而且随着前后端分离架构的流行,我们也很少会用到ABP提供的表示层功能,所以这一个篇章,就不对其用法做详细描述。

8e975f9d9464644ac2a1a4c21c73c87c.png

这一章,我重点讲解一下除前面章节提到的类库以外,ABP模板下包含表示层在内的其他类库划分及用途。

概览

87abd7fbd45bd8f97bd8d34dbb59e891.gif

表示层:

Web:是ABP提供的一个MVC项目,如果我们前后端不分离,则以此项目作为表示层。包含该项目下的所有界面。

HttpApi.Host:是ABP提供的一个WebAPI项目,用于前后端分离架构时提供WebAPI服务。包含管道模型配置、服务设置等基础代码,不包含用户界面,也不包含实现业务的Controller。‍

7c852946675d1ea77e05aed86f095abb.gif

服务层:

HttpApi:此项目包含自定义的Controller,如果不使用动态WebAPI而是希望控制器由我们自己编写,则需要写在该项目中。

54a5aa5586fff70cb7893bbeb833eba6.gif

客户端代理:

HttpApi.Client:是一个客户端动态代理项目,如果是我们的服务是由另一个ABP项目调用,ABP框架自动化生成客户端调用的代理功能,客户端只需要引用此项目,并做相应配置,即可以依赖注入方式快速调用服务。在上一篇章《ABP微服务架构详细教程》的聚合服务层实现中,我们就使用了这个机制。

结束语

这个系列到这里就结束了,在这一系列,我对领域驱动设计的战略设计和战术设计以及ABP框架为战术设计提供的基础组件用法做了讲解。

后面,我准备再开一个系列作为ABP框架各种用法的补充教程。

有任何问题欢迎加入微信交流群提问或一起交流。

0a09aaa557050bd26f78cd34e1857557.png

3047beb99a2ab33529c7a72da07f1a69.png

99b7cb4a95bf44485839f98b26ba63c3.png

ed7bf0097fd60c0be0bd4f5e8c829527.png

欢迎加入微信交流群

END

f295f1d249e784cd45de5751e2e53a42.png

37040202c420992f64bc770af9370e3a.png

关注我获得

更多精彩

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/285610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows10家庭中文版没有本地策略选项完美解决方案

Win+R,在运行中输入:secpol.msc,查看安全设置是否打开,如下图所示。 组策略对于优化和维护Windows系统来说十分重要。众所周知,Windows 10家庭版中并不包含组策略,对于使用家庭版Windows的朋友来说,十分不方便。 通常情况下,如果策略组没有打开的话,在安装CAD等软件时…

【ArcGIS风暴】栅格计算器(Raster Calculator)运算出现错误问题及解决方案汇总

栅格计算器(Raster Calculator) 是一种空间分析函数工具,可以输入地图代数表达式,使用运算符和函数来做数学计算,建立选择查询,或键入地图代数语法。只有熟练的运用并记忆一些常用的公式,才能很好的运用栅格计算器。在使用的过程中,容易出现这样那样的问题,本文就把栅…

为 ServiceCollection 实现装饰器模式

为 ServiceCollection 实现装饰器模式Intro在二十四种设计模式中,有一个模式叫做装饰器模式一般用来动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活,有更好的扩展性,我们也可以借助 D…

手把手教你启用Win10的Linux子系统 Ubuntu

1、打开“开发者选项” 2、启用“执行 Linux 程序的windows 子系统” 3、应用商店下载安装Ubuntu 附:ubuntu的一些命令及查看已安装软件包的命令 // 系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat…

【地理信息系统GIS】教案(七章全)第五章:空间数据查询与空间分析

目录 第一节 空间数据查询第二节 缓冲区分析第三节 叠置分析第四节 网络分析第五节 DEM建立及分析第一节 空间数据查询 1.1 空间数据查询 1、空间数据查询的含义 从空间数据库中找出所有满足属性约束条件和空间约束条件的地理对象。 空间数据查询的一般过程 2、空间数据查询…

[转]5分钟实现Android中更换头像功能

5分钟实现Android中更换头像功能 写在前面: 更换头像这个功能在用户界面几乎是100%出现的。通过拍摄照片或者调用图库中的图片,并且进行剪裁,来进行头像的设置。 功能相关截图如下: 下面我们直接看看完整吧: public cl…

Excel VBA窗体上打印系统时间print now出错原因及解决方案

如图所示,需要在窗体上显示当前系统时间: 首先,我们看一下now函数的原型: Now 函数   语法:Now   说明:返回一个 Variant (Date),根据计算机系统设置的日期和时间来指定日期和时间。   示例: Private Sub CommandButton1_Click()Dim a As Varianta = NowMsgBox…

(第九周)团队项目14

项目名:食物链教学工具 组名:奋斗吧兄弟 组长:黄兴 组员:李俞寰、杜桥、栾骄阳、王东涵 代码地址:HTTPS: https://git.coding.net/li_yuhuan/FoodChain.git SSH: gitgit.coding.net:li_yuhuan/FoodChain.git SCRUM会议…

为什么 C# 访问 null 字段会抛异常?

一:背景 1. 一个有趣的话题最近在看 硬件异常 相关知识,发现一个有意思的空引用异常问题,拿出来和大家分享一下,为了方便讲述,先上一段有问题的代码。namespace ConsoleApp2 {internal class Program{static Person pe…

C语言试题一百之输入某年某月某日,判断这一天是这一年的第几天

✅作者简介:大家好我是码莎拉蒂,CSDN博客专家🥇🥇🥇 📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 1、题目 题目:输入某年某月某日,判断这一天是这一年的第几天? 分析: 以 3 月 5 日为例,应该先把…

[转]Java学习路线图(完整详细2019版)

一门永不过时的编程语言——Java 软件开发。 Java编程语言占比: 据官方数据统计,在全球编程语言工程师的数量上,Java编程语言以1000万的程序员数量位居首位。 而且很多软件的开发都离不开Java编程,因此其程序员的数量最多。而在…

【CASS精品教程】Win7+CAD2008+CASS9.1(含CASS3D)完美安装教程(附完整软件安装包下载)

本文讲解win764位系统上安装CAD2008+CASS9.1(含CASS3D)免费版安装,文末附完整软件下载地址,亲测可用!!! 文章目录 1. CAD2008安装2. CASS9.1安装3. 软件下载地址1. CAD2008安装 双击安装包中的Setup.exe,开始安装。 点击【安装产品】。

(十一)Jmeter另一种调试工具 HTTP Mirror Server

之前我介绍过Jmeter的一种调试工具Debug Sampler,它可以输出Jmeter的变量、属性甚至是系统属性而不用发送真实的请求到服务器。既然这样,那么HTTP Mirror Server又是做什么用的呢? 一、HTTP Mirror Server的作用: 它可以在本地临…

C语言九十八之实现企业发放的奖金根据利润提成。利润(I)低于或等于 10 万元时,奖金可提 10%;利润高 于 10 万元,低于 20 万元时,低于 10 万元的部分按 10%提成,高于 10 万元的

✅作者简介:大家好我是码莎拉蒂,CSDN博客专家🥇🥇🥇 📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 1、题目 企业发放的奖金根据利润提成。利润(I)低于或等于 10 万元时,奖金可提 10%;利润高 于 10 万…

[转]大数据环境搭建步骤详解(Hadoop,Hive,Zookeeper,Kafka,Flume,Hbase,Spark等安装与配置)

大数据环境安装和配置(Hadoop2.7.7,Hive2.3.4,Zookeeper3.4.10,Kafka2.1.0,Flume1.8.0,Hbase2.1.1,Spark2.4.0等) 系统说明搭建步骤详述 一、节点基础配置 二、Hadoop安装和配置三、…

C# Any()和AII()方法

我们常常需要的另一类查询是确定数据是否满足某个条件,或者确保所有数据都满足某个条件。例如,需要确定某个产品是否已经脱销(库存为 0),或者是否发生了某个交易。LINQ 提供了两个布尔方法:Any()和 All(),它们可以快速…

初级图像混合——线性混合操作

addWeighted函数 这个函数的作用是,计算两个数组(图像阵列)的加权和。原型如下: void addWeighted(InputArray src1, double alpha, InputArray src2, double beta, double gamma, OutputArray dst, int dtype-1); 第一个参数&am…

C语言九十九之实现一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数,请问该数是多少?

✅作者简介:大家好我是码莎拉蒂,CSDN博客专家🥇🥇🥇 📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 一、题目 一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数,请问该数是多…

【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(一)

【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(一) 【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(二) 【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(三) 【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(四) 【专升本计算机】2021…

快速掌握 ASP.NET 身份认证框架 Identity - 通过邮件重置密码

这是 ASP.NET Core Identity 系列的第四篇文章,上一篇文章讲解了如何在 ASP.NET Core Identity 中实现用户登录与登出。这篇文章讲一讲如何在 ASP.NET Core Identity 中通过邮件服务实现用户账号的密码重置。点击上方或后方蓝字,阅读 ASP.NET Core Ident…