Oddelenie DAL od BLL (ASP.NET MVC) – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Oddelenie DAL od BLL (ASP.NET MVC) – .NET – Fórum – Programujte.comOddelenie DAL od BLL (ASP.NET MVC) – .NET – Fórum – Programujte.com

 

Jan
~ Anonymní uživatel
187 příspěvků
10. 12. 2016   #1
-
0
-

Ahojte, pokusim sa popisat problem s ktorym sa uz nejaky cas trapim.

Vyvijam aplikaciu (v ramci nejakeho samostudia) ktora by raz mala byt e-shopom. Aktualne pouzivam MVC 5 a EF 6, ale EF 6 chcem nahradit Dapperom. Koncept maleho ORM ma zaujal viac ako EF, navyse je vykonnejsi. V zasade to asi nie je podstatne.

Ide mi o to, ze by som chcel izolovat DAL vrstvu od BLL vrstvy. Aktualne su zlepene a pre ucely projektu to nie je neprekonatelny problem, ale chcem to urobit spravne. Momentalne to vyzera tak, ze mam nejake DB modely do ktorych EF mapuje data z DB. Tie sa nasledne preklopia do Biz modelov ktore maju identicku strukturu, co je mozno zbytocne, ale do buducna sa pocita aj s nejakou logikou (no vlastne skor dufam, ze tomu neskor dam nejaky vyznam).

Co by som ale chcel docielit je, ze az sa teraz rozhodnem vymenit EF za Dapper, alebo inu DAL vrstvu, malo by to ist hladko a bezbolestne. Moja predstava je taka, ze vytvorim interface (zrejme viac), alebo nejaku abstraktnu classu ktora bude obsahovat metody pre pracu s DB (create, update, delete ... ). Nova DAL vrtsva bude mat nejaku Provider/Service/Facade class ktora bude dedit od tohto "interface" a tiez ju bude implementovat.

Jediny problem aktualne vidim v objektoch/modeloch/entitach. Co by vlastne DAL mala vracat, co by mala prijimat ako parametre atd. Povedzme, ze mam metodu

public List<nieco> GetProducts();

ide mi o to, ze by asi nemala vracat objekty ktore pouziva EF. Druha moznost je, ze by mohla rovno vracat nejake BizModely, ale tym padom by DAL musela referencovat BLL a nie som si isty, ze je to spravne. Ina moznost je, ze by som BIZ modely vlozil do samostatnej DLL a pouzival ich v DAL a BLL. Asi najspravnejsie je pouzit nejake rozhranie, cize nieco ako:

public List<IProduct> GetProducts();

definovane zase mozno idealne v samostatnej dll. Tu mi ale vadi, ze tie interface zase neviem napisat, pretoze konkretne Product ma vacsie mnozstvo properties a z toho by vznikali velke rozhrania a to asi tiez mozno nie je najlepsi pristup.

Ospravedlnujem sa, mozno sa pytam hlupo, ale niekto snad pochopi o co mi ide a trochu mi s tym pomoze. Dost by som to ocenil. Vdaka :) 

Nahlásit jako SPAM
IP: 94.124.145.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 10 hostů

Podobná vlákna

ASP.NET MVC Last login — založil kironet

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý