Skip to content

Blog series supplementary domain-driven design C# repository that (hopefully) actually makes sense.

Notifications You must be signed in to change notification settings

zkavtaskin/Domain-Driven-Design-Example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
Sep 13, 2016
Apr 13, 2021
Sep 13, 2016
Apr 13, 2021
Apr 13, 2021
May 5, 2014
May 5, 2014
Jun 18, 2017
May 5, 2014
May 5, 2014
May 5, 2014

Repository files navigation

Domain-Driven-Design-Example C#

Alt text

Repository objective: To supplement blog articles on DDD (see below) and create easy to follow Domain-driven design repository that makes sense (if it still makes no sense then please do let me know).

Please do note that this is my interpretation of Domain-driven design (i.e. biased). Please use this for theoretical / educational purposes only.

Articles

Applied Domain-Driven Design (DDD), Part 1 - Basics

Applied Domain-Driven Design (DDD), Part 2 - Domain events

Applied Domain-Driven Design (DDD), Part 3 - Specification Pattern

Applied Domain-Driven Design (DDD), Part 4 - Infrastructure

Applied Domain-Driven Design (DDD), Part 5 - Domain Service

Applied Domain-Driven Design (DDD), Part 6 - Application Services

Applied Domain-Driven Design (DDD), Part 7 - Read Model Services

Applied Domain-Driven Design (DDD), My Top 5 Best Practices

Applied Domain-Driven Design (DDD), Event Logging & Sourcing For Auditing

alt tag

Structure

  • eCommerce.WebService
  • eCommerce
    • ApplicationLayer
      • Domain Area
        • Dto
        • Interface
        • Implementation
    • DomainModelLayer
      • Domain Area
        • Entity
        • Enum
        • Spec
        • Value
        • Event
    • InfrastructureLayer

API

To keep things simple I have created in memory repository with few saved items. To start using simply download, open solution and run.

Customer

Customer already exists (John Smith, ID: 5D5020DA-47DF-4C82-A722-C8DEAF06AE23).

But if you would like to add my customers here are urls that you can call:

api/customer/add?FirstName=john2&LastName=smith2&[email protected]

api/customer/Getbyid/5D5020DA-47DF-4C82-A722-C8DEAF06AE23

api/customer/[email protected]

api/customer/RemoveById/5D5020DA-47DF-4C82-A722-C8DEAF06AE23

api/customer/update?id=5D5020DA-47DF-4C82-A722-C8DEAF06AE23&[email protected]

Product

Product already exists (iPhone, ID: 65D03D7E-E41A-49BC-8680-DC942BABD10A).

But if you would like to add more products here are urls that you can call:

api/product/add?name=iPhone5&quantity=6&cost=422&productcodeid=B2773EBF-CD0C-4F31-83E2-691973E32531

api/product/get/65D03D7E-E41A-49BC-8680-DC942BABD10A

Cart

Customer and product already exists, so feel free just to call these urls:

/api/cart/add?customerid=5D5020DA-47DF-4C82-A722-C8DEAF06AE23&productid=65D03D7E-E41A-49BC-8680-DC942BABD10A&quantity=1

/api/cart/getbyid?customerid=5D5020DA-47DF-4C82-A722-C8DEAF06AE23

/api/cart/remove?customerid=5D5020DA-47DF-4C82-A722-C8DEAF06AE23&productid=65d03d7e-e41a-49bc-8680-dc942babd10a&Quantity=1

/api/cart/checkout?customerid=5D5020DA-47DF-4C82-A722-C8DEAF06AE23

About

Blog series supplementary domain-driven design C# repository that (hopefully) actually makes sense.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published