NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: ASP.NET MVC čisté controllery

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Majkel
Člen
Avatar
Majkel:13.12.2015 14:46

Ahoj, zrovna se učím novinky v MVC 6 a napadlo mě, že bych se hned mohl zbavit starého zlozvyku, psát veškerou logiku do Controlleru, který jsem doposud praktikoval. V MVC 6 přibyly vychytávky, jako například snadné Dependency Injection, zatím ale nevím, jak to využít k tomu, abych psal přehlednější kód a necpal všechno do Controlleru.

Takže bych tady na toto téma rád rozvířil diskuzi a něco zajímavého se dověděl :-) Takže pište, jaké praktiky nebo návrhové vzory pro ASP.NET používáte vy a jaké máte zkušenosti.

Editováno 13.12.2015 14:48
 
Odpovědět
13.12.2015 14:46
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Majkel
Jan Vargovský:13.12.2015 14:57

Osobně jsem MVC ohýbal tak, aby kontroler mohl používat DI bez toho, abys tam musel nějak složitě definovat, když máš přesně dané konvence jak se ta logika má jmenovat atp.

Ve výsledku jsem přepsal jsem jejich factory na controller a skrz reflexi ho vytvářel zároveň s jeho logikou. TBH, moc nevím o čem chceš diskutovat :D prostě máš vyseparovanou business logiku v extra classe, která se stará o connection s DB, filtrování dotazů...

Editováno 13.12.2015 14:58
 
Nahoru Odpovědět
13.12.2015 14:57
Avatar
Majkel
Člen
Avatar
Odpovídá na Jan Vargovský
Majkel:13.12.2015 15:25

Třeba by mě zajímalo, jak a na co všechno se dá prakticky využít DI. Vím, jak se to dělá (v MVC 6), ale nejsem si zatím jistý použitím.

 
Nahoru Odpovědět
13.12.2015 15:25
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Majkel
Jan Vargovský:13.12.2015 15:33

Použití DI nemá nic společného s MVC. To je prostě pattern, který ti odděluje závislosti.

Příklad je třeba takový, že máš logiku, kterou kontroler potřebuje injectnout a o té logice víš, že umí vrátit kolekci uživatelů.Pak máš nějaké implementace toho interfacu, jednou třeba na načítání z externího systému a podruhé z nějaké tvojí databáze a na základě settingu budeš přepínat jakou logiku budeš injectovat. A takhle si zbavil kontroler od té práce, aby ti vybíral z jaké logiky má zrovna fetchovat.

 
Nahoru Odpovědět
13.12.2015 15:33
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Majkel
Jan Vargovský:13.12.2015 15:37

Třeba by mě zajímalo, jak a na co všechno se dá prakticky využít DI

Tu mě ještě napadlo, až budeš chtít psát nějaké testy ke tvému systému, tak se ti DI bude hrozně hodit.

 
Nahoru Odpovědět
13.12.2015 15:37
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.