Ich stimme crunchdog zu - für alle außer den einfachsten Webanwendungen sollten Sie eine flache Form Ihrer Geschäftsobjekte speziell für Ihre UI/Ansichtsebene haben. Manchmal wird dies als View Model-Klasse bezeichnet und enthält in der Regel nicht mehr als mehrere String-Eigenschaften, von denen der UI-Layer direkt und ohne Berücksichtigung der Validierung abgerufen werden kann. (Siehe asp.net mvc)
Zum einen das hält die UI-Schicht saubere und einfacher, so dass es es Bemühungen setzen zu den Anzeigen von Daten, anstatt Objektstrukturen durchlaufen, die Überprüfung für und nulls Interpretation usw.
Dies auch Gibt der Business-Schicht die Möglichkeit, diese String-Werte zu validieren und die eingegebenen Werte zurückzugeben, wenn sie ungültig sind. Dies kann zu Frustration bei der Codierung führen, wenn beispielsweise Ihr Server ein ungültiges Datum in einem Datumsfeld verarbeiten muss. Die Business-Schicht, die die ungültigen Werte erkennt, kann sie genau wie empfangen mit den richtigen Fehlermeldungen zurückgeben. Wenn Sie sich nur mit Geschäfts-/Domänenobjekten beschäftigt haben, passen einige der eingegebenen Werte möglicherweise nicht immer zu den Objekten, die sie enthalten sollen.
Es kann auch hilfreich sein, eine Klasse zum Zuordnen von Werten zwischen den Geschäfts-/Domänenobjekten und dem UI-Objekt/Ansichtsmodell zu verwenden. Dies trägt dazu bei, dass die Bedenken der Business-Ebene sauber getrennt bleiben.
Vielen Dank für Ihre Kommentare - sehr geschätzt – Nick