Browse Source

Added DDD page

pull/578/head
Halil ibrahim Kalkan 7 years ago
parent
commit
fd54125007
  1. 33
      docs/en/Domain-Driven-Design.md
  2. 3
      docs/en/Unit-Of-Work.md
  3. 4
      docs/en/docs-nav.json

33
docs/en/Domain-Driven-Design.md

@ -0,0 +1,33 @@
# 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](https://en.wikipedia.org/wiki/Domain-driven_design) 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
* **Domain Layer**
* [Entities & Aggregate Roots](Entities.md)
* Value Objects
* [Repositories](Repositories.md)
* Domain Services
* Specifications
* **Application Layer**
* [Application Services](Application-Services.md)
* [Data Transfer Objects (DTOs)](Data-Transfer-Objects.md)
* Unit of Work

3
docs/en/Unit-Of-Work.md

@ -0,0 +1,3 @@
## Unit of Work
TODO

4
docs/en/docs-nav.json

@ -143,6 +143,7 @@
},
{
"text": "Domain Driven Design",
"path": "Domain-Driven-Design.md",
"items": [
{
"text": "Domain Layer",
@ -170,7 +171,8 @@
"text": "Application Layer",
"items": [
{
"text": "Application Services"
"text": "Application Services",
"path": "Application-Services.md"
},
{
"text": "Data Transfer Objects"

Loading…
Cancel
Save