Używam prostej architektury 3-poziomowej. W tym używam klas DTO do komunikacji między UI, BL i DL. Czy istnieje lepszy sposób komunikacji między warstwami? czy to jest właściwa droga?Używanie DTO w architekturze trójwarstwowej
Odpowiedz
DTO, obiekt przesyłania danych, to koncepcja warstwy dystrybucyjnej, której używa się do przesyłania danych między konsumentami a usługą. Jeśli więc nie publikujesz żadnej usługi, zrezygnuj z DTO.
Aby odpowiedzieć na pytanie, zależy to również od złożoności wniosku. Jeśli jest to proste, po prostu użyj operacji CRUD lub możesz nawet użyć DataTable
, DataSet
do komunikacji.
W przeciwnym razie obiekt domeny z DDD jest podstawowym obiektem do komunikacji między warstwami: warstwa dostępu do danych, warstwa logiki biznesowej i warstwa prezentacji.
Zasadniczo istnieją pewne innego typu obiektów w aplikacji:
- DTO, używane podczas służby publiczne, głównym celem do komunikacji między konsumentem a usługą.
- Wyświetl model, obiekt w warstwie prezentacji obsługujący interfejs użytkownika.
- Podmiot domeny pochodzi z warstwy logiki biznesowej i zawiera logikę biznesową.
Bądź ostrożny z terminem:
- Poziom: oznacza to fizyczne, jak serwer bazy danych, serwer WWW.
- Warstwa: oznacza warstwę logiczną: warstwę Persentation, warstwę logiki biznesowej, warstwę dostępu do danych.
Przeczytaj to tutorial jest bardzo pouczające. Pomoże Ci to zdecydować, czy DTO jest odpowiednie dla twojego scenariusza.
Dzięki, najlepszy tutorial DTO, który przeczytałem. Podsumowując: DTO jest optymalne z perspektywy oddzielenia, oddzielając warstwę prezentacji od warstwy biznesowej. Ale może być pyrrusowym zwycięstwem; tworzenie setek klas DTO rozciąga projekt i generuje narzut. Autor mówi, że stosowanie DTO zależy od szczegółów projektu. Proponuje pragmatyczną środkową drogę, w której obiekty obiektów mogą być przywoływane w warstwie prezentacji. – Gruber
Oprócz odpowiedzi na @ Talhę, polecam ten article. Jest zorientowana na EF, ale koncepcje tam opisane są typowe.
- 1. Umiejscowienie modeli widoku/DTO w architekturze cebuli
- 2. Jaka jest różnica w tworzeniu witryny w MVC i architekturze trójwarstwowej lub N-tier?
- 3. Używanie programu Ninject w architekturze aplikacji SOLID
- 4. Używanie notacji kurze w modelowaniu danych w architekturze przedsiębiorstwa
- 5. Czy DTO mają zagnieżdżone DTO?
- 6. Wiadomości w architekturze mikroserwisu
- 7. DTO do Entity and Entity to DTO
- 8. DTO w Play Framework
- 9. Interfejsy dla DTO
- 10. Przenoszenie typowej architektury trójwarstwowej na aktorów.
- 11. DTO: najlepsze praktyki
- 12. Identyfikacja ASP.NET w architekturze Microservice
- 13. Przenoszenie zasobów w architekturze RESTful
- 14. DTO DAO POCO BO
- 15. Bądź suchy dzięki DTO
- 16. macdeployqt na architekturze homebrew zainstalowanych
- 17. Przenoszenie diagramów między projektami w architekturze przedsiębiorstwa
- 18. Jaka jest rola falcor w architekturze mikroserwisu?
- 19. Jak obsługiwać wiele subskrypcji w architekturze wiązowej
- 20. Optymalizacja pakietów w rozproszonej architekturze oprogramowania
- 21. Soft Float na architekturze x86_64
- 22. Gdzie zdefiniować interfejsy dla repozytorium w architekturze warstwowej?
- 23. Zignorowanie metody równa się w DTO
- 24. Architektura internetowa oparta na architekturze Akka
- 25. Mapowanie wyników Linq Query do klasy DTO
- 26. Czy wzór DTO jest przestarzały, czy nie?
- 27. Zamieszanie między obiektami DTO (linq2sql) i Class!
- 28. DTO i koncepcje DAO i MVC
- 29. transakcja Boundary i DTO konwersja z JPA
- 30. Usługa WCF ujawniająca DTO lub podmiotowi
zdefiniować "komunikować" – jgauffin