https://github.com/jxareas/volo
An introductory hands-on guide to DDD principles using Abp Framework.
https://github.com/jxareas/volo
Last synced: 3 months ago
JSON representation
An introductory hands-on guide to DDD principles using Abp Framework.
- Host: GitHub
- URL: https://github.com/jxareas/volo
- Owner: jxareas
- Created: 2023-07-30T15:15:46.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-02-04T07:07:04.000Z (over 1 year ago)
- Last Synced: 2025-01-20T23:47:03.341Z (9 months ago)
- Language: C#
- Homepage:
- Size: 4.54 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
DDD with Volo.Abp
Table of Contents
- Get Started
- Part 1: What Is Domain Driven Design
- Part 2: Implementation - The Big Picture
- Part 3: Implementation - The Building Blocks
This is a **free Domain Driven Design guide** wherein the **main concepts of DDD** will be explained.
The **main goal** of this workshop is to provide **software architects/developers/trainers/students/teachers** with a free practical guide to **study/teach DDD concepts**. It is based on the [Implementing Domain Driven Design Guide](https://docs.abp.io/en/abp/latest/Domain-Driven-Design-Implementation-Guide) you can find in the **ABP Framework Documents**.
In this **hands-on workshop** you will create an **IssueTracking application** following Domain Driven Design techniques.
The **sample application** that comes with this workshop is developed with the [ABP Framework](https://abp.io/), as this framework already has been written with Domain Driven Design principles in mind. It uses **Blazor** as UI framework and **SQL Server** as database provider.
While the workshop makes use of the ABP Framework infrastructure, **all the DDD core concepts, principles and patterns are applicable in any kind of solution**, even if it is not a .NET solution.
You will have **a good understanding of Domain Driven Design** when you finish this workshop.
### Start Domain Driven Design Workshop
[Click here](docs/get-started/get-started.md) to get started with the **free Domain Driven Design Workshop**. Enjoy and have fun!
### Exercises
| Exercise | Task |
| ------------------------------------------------------- | ------------------------------------------------------------------ |
| [Exercise 001](exercises/exercise-001-add-a-comment-to-an-issue.md) | Add a comment to an issue |
| [Exercise 002](exercises/exercise-002-responsibilities-of-a-well-designed-constructor.md) | Responsibilities of a well-designed constructor |
| [Exercise 003](exercises/exercise-003-entity-accessors-and-methods.md) | Entity Accessors and Method |
| [Exercise 004](exercises/exercise-004-business-logic-and-exceptions-in-the-entities.md) | Business Logic & Exceptions in the Entities |
| [Exercise 005](exercises/exercise-005-throwing-business-exception-with-code.md) | Throwing a Business Exception with Code |
| [Exercise 006](exercises/exercise-006-do-not-include-domain-logic-in-repositories.md) | Do Not Include Domain Logic in Repositories |
| [Exercise 007](exercises/exercise-007-implement-inactive-issue-filter-as-specification-class.md) | Implement Inactive Issue Filter as a Specification class |
| [Exercise 008](exercises/exercise-008-combining-specifications.md) | Combining Specifications |