Article View: alt.pl.comp.lang.csharp
Article #22361Re: ServiceLayer - rozważanie, best practice
From: Łukasz 'Maly' Ostrowski
Date: Wed, 22 Feb 2012 18:04
Date: Wed, 22 Feb 2012 18:04
49 lines
2999 bytes
2999 bytes
On Wed, 22 Feb 2012 18:02:20 +0100, MarlonB wrote: > Mógłbyś napisać coś więcej w jaki sposób / ze względu na co rozdzielasz > funkcjonalność na Service i Repository? Behavior i Composite Actions - Service Data Access - Repository Ale w uproszczeniu, wszystko można traktować jako Service. Zostajesz wtedy przy "Data Services". Ale tak jak napisałem: > /Podział ideologiczno-nomenklaturyowy jest czysto syntetyczny/ Przykładowo w wersji #A z której korzystam, jest overkill bo kontroler nigdy nie korzysta bezpośrednio z repository, tylko z serwisów, które z kolei "importują" sobie repozytoria. Dochodzi do sytuacji w której IUserService.Get(int id); jest bezpośrednim forwardem do IUserRepository.Get(id); Nie zauważyłem żadnego zysku z takiego rozwarstwienia, więc zacząłem także importować repozytoria bezpośrednio do kontrolerów. Wszystko jest umowne, wybiera się ścieżkę najsensowniejszą z Twojego punktu widzenia. > Repository wykorzystuje między warsta dataAccess a businessLogic. Jak > rozumiem repository ma tylko operacje CRUD? Dlatego nie bardzo widzę > zastosowania repository w serviceLayer, jako że potrzebuje konkretnych > akcji. Być może coś źle rozumiem... Dobrze rozumiesz. Repository pattern to CRUD. > Ciekawi mnie bardzo opinia kogoś już doświadczonego, czyli co powinno > znaleźć się w serviceLayer? Jakie patterny? W serviceLayer korzystam z unity > do pozyskania konkretnej implementacji danego serwisu. ServiceLocator.Resolve<T>() będzie prawdopodbnie w zupełności jedynym wymaganym callem kontenera IoC, defacto, ewentualnie wystarczy sforwardować podstawowe calle Unity. > Może jakieś ciekawe artykuły jak dobrze zaprojektować to wszystko? Przyjrzyj się SharpArchitecture, nie jest doskonałe, ale tak do poglądowego ogarnięcia jest całkiem niezłe. Ostatnim razem jak widziałem #A, było nieźle, nie wiem w jakim dokładnie stanie architekturalnym jest wersja aktualna. -- Pozdrawiam, Łukasz 'Maly' Ostrowski. http://l3v.pl/
Technical Details
Message-ID:
<1mt437iq9a6yz.1vti2z6dbuetk.dlg@40tude.net>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mailReferences:
<ji2pdf$ht6$1@mx1.internetia.pl> <12b400yh5lb3r.mg3vhkurgug9.dlg@40tude.net> <ji373f$i9m$1@mx1.internetia.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail From: Łukasz 'Maly' Ostrowski <maly@USUNnemo.pl> Newsgroups: alt.pl.comp.lang.csharp Subject: Re: ServiceLayer - rozważanie, best practice Date: Wed, 22 Feb 2012 19:04:43 +0100 Organization: Acme Lines: 49 Message-ID: <1mt437iq9a6yz.1vti2z6dbuetk.dlg@40tude.net> References: <ji2pdf$ht6$1@mx1.internetia.pl> <12b400yh5lb3r.mg3vhkurgug9.dlg@40tude.net> <ji373f$i9m$1@mx1.internetia.pl> NNTP-Posting-Host: static-78-9-71-129.ssp.dialog.net.pl Mime-Version: 1.0 X-Trace: news.dialog.net.pl 1329933887 8440 78.9.71.129 (22 Feb 2012 18:04:47 GMT) X-Complaints-To: abuse@dialog.net.pl NNTP-Posting-Date: Wed, 22 Feb 2012 18:04:47 +0000 (UTC) User-Agent: 40tude_Dialog/2.0.15.1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit