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

NLayer Architecture in abp的更多相关文章

  1. [置顶]ABP框架系列总目录(持续更新)

    Articles & Tutorials Introduction & Step by Step With ASP.NET Core & Entity Framework Co ...

  2. 大课深度复盘、解密研发效率之道 | 第42届MPD工作坊成都站日程公布!

    互联网时代,随着区块链.大数据.人工智能等技术的快速发展,产品迭代速度飞快.在这样的市场环境下,提升研发效率.降低研发成本,同时支撑业务的快速发展,是每个企业都追求的目标之一. 大中型企业如何快速转型 ...

  3. ABP入门系列(11)——编写单元测试

    ABP入门系列目录--学习Abp框架之实操演练 源码路径:Github-LearningMpaAbp 1. 前言 In computer programming, unit testing is a ...

  4. ABP 教程文档 1-1 手把手引进门之 ASP.NET Core & Entity Framework Core(官方教程翻译版 版本3.2.5)

    本文是ABP官方文档翻译版,翻译基于 3.2.5 版本 官方文档分四部分 一. 教程文档 二.ABP 框架 三.zero 模块 四.其他(中文翻译资源) 本篇是第一部分的第一篇. 第一部分分三篇 1- ...

  5. ABP 教程文档 1-1 手把手引进门之 AngularJs, ASP.NET MVC, Web API 和 EntityFramework(官方教程翻译版 版本3.2.5)含学习资料

    本文是ABP官方文档翻译版,翻译基于 3.2.5 版本 转载请注明出处:http://www.cnblogs.com/yabu007/  谢谢 官方文档分四部分 一. 教程文档 二.ABP 框架 三. ...

  6. ABP项目概述

    在系统性介绍整个ABP框架之前,我们首先需要对ABP框架有一个大概的了解,ABP框架的全称是:Asp.Net Boilerplate Project(即Asp.Net 的样板项目)顾名思义就是能够通过 ...

  7. ABP框架系列之八:(Introduction-介绍)

    Introduction We are creating different applications based on different needs. But implementing commo ...

  8. ABP框架系列之三十四:(Multi-Tenancy-多租户)

    What Is Multi Tenancy? "Software Multitenancy refers to a software architecture in which a sing ...

  9. 使用ABP框架踩过的坑系列1

        企业级(例如ERP)应用, 一遍一遍的在重复:认证.验证.异常处理.日志.国际化和本地化.数据库连接管理.配置管理. 审计记录等,同时.NET有很多最佳实践:分层.模块化.DDD领域驱动.DI ...

随机推荐

  1. STL排序函数

    Qsort,Sort,Stable_sort,Partial_sort,List::sort 参考

  2. 120、TensorFlow创建计算图(二)

    #创建一个计算流图 #大多数tensorflow程序开始于dataflow graph 的构造函数 #在这个命令中你执行了tensorflow api的函数 #创建了新的操作tf.Operation ...

  3. Python 进阶_OOP 面向对象编程_self 的实例绑定

    目录 目录 self 和绑定 调用非绑定的方法 self 和绑定 在 Python 中 self 变量是特殊的, 其用于在实例方法中引用该方法所绑定的实例, 换句话说就是 Python 在实例化对象时 ...

  4. 2018 China Collegiate Programming Contest Final (CCPC-Final 2018)(A B G I L)

    A:签到题,正常模拟即可. #include<bits/stdc++.h> using namespace std; ; struct node{ int id, time; }; nod ...

  5. Python 与 C 对比

    到目前为止,我接触最多两种语言应该就是python 和 C 语言了. 个人理解 1. 执行速度不同, python为解释性语言,C是编译型语言(需要编译器) 2. python 是基于C的实现,C中很 ...

  6. 苹果系统下的浏览器 Date方法处理

    1.做了一个活动,需要用到倒计时.比较坑的是苹果下的浏览器不识别new Date("2018-12-23 10:00:00").getTime()格式.所以孕育了一个bug小生命. ...

  7. swiper.js 响应式多图轮播特效

    swiper.js实现响应式的左右切换图片案例展示布局 1.head引入css文件 <link type="text/css" rel="stylesheet&qu ...

  8. u盘在电脑读不出来,但别的可以读

    其实一般这种问题都是驱动程序问题导致的,解决方法很简单,不管是win7还是win10都适用:    插入u盘然后在设备管理里删掉设备重新插拔试试.    详细步骤是:    插上U盘 打开设备管理器 ...

  9. 高精度求A*B(FFT)

    A * B Problem Plus 链接:http://acm.hdu.edu.cn/showproblem.php?pid=1402 Time Limit: 2000/1000 MS (Java/ ...

  10. MVC http://stackoverflow.com/tags/model-view-controller/info

    About model-view-controller Model–View–Controller (MVC) is an architectural pattern used in software ...