Domain vs DTO vs ViewModel - Wie und wann man sie benutzt?

Was ist in einem mehrschichtigen Projekt mit Domain-Schicht (DL) / Business-Schicht (Service-Schicht) (BL) / Presentation-Schicht (PL) der beste Ansatz, um Entitäten an die Presentation-Schicht zu liefern?

DO => Domain Object;
DTO = Domain Transfer Object;
VM => View Model;
V => View;

Option 1:

DL => DO => BL => DTO => PL => VM => V

Diese Option scheint die beste Vorgehensweise zu sein, ist aber auch schwer zu pflegen.

Option 2:

DL => DO => BL => DTO => PL => V

Diese Option scheint keine sehr gute Praxis zu sein, aber da DTO fast identisch mit der VM ist, können wir sie direkt an View übergeben und es ist weniger mühsam, sie zu implementieren und zu warten.

Ist diese Option auch für mehrere Layouts zuverlässig, z. B. für Mobilgeräte. Ich benötige möglicherweise weniger Informationen von der BL, sodass ich für dieses spezielle Layout eine andere VM benötige.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage