进军ABP第一天:ABP理论知识
1.2.3 领域层
领域层就是业务层,是一个项目的核心,所有业务规则都应该在领域层实现。
( 实体(Entity )
实体代表业务领域的数据和操作,在实践中,通过用来映射成数据库表。
( 仓储(Repository )
仓储用来操作数据库进行数据存取。仓储接口在领域层定义,而仓储的实现类应该写在基础设施层。
( 领域服务(Domain service )
当处理的业务规则跨越两个(及以上)实体时,应该写在领域服务方法里面。个人理解就是需要联表/同时多表操作的时候就在领域服务写
领域事件(Domain Event )
在领域层有些特定情况发生时可以触发领域事件,并且在相应地方捕获并处理它们。
( 工作单元(Unit of Work )
工作单元是一种设计模式,用于维护一个由已经被修改(如增加、删除和更新等)的业务对
象组成的列表。它负责协调这些业务对象的持久化工作及并发问题。
1.2.4 应用层、
应用层提供一些应用服务(Application Services)方法供展现层调用。
一个应用服务方法接收一个 DTO(数据传输对象)作为输入参数,使用这个输入参数执行特定的领域层操作,并根据需要可返回另一个 DTO。
在展现层到领域层之间,不应该接收或返回实体(Entity)对象,应该进行 DTO 映射。
一个应用服务方法通常被认为是一个工作单元(Unit of Work)。
用户输入参数的验证工作也应该在应用层实现。
ABP 提供了一个基础架构让我们很容易地实现输入参数有效性验证。
建议使用一种像 AutoMapper 这样的工具来进行实体与 DTO 之间的映射
1.2.5 基础设施层
当在领域层中为定义了仓储接口,应该在基础设施层中实现这些接口。可以使用 ORM 工
具,例如 EntityFramework 或 NHibernate。ABP 的基类已经提供了对这两种 ORM 工具的支
持。数据库迁移也被用于这一层(我使用的是EntityFramework)
1.2.6 WEB 与展现层
Web 层使用 ASP.NET MVC 和 Web API 来实现。可分别用于多页面应用程序(MPA)和单
页面应用程序(SPA)。
在 SPA 中,所有资源被一次加载到客户端浏览器中(或者先只加载核心资源,其他资源
懒加载),然后通过 AJAX 调用服务端 WebApi 接口获取数据,再根据数据生成 HTML 代码。
不会整个页面刷新。现在已经有很多 SPA 的 JS 框架,例如: AngularJs、 DurandalJs、
BackboneJs、EmberJs。 ABP 可以使用任何类似的前端框架,但是 ABP 提供了一些帮助类,
让我们更方便地使用 AngularJs 和 DurandalJs。(个人理解就是..前端的一些东西封装在后端随时可以通过调用返回给前端展现相关效果)
以上是由ABP 框架中国小组(ABPFrameWorkGroup)翻译的ABP Framework官方文档当中的内容,我提取出一些点拿来记录,现在开始我自己的ABP初次项目。
项目计划:
- 1.理解ABP运转过程,
- 2.理解各层之间的作用性
- 3.实践体验用ABP的好处
项目文件夹截图:
所使用IDE:VS2017
所使用.net framework版本:4.6.0
期待早日掌握ABP 今天:2017-10-24 09:26:46
转载于:https://www.cnblogs.com/ncellit/p/7721930.html
进军ABP第一天:ABP理论知识相关推荐
- 全文检索工具elasticsearch:第一章:理论知识
搜索 什么是搜索, 计算机根据用户输入的关键词进行匹配,从已有的数据库中摘录出相关的记录反馈给用户. 常见的全网搜索引擎,像百度.谷歌这样的.但是除此以外,搜索技术在垂直领域也有广泛的使用,比如淘宝. ...
- 课程理论知识、教学实施
目录 第一章 课程理论知识 一.学科核心素养 二.教学目标 三.教学环节 第二章 教学实施 第一节 新课导入类 第二节 教学方法类 第三节 教师实施原则类 第四节 设计意图类 第一章 课程理论知识 出 ...
- 第一篇:金字塔原理的理论知识
<金字塔原理>读书笔记 -- 金字塔原理的理论知识 书籍链接:https://book.douban.com/subject/35366116/ 金字塔原理重视建立结构化的逻辑思维,将思考 ...
- 用VC进行COM编程所必须掌握的理论知识
用VC进行COM编程所必须掌握的理论知识 这篇文章是给初学者看的,尽量写得比较通俗易懂,并且尽量避免编程细节.完全是根据我自己的学习体会写的,其中若有技术上的错误之处,请大家多多指正. 一.为什么要用 ...
- 关于mpi的理论知识以及编写程序来实现数据积分中的梯形积分法。
几乎所有人的第一个程序是从"hello,world"程序开始学习的 #include "mpi.h" #include <stdio.h> int ...
- 计算机基础第一章知识题库,题库第一章计算机基础知识
题库第一章计算机基础知识 (51页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 23.9 积分 第一章 计算机基础知识一.判断正误题1.第二计算机的主存采 ...
- 从理论知识到落地能力,你欠缺了什么?
转载自 从理论知识到落地能力,你欠缺了什么? 本文是一个理论过度到实践的典型案例,借助程序员经常遇到的一个问题--网络为什么不通,来具体说明怎么将书本上的死知识真正变成我们解决问题的能力. 大学学 ...
- FFmpeg学习(音视频理论知识)
文章目录 1. 音视频理论知识 1.1 基本概念 1.1.1 音视频必备的基本概念 常用的视频封装格式 常用的视频编码器 常用的音频编程器: 视频流 裸数据YUV 1.1.2 音视频常见处理 采集 处 ...
- 分布式技术与实战第一课 分布式理论与一致性算法
开篇词:搭建分布式知识体系,挑战高薪 Offer 你好,我是邴越,在一线互联网公司从事分布式开发工作多年,一直关注分布式理论和新技术的发展. 互联网发展到今天,用户数量越来越多,产生的数据规模也越来越 ...
- 【面试宝典】软件测试工程师2021烫手精华版(第一章测试理论篇)
前言: 翻了很多论坛博客关于面试的文章,很多都是不完整的,还都是比较常见规规矩矩的,那大家刷过的基本都不拿出来了,都是一些大家平时见得不多,但是面试官很看中的一些题. 第一章 测试理论 一. 软件工程 ...
最新文章
- 终于有人把 java代理 讲清楚了,万字详解!
- [C#学习笔记]C#中的decimal类型——《CLR via C#》
- 3-1 Point类的构造函数_JAVA
- Transformer在深度推荐系统中的应用及2019最新进展
- 智慧城市同城V4小程序独立版v1.6.5+前端
- java list map 去重复_如何过滤ListMapString,Object 中的重复Map
- dede article_eidt_action.php 5.7,织梦dedecmsV5.7后台编辑文章中文标题发布失败的解决方法...
- 服务器本地打开asp文件路径,服务器本地打开asp文件
- 阶段3 2.Spring_02.程序间耦合_2 编译期依赖
- 【SQL注入01】SQL注入漏洞简介、原理及类型
- IT项目开发管理与绩效考核
- 老赵谈IL(2):CLR内部有太多太多IL看不到的东西,包括您平时必须了解的那些...
- 人工智能之模式识别(二)
- 我科学家研制“龙虾壳”新型仿生材料
- 论文-《Conversational Recommender System》
- POJ 1144 Network 图论
- 广义表的长度和深度计算
- c++实现磨砂玻璃(类似马赛克)效果
- 使用代码给ACCESS窗体中32个文本框赋不同值的实例
- 10个python接私活的平台,整整10个,总有适合你的,你有技术就有钱