/ / Moduły Prism i referencje usług WCF w aplikacji pulpitu Prism - wpf, wcf, moduł, pryzmat

Moduły pryzmatyczne i odniesienia do usług WCF w aplikacji Prism Desktop - wpf, wcf, module, pryzmat

Tworzę aplikację komputerową Prism i zamierzam korzystać z usług WCF, aby wypełnić pola listy itp. W widokach w moich modułach.

Przeczytałem przewodnik od okładki do okładki i skonfigurowałem moje rozwiązanie, aby mieć: -

1) Projekt powłoki
2) Projekt infrastruktury
3) Moduł1
4) Moduł2

W Module1 mam viewmodel, który zawiera ObservableCollection Klienci zapełnione przez wywołanie usługi WCF bezpośrednio w modelu widoku.

Nie uważam, że jest to poprawne i chcę postępować zgodnie z najlepszymi praktykami Prism w odniesieniu do usługi WCF. Wydaje się, że implementacje referencyjne nie pomagają mi w tym względzie.

Moją pierwszą próbą było stworzenie interfejsuIWCFCustomersAdapter w projekcie Infrastructure i przekazuj to dalej przy wywołaniach klienta usługi WCF. Jest zaimplementowany w projekcie Infrastruktura. Odniesienie do usługi jest również dodawane do projektu infrastruktury. Każdy moduł ma odniesienie do projektu Infrastruktura i używa typów danych zdefiniowanych w usłudze WCF.

Jakie są inne / najlepsze wybory w tym zakresieokoliczność? Czy interfejs nadal może wchodzić w projekt infrastruktury, a odniesienia do usług i implementacja przejść do modułów? Jakie są zalety i wady różnych wyborów?

Wszelkie wskazówki i porady najbardziej cenione.

Dzięki

Alex

Odpowiedzi:

2 dla odpowiedzi № 1

Moduł infrastruktury jest przeznaczony tylko dlainfrastruktura, tj. typy używane do współpracy modułów. Są to głównie typy używane do komunikacji, agregacji zdarzeń, obsługi wyjątków itp. Nie umieszczałbym tam adapterów usług. Nie należą one do infrastruktury.

Z mojego punktu widzenia dedykowany moduł serwisowyjest lepszym miejscem. Jeśli twój serwer udostępnia kilka usług, możesz wprowadzić moduł komunikacyjny serwera, który zawiera wszystkie adaptery usług, jak również DTO. Te DTO mogą być również używane jako modele.

Jeśli twój serwer oferuje wiele usług, możeszmoże podzielić moduł usługi na bardziej konkretne, np. moduł usługi zarządzania użytkownikami z zarządzaniem sesjami, zarządzaniem użytkownikami, zarządzaniem prawami itp.