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

进军ABP第一天:ABP理论知识的更多相关文章

  1. 用VC进行COM编程所必须掌握的理论知识

    一.为什么要用COM 软件工程发展到今天,从一开始的结构化编程,到面向对象编程,再到现在的COM编程,目标只有一个,就是希望软件能象积方块一样是累起来的,是组装起来的,而不是一点点编出来的.结构化编程 ...

  2. Winsock网络编程笔记(4)----基本的理论知识

    前面的笔记记录了Winsock的入门编程,领略了Winsock编程的乐趣..但这并不能算是掌握了Winsock,加深理论知识的理解才会让后续学习更加得心应手..因此,这篇笔记将记录一些有关Winsoc ...

  3. 关于mpi的理论知识以及编写程序来实现数据积分中的梯形积分法。

    几乎所有人的第一个程序是从“hello,world”程序开始学习的 #include "mpi.h" #include <stdio.h> int main(int a ...

  4. 分析技术和方法论营销理论知识框架,营销方面4P、用户使用行为、STP,管理方面5W2H、逻辑树、金字塔、生命周期

    原文:五种分析框架:PEST.5W2H.逻辑树.4P.用户使用行为 最近在一点点的啃<谁说菜鸟不懂得数据分析>,相当慢,相当的费脑力,总之,真正的学习伴随着痛苦:) 最初拿到这本书的时候, ...

  5. 【2017年9月10日更新】ABP配套代码生成器(ABP Code Generator)帮助文档,实现快速开发

    ABP代码生成器介绍 ABP Code Generator 针对abp这个框架做了一个代码生成器,功能强大.分为两大功能点,一个是数据层,一个是视图层. 数据服务层:通过它,可以实现表设计.领域层初始 ...

  6. Web前端理论知识记录

      Web前端理论知识记录 Elena· 5 个月前 cookies,sessionStorage和localStorage的区别? sessionStorage用于本地存储一个会话(session) ...

  7. ElasticSearch实战系列四: ElasticSearch理论知识介绍

    前言 在前几篇关于ElasticSearch的文章中,简单的讲了下有关ElasticSearch的一些使用,这篇文章讲一下有关 ElasticSearch的一些理论知识以及自己的一些见解. 虽然本人是 ...

  8. Java数据结构——树、二叉树的理论知识汇总

    通用树的理论知识 一.树的定义 由一个或多个(n>=0)节点组成的有限集合T,有且仅有一个节点称为根(root),当n>1时,其7余的节点为m(m>=0)个互不相交的有限集合T1,T ...

  9. OSGI 理论知识

    下面列出了主要的控制台命令: 表 1. Equinox OSGi 主要的控制台命令表 类别 命令 含义 控制框架 launch 启动框架 shutdown 停止框架 close 关闭.退出框架 exi ...

  10. js中函数的一些理论知识

      函数的一些理论知识 1. 函数:                执行一个明确的动作并提供一个返回值的独立代码块.同时函数也是javascript中的一级公民(就是函数和其它变量一样). 2.函数的 ...

随机推荐

  1. 使用asyncio实现redis客户端

    redis协议格式请参考,http://doc.redisfans.com/topic/protocol.html 这里简单介绍下: *<参数数量> \r\n $<参数 的字节数量& ...

  2. 【learning】莫比乌斯反演

    吐槽 额其实这个东西的话..好像缠着机房里面的dalao们给我讲过好多遍了然后.. 拖到现在才搞懂也是服了qwq(可能有个猪脑子) 感觉就是主要几条式子然后疯狂换元换着换着就化简运算了? 草稿纸杀手q ...

  3. webstorm修改工具栏主题

    ** 操作如图所示 **

  4. 11.C++-临时对象分析

    首先来参考以下代码: #include <stdio.h> class Test { int mi; public: Test(int i) { mi = i; } Test() { Te ...

  5. Lintcode227 Mock Hanoi Tower by Stacks solution 题解

    [题目描述] In the classic problem of Towers of Hanoi, you have 3 towers and N disks of different sizes w ...

  6. Ajax模拟Form表单提交,含多种数据上传

    ---恢复内容开始--- Ajax提交表单.使用FormData提交表单数据和上传的文件(这里的后台使用C#获取,你可以使用Java一样获取) 有时候前台的数据提交到后台,不想使用form表单上传,希 ...

  7. Problem : 1412 ( {A} + {B} )

    //集合中元素是不会重复的,所以完全没有必要将两个集合合并后再进行排序,交换排序的时间效率是O(n^2),将两个集合中的元素分别排序后输出即可.输出格式也非常需要 //注意的.输出一列元素赢以cout ...

  8. 初探JodaTime

    在学习java之初时就使用过jdk自带的java.util.Calendar ,近期的项目中需要达到类似功能的时候使用了JodaTime. Joda-Time 令时间和日期值变得易于管理.操作和理解. ...

  9. Eclipse安卓开发环境搭建

    前提,Java SDK和Eclipse搭建完毕 下载android SDK并安装 (官网:http://sdk.android-studio.org/ ) 找到安装目录,运行“SDK Manager. ...

  10. WinSock 异步I/O模型

    如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的. Windows操作系统提供了五种I/O模型,分别是选择(select)模型,异步选择(WSAAsyncSelect)模型, ...