Budujemy usługę WWW WCF przy użyciu WSSF. Chodzi o to, że wystawi ona naszą główną bazę danych za pośrednictwem usługi i pozwoli nam budować różne aplikacje i strony internetowe na szczycie usługi. W tej chwili buduję prostą aplikację kliencką, która pobierze niektóre dane z tej usługi, zmanipuluje ją, a następnie przekaże użytkownikowi jako plik CSV raportu.Aplikacje WCF/Client - gdzie powinna iść logika biznesowa?
Teraz pytanie brzmi, gdzie powinna znajdować się logika biznesowa (która manipuluje danymi)? Pomyślałem, że umieściłbym go w serwisie. Mam już tam warstwę biznesową z prostymi obiektami, które mapują prawie jeden do jednego z bazą danych (klient, zamówienie itp.). Pomyślałem, że zrobię obiekty "wyższego poziomu", aby manipulować danymi. Na przykład za pomocą klienta, zamówienia i innych obiektów i sporządzenie raportu itp. Myślałem, że najlepszym miejscem na to będzie w warstwie biznesowej dla usługi. W ten sposób moglibyśmy ponownie użyć tej logiki dla różnych różnych aplikacji, jeśli zajdzie taka potrzeba.
Niestety mój szef się nie zgadza. Chce "oddzielenia obaw" i powiedział, że właściwym miejscem dla tej logiki będzie warstwa biznesowa wewnątrz aplikacji klienta, a nie w usłudze. Myślę, że to może być prostsze, ale chciałbym użyć mojego potężnego modelu obiektu wewnątrz warstwy biznesowej usługi, aby napisać ten kod. Obiekty odsłonięte przez usługę nie są "rzeczywistymi" obiektami i są w rzeczywistości strukturami danych o niewielkiej masie, bez mocy modelu pełnego obiektu, który istnieje wewnątrz warstwy biznesowej usług.
Co wy myślicie? Wielkie dzięki za pomoc.
Cheers Mark
zapytaj go: czy potrzebujemy innego klienta, czy powinniśmy powielić całą logikę biznesową, czy użyć scentralizowanej wersji? –
Kontynuując z logiką @Rubens Farias, jeśli logika biznesowa musi zostać naprawiona i znajduje się ona w kliencie, wtedy * wszyscy * klienci muszą zostać zaktualizowani. Jeśli jest w usłudze, to tylko ta usługa musi zostać zaktualizowana. –
Dzięki za odpowiedzi. Tak, myślę też, że ponowne wykorzystanie jest fajne. Sądzę, że głównym minusem jest to, że aktualizacja usługi może spowodować zerwanie wszystkich istniejących klientów. –