Czy DTO powinny być płaskie?

N0
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gdańsk
  • Postów: 647
0

Załóżmy, że w jakimś QuestionDto chcę przesłać informacje o, powiedzmy, autorze (id, name). Czy lepiej dodać do tego DTO właściwości AuthorId i AuthorName, czy może lepiej utworzyć specjalnie jakieś XXXAuthorInfo i umieścić je w oryginalnym DTO? Różnie ludzie piszą na ten temat.

AF
  • Rejestracja: dni
  • Ostatnio: dni
1

Ja robię to najprościej jak się da, jeżeli mapowanie ze złożonej struktury jest łatwiejsze, to tak robię. Trudność może być przy przesyłaniu po sieci, wtedy warto powalczyć o rozmiar.

Michał Sikora
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 834
1

Ja wolę grupować w przypadku powielających się struktur. Jeżeli różne dane wyjściowe/wejściowe mają np. Address, to łatwiej to ogarnąć. Co do przykładu postawionego w pytaniu, to nie wiem, ale może być na siłę. Zależy pewnie, co tam jeszcze siedzi w tym QuestionDto.

jarekr000000
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: U krasnoludów - pod górą
  • Postów: 4714
4

U mnie poniekąd muszą byc poskładane z mniejszych - drzewko. Tylko wtedy da się uniknąąc tony argumentów dla konstruktora.
(wiem, że jest inne wyjście, ale ono jest obrzydliwe)

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
3

DTO to nie VM, nie musi być płaskie.

  • Rejestracja: dni
  • Ostatnio: dni
0

@somekind: moglbys podac jakis przyklad pokazujacy, ze viewmodele powinny byc plaskie?

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
1

Tak jak napisałem w komentarzu, z różnymi GUI widgetami (zwłaszcza z gridami) łatwiej się binduje płaskie modele. Tyle wiem z własnego doświadczenia, zarówno na desktopie jak i webie. Gdybym miał teraz robić jakieś GUI, to też poszedłbym tą drogą.
Ale nie będę się kłócił, jeśli komuś hierarchiczne viewmodele coś dają, to mi nie przeszkadza.

._.
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 250
1

Jeśli będziesz tworzyć VM, wtedy kiedy są potrzebne, czyli kiedy musisz dodać faktycznie jakąś wartość, która wynika bezpośrednio z mechaniki widoku, praktycznie zawsze będzie to płaskie VM.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.