Add mermaid diagrams of before (DbBase inheritance) and after (DTO + mappers) situation

This commit is contained in:
2026-09-10 17:57:45 +01:00
commit 9d0079cbf0
3 changed files with 73 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
%% After: Client and Order become plain domain objects (no DbBase inheritance).
%% Dedicated *Dto classes carry data to/from the WebApp, and a mapper converts
%% each way, including the relations. EF dependency isolated to persistence layer.
classDiagram
class DbContext {
+SaveChangesAsync()
}
class DbBase {
+Guid id
}
class WebApp {
<<Web App>>
}
class Client {
+Guid id
+string name
}
class Order {
+Guid id
}
class ClientDto {
+Guid id
+string name
}
class OrderDto {
+Guid id
+ClientDto client
}
class Mappers {
+ClientDto ToClientDto(Client c)
+Client FromClientDto(ClientDto dto)
+OrderDto ToOrderDto(Order o)
+Order FromOrderDto(OrderDto dto)
}
DbContext ..> DbBase : still used by persistence layer
WebApp --> ClientDto
WebApp --> OrderDto
WebApp --> Mappers
Mappers <--> Client : maps each way
Mappers <--> ClientDto : maps each way
Mappers <--> Order : maps each way
Mappers <--> OrderDto : maps each way
Client "1" --> "*" Order : has many (domain relation)
ClientDto "1" --> "*" OrderDto : has many (DTO relation)
Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

+28
View File
@@ -0,0 +1,28 @@
%% Before: WebApp's domain classes inherit from DbBase (EF),
%% which depends on DbContext. Relations live inside the DB-backed classes.
classDiagram
class DbContext {
+SaveChangesAsync()
}
class DbBase {
+Guid id
}
class WebApp {
<<Web App>>
}
class Client {
+Guid id
+string name
}
class Order {
+Guid id
}
DbBase --> DbContext : uses (EF)
WebApp ..> DbBase : depends on
Client --|> DbBase : inherits
Order --|> DbBase : inherits
WebApp --> Client
WebApp --> Order
Client "1" --> "*" Order : has many
Order "*" --> "1" Client : open / close