ABP入门教程3 - 解决方案
创建项目
如图操作,我们先生成一个基于.NET Core的MPA(多页面应用).点击"Create my project!"即可创建项目.
解读项目
展示层 (JD.CRS.Web.Mvc)
提供一个用户界面,实现用户交互操作。
ASP.NET Core MVC(模型-视图-控制器)可以视为展示层。它可以是物理层(通过HTTP API使用应用程序)或逻辑层(直接注入和使用应用程序服务)。无论哪种情况,它都可以包括 本地化,导航,对象映射, 缓存,配置管理,审计日志等。它还处理 授权,会话, 功能(用于 多租户应用程序)和异常处理。
分布式服务层(JD.CRS.Web.Host)
用于公开应用程序接口供远程客户端调用。比如通过ASP.NET Web API和WCF来实现。
该层用于通过REST,OData,GraphQL等远程API来提供应用程序/域功能...它们不包含业务逻辑,而仅将HTTP请求转换为域交互,或者可以使用应用程序服务来委托操作。该层通常包括授权,缓存, 审核日志记录,对象映射,异常处理,会话等。
应用层 (JD.CRS.Application)
进行展现层与领域层之间的协调,协调业务对象来执行特定的应用程序的任务。它不包含业务逻辑。
应用层主要包括应用服务的使用领域层和领域对象(领域服务, 实体 ...)来执行请求的应用程序的功能。它使用数据传输对象从表示层或分布式服务层获取数据并将数据返回到表示层或分布式服务层。它还可以处理 授权,缓存,审核日志记录,对象映射,会话等。
领域层 (JD.CRS.Core)
包括业务对象和业务规则,这是应用程序的核心层。
这是实现我们的领域逻辑的主要层。它包括 实体,值对象和领域服务以执行业务/领域逻辑。它还可以包括规范和触发领域事件。它定义了存储库接口以从数据源(通常是DBMS)读取和保留实体。
基础设施层 (JD.CRS.EntityFrameworkCore)
提供通用技术来支持更高的层。例如基础设施层的仓储(Repository)可通过ORM来实现数据库交互。
基础设施层使其他层起作用:它实现存储库接口(例如,使用Entity Framework Core)以实际使用实际数据库。它还可能包括与供应商的集成,以发送电子邮件等。这不是所有层下的严格层,但实际上通过实现抽象层来支持其他层。
补充说明
JD.CRS.Migrator 提供数据库迁移操作。
JD.CRS.Web.Core 封装Web层核心功能。
ABP入门教程3 - 解决方案的更多相关文章
- ABP入门教程0 - 目录
ABP入门教程 本教程主要讲解如何基于ABP实现CURD(增删改查)示例. 源码已分享: GitHub Gitee ABP入门教程0 - 目录 ABP入门教程1 - 开篇 ABP入门教程2 - ...
- ABP(现代ASP.NET样板开发框架)系列之2、ABP入门教程
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之2.ABP入门教程 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...
- 基于DDD的现代ASP.NET开发框架--ABP系列之2、ABP入门教程
基于DDD的现代ASP.NET开发框架--ABP系列之2.ABP入门教程 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boi ...
- ABP入门教程
ABP入门教程 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应 ...
- ABP入门教程4 - 初始化运行
点这里进入ABP入门教程目录 编译解决方案 重新生成解决方案,确保生成成功. 连接数据库 打开JD.CRS.Web.Host / appsettings.json,修改数据库连接设置Connectio ...
- ABP入门教程2 - 体系架构
点这里进入ABP入门教程目录 介绍 应用程序代码库的分层是一种广泛接受的技术,可帮助降低复杂性并提高代码可重用性.为了实现分层体系结构,ASP.NET Boilerplate遵循域驱动设计的原理. D ...
- ABP入门教程1 - 开篇
点这里进入ABP入门教程目录 基于DDD的现代ASP.NET开发框架 - ABP ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET ...
- ABP入门教程5 - 界面调整
点这里进入ABP入门教程目录 调整前 调整后 调整项 页面标题 把favicon.ico替换为指定Logo JD.CRS.Web.Mvc\wwwroot\favicon.ico 顶部工具栏 把logo ...
- ABP入门教程6 - 领域层创建实体
点这里进入ABP入门教程目录 创建实体 在领域层(即JD.CRS.Core)下新建文件夹Entitys //用以存放实体对象添加一个实体类Course.cs //课程信息 using Abp.Doma ...
随机推荐
- UWP 利用VisualTreeHelper查找页面中的元素
一般我们在展示数据的时候,都会采用DataTemplate的预先设置数据模板,再使用Set ItemsSource的方式进行数据绑定 这样就能满足大部分的需求. 不过有时候需要对页面已经展示出来的元素 ...
- Java生鲜电商平台-优惠券功能设计与开发(小程序/APP)
Java生鲜电商平台-优惠券功能设计与开发(小程序/APP) 说明:Java生鲜电商平台-优惠券功能设计与开发(小程序/APP) 目录 1.项目背景与需求分析 2.需求目的与功能点列表 3.业务逻辑 ...
- JQuery 常用网址
http://www.bejson.com/apidoc/jquery/css.html 操作手册 https://jquery.com/ JQuery官网 一.JQuery插件的网站 1.ht ...
- leaflet 结合 Echarts4 实现迁徙图(附源码下载)
前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...
- IP安全,DDoS攻击、tearDrop攻击和微小IP碎片攻击
目录 arp安全 IP报文格式 DoS攻击 tear drop攻击 微小碎片攻击 IP欺骗,留后门 arp安全 以太网帧的type =0806 表示arp arp攻击:hack伪造arp应答包给tar ...
- Windows自动执行应用程序或脚本(可以通过写bat文件定时关机等)
1. Windows每天定时执行某个应用程序 1.1 右键我的电脑选择管理,并选择任务计划程序,如下 演示 --- 1.2 创建基本任务 演示 1.3 Windows每天定时关机设置参数 演示 1. ...
- unittest---unittest的几种执行方法
我们在使用unittest单元测试框架做自动化的时候,可能会遇到想要看看这条用例写的是否正确,然后进行执行,但是又还有其他的用例在这里,我们又不能屏蔽,这个怎么办?不要着急unittest的几种执行方 ...
- MVC(实战一)
一.创建MVC项目 二.界面分布 Content:是存放css文件等,暂时先不考虑. Controllers:重要, 控制层,控制界面显示和界面逻辑的,其实真正业务逻辑层,建议分层出去. Models ...
- 更改路由器的外网IP
此方法适用于通过路由器拨号上网的宽带,若宽带通过光猫拨号上网则需要将光猫改为桥接模式并在路由器中配置宽带账号和密码 测试环境: 路由器:TP-LINK TL-WDR7800千兆版 硬件版本:1.0 软 ...
- 【使用篇二】Quartz自动化配置集成(17)
出处:https://www.jianshu.com/p/49133c107143 定时任务在企业项目比较常用到,几乎所有的项目都会牵扯该功能模块,定时任务一般会处理指定时间点执行某一些业务逻辑.间隔 ...