Es ist immer schwer zu beantworten diese Art von Frage, da es wirklich von Ihren Bedürfnissen und Anforderungen abhängt.
Aus meiner Sicht gibt es nicht "eine beste Lösung", sondern nur eine gute Lösung, die zu Ihrer Anforderung passt.
Egal was Sie tun ist im Allgemeinen richtig, aber Sie müssen sicherstellen, dass es mit Ihren Bedürfnissen passt: Manchmal sind wir besessen von der Best Practice, die wir riskieren, zu viele Schichten hinzuzufügen, um etwas zu tun 2 :-)
Das einzige, was ich sagen kann ist, dass Sie DTO nicht aussetzen können, da es nur eine Möglichkeit ist, Objekte zu übertragen (von einem sehr hohen Standpunkt aus könnte es mit einem Protokoll verglichen werden), aber es tut es nicht Sag nichts über das Objekt, das du ausstellst. Sie können stattdessen POCO-Objekte erstellen und sie nur verfügbar machen. In diesem Fall benötigen Sie jedoch eine "Assembler" -Schicht, die von der Serviceschicht verwendet wird, um die POCO-Objekte für Ihr "Domänenmodell" zu erstellen. Sowohl der Assembler als auch die MVC-Schicht kennen die POCO-Objekte.
Ich hoffe es macht Sinn