Tworzenie osobnych viewmodeli i DTO

0

Powiedzmy, że mam aplikację webową MVC i chcę dodać do niej REST API, z którym komunikowała by się np. aplikacja mobilna. Co w takim przypadku powinienem zrobić?

  1. Stworzyć "kopie" każdego viewmodelu, zmienić nazwy z XViewModel na XDto i wyrzucić metadane dotyczące wyświetlania w widoku.
  2. Serializować do JSONa istniejące viewmodele.
  3. Nie używać nazw XViewModel, tylko XModel, i nie dodawać metadanych dotyczących wyświetlania - wtedy będzie można używać tych modeli i w MVC, i w Web API.
1
  1. Zastanowić się, czy aplikacja mobilna będzie potrzebowała tych samych danych, co webowa? Moim zdaniem niekoniecznie, więc trzeba i tak trzymać dwa oddzielne zestawy DTO. Czyli 1., ale też nie do końca - bo po co tam jakieś sufiksy Dto? Raczej Request i Response dla głównych obiektów, a dla podobiektów nic nie trzeba.

A jeśli naprawdę jest to to samo, to mi się wydaje, że w MVC jest taka możliwość, żeby jedna klasa to było takie DTO, a w drugiej mieć jakoś te wszystkie atrybuty dla prezentacji. Nie pamiętam, czy przez partial, czy tam z czegoś było trzeba dziedziczyć i jakiegoś fluent API użyć. Ale dałbym rękę uciąć dowolnemu użytkownikowi, że tak się dało. ;)

5
somekind napisał(a):

Nie pamiętam, czy przez partial, czy tam z czegoś było trzeba dziedziczyć i jakiegoś fluent API użyć. Ale dałbym rękę uciąć dowolnemu użytkownikowi, że tak się dało. ;)

Zostawiam dla potomności ten sposób, bo nie łatwo go znaleźć
MetadataTypeAttribute Class

asp.net core jest trochę inaczej:
https://stackoverflow.com/questions/34576921/asp-net-core-metadatatype-attribute-not-working/37375987#37375987

1 użytkowników online, w tym zalogowanych: 0, gości: 1