进军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

posted @ 2017-10-24 09:28  君宁天下  阅读(525)  评论(2编辑  收藏  举报
野生程序员真的是太难了,一刻也不敢停止学习