https://aspnetboilerplate.com/Pages/Documents/NLayer-Architecture

Introduction

The layering of an application's codebase is a widely accepted technique to help reduce complexity and to improve code reusability. To achieve a layered architecture, ASP.NET Boilerplate follows the principles of Domain Driven Design.

Domain Driven Design Layers

There are four fundamental layers in Domain Driven Design (DDD):

  • Presentation Layer: Provides an interface to the user. Uses the Application Layer to achieve user interactions.
  • Application Layer: Mediates between the Presentation and Domain Layers. Orchestrates business objects to perform specific application tasks.
  • Domain Layer: Includes business objects and their rules. This is the heart of the application.
  • Infrastructure Layer: Provides generic technical capabilities that support higher layers mostly using 3rd-party libraries.

https://abp.io/documents/abp/latest/Domain-Driven-Design

What is DDD?

ABP framework provides an infrastructure to make DDD based development easier to implement.

DDD is defined in the Wikipedia as below:

Domain-driven design (DDD) is an approach to software development for complex needs by connecting the implementation to an evolving model. The premise of domain-driven design is the following:

  • Placing the project's primary focus on the core domain and domain logic;
  • Basing complex designs on a model of the domain;
  • Initiating a creative collaboration between technical and domain experts to iteratively refine a conceptual model that addresses particular domain problems.

Layers

ABP follows DDD principles and patterns to achieve a layered application model which consists of four fundamental layers:

  • Presentation Layer: Provides an interface to the user. Uses the Application Layer to achieve user interactions.
  • Application Layer: Mediates between the Presentation and Domain Layers. Orchestrates business objects to perform specific application tasks. Implements use cases as the application logic.
  • Domain Layer: Includes business objects and their business rules. This is the heart of the application.
  • Infrastructure Layer: Provides generic technical capabilities that support higher layers mostly using 3rd-party libraries.

Contents

最新文章

  1. ASP.NET Core 中文文档 第四章 MVC(4.5)测试控制器逻辑
  2. MVC 知识点学习3(linq to sql)
  3. JVM实用参数(八)GC日志
  4. css3之文本新属性
  5. Android中直播视频技术探究之---基础知识大纲介绍
  6. ASP.Net Chart Control -----Bar and Column Charts
  7. python package list
  8. android114 c转换成c++
  9. [转]JAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解
  10. 再回首,Java温故知新(一):Java概述
  11. pycharm-4.5.3 汉化教程(附汉化包)
  12. Android中实现跨app之间数据的暴露与接收
  13. 关于EL表达式的生效时间(猜想)
  14. Spring源码情操陶冶-AbstractApplicationContext#registerBeanPostProcessors
  15. div,margin,padding
  16. ABP异常处理
  17. (摘录)String是值传递还是引用传递
  18. jvisualvm中VisualGC插件提示:不受此JVM支持
  19. 【Python】 Numpy极简寻路
  20. cf 1132 F

热门文章

  1. HDU 3183 A Magic Lamp(RMQ问题, ST算法)
  2. php开发面试题---禁用cookie之后,如何使用session
  3. tomcat正常启动输入localhost:8080显示404错误
  4. 114、TensorFlow设备放置
  5. 返回闭包不能引用循环变量,请改写count()函数,让它正确返回能计算1x1、2x2、3x3的函数。
  6. 正则search与match的区别
  7. 彻底干掉恶心的 SQL 注入漏洞, 一网打尽!
  8. python序列基本操作
  9. java虚拟机规范(se8)——java虚拟机的编译(四)
  10. rabbitmq-5-案例1-简单的案例