Správičky 2 830 Blogy 948 Fórum 72 374

Zaujímavosti zo sveta

13.05 Antispam report Exchange 2013/…
blogCZSK
Nedávno jsem se setkal s prosbou, zda je možno udělat report nad funkcionalitou antispamu Exchange a trošku jsem narazil na problém, jak dos…
13.05 Pozvánka: konference, workshop…
blogCZSK
Níže jsme pro vás připravili přehled akcí, které jsou pro vás připraveny v příštích několika týdnech. Coding Bootcamp 19. 5. 2016 – Praha V …
12.05 Pozvánka: Nástroje a služby pr…
blogCZSK
Od vývoje přes nasazení po správu napříč platformami Rádi byste optimalizovali vývoj svých aplikací na různé platformy a nevíte jak? Zajímá …
12.05 System Center Configuration Ma…
blogCZSK
V minulém díle jsme nainstalovali SQL Server, který je nutný pro běh Configuration Manageru. Dnes nás čeká instalace WSUS, což je produkt, j…
11.05 Hovory od křivého stolu (5)
blogCZSK
A máme tu další díl českého video seriálu Hovory od křivého stolu (5). Pro toto vydání HKS jsme se ponořili do hlubin naší budovy a natočili…
11.05 Pozvánka: Coding Bootcamp Meet…
blogCZSK
V rámci pražského Coding Bootcampu budete mít možnost se naučit vše, co potřebuje moderní webový vývojář. Abyste měli představu, co bude náp…
10.05 Zajímavé kurzy a videa–MVA a C…
blogCZSK
I tento měsíc vám přinášíme výběr nejzajímavějších videí, kurzů a záznamů konferencí. Veškeré kurzy pak naleznete na portálu MVA a výuková v…
10.05 Azure Site Recovery – VMWARE (…
blogCZSK
Připravil jsem pro vás sérii článků, zabývající se technologií Azure Site Recovery. Konkrétně v šesti na sebe navazujících článcích se dozví…
09.05 DataScript: akční nabídka škol…
blogCZSK
Připravili jsme pro vás nabídku školení On-Demand. A jaké jsou výhody? nižší cena učíte se z pohodlí svého domova nebo kanceláře přístup mát…
05.05 System Center Configuration Ma…
blogCZSK
V předchozím díle jsme si nainstalovali prerekvizity potřebné pro běh Primary Site Configuration Manageru a také jsme připravili doménu pro …
20.04 Odkazy z prohlížeče – 20.4.201…
atasoft
CodeProject Video Transcoding and Streaming on the fly – CodeProject – přímo v prohlížeči (?) A Sample Code Submitted for Senior C# …
11.04 Linq a pracovní pohovor
mstr
Zjišťovat znalosti Linqu u pracovního pohovoru může být obtížné - s Linqem se asi setkal každý C# programátor, ale vždy záleží, do jaké hlou…
08.04 Linq - k čemu použít Aggregate…
mstr
K jednomu z předchozích článků, ve kterém jsem dal k dispozici cheatsheet pro Linq, se mne jeden známý zeptal, k čemu že je dobrý Aggregate …
27.03 Bezpečnost – věc veřejná
Poslední březnový den se v Praze uskuteční jednodenní konference o počítačové bezpečnosti SecPublica 2016. Jejím heslem je "securitas, res p…
16.03 Příklad na pohovor s programát…
mstr
Na blogu jsem uveřejnil několik příkladů z pohovorů s uchazeči o místo programátora. Dovolím si tedy uveřejnit jeden z dalších možných příkl…
15.03 IDisposable v příkladech
viga
Rozhraní IDisposable slouží k uvolnění “unmanaged” zdrojů. Nejčastěji to jsou různé objekty z Win32API (otevřené soubory, síťové spojení, GD…

Asp.mvc - template pattern pre akcie

vlko - 15.6.2009 9:42 - 2572 views

Zo stretnutia Zápis s MVC stretnutia [update] medzi najdôležitejšie odporúčania pre mvc pattern je netlačiť žiadnu biznis logiku do controlleru (ale keď to je také pohodlné:). Otázkou je ako ale niekoho donútiť to prográmatora takto robiť?

Trošku mrzkým, ale celkom účinnym riešením môže byť template pattern, tak ako to ukazuje Augi vo svojom príspevku:

ASP.NET MVC - Template Method pattern pro akce

Neviem, cely postup vyzera zaujimavo aj odpudzujuco zaroveň:). Tak ma teraz napadá, že miesto lambda mohol využiť nejake fluent interface rozhranie a hneď by to vyzeralo lepšie a prehľadnejšie.


Marian Vlcak

Článkov: 0, Správičiek: 1350, Príspevkov vo fóre: 2171, Príspevkov v blogu: 0, Bodov: 37855
Najaktívnejší č.: 5
Profil používateľa

Reakcie

# RE: Asp.mvc - template pattern pre akcie 15.6.2009 16:45:12 T

1. Funkcionalny pristup
2. Snaha implementovat to, co web forms maju, lifecycle (potvrdzuje moj zaver, ze sa ku tomu clovek dopracuje)
3. divny error handling
4. zaujimala by ma implementacia viewModelu
5. ciel obmedzit programatora ... LOL, do ktorej kolvek funkcie volanej v ramci vytvoreneho processu kodne co chce, navyse je este problem v tom, aby vedel, co do ktorej metody v ramci vytvoreneho processu ma davat, kod je neprehladny, ovela krajsii a prehladnejsi by bol praobycajny override (jasne, pozname z web forms)

# RE: Asp.mvc - template pattern pre akcie 15.6.2009 22:15:51 vlko

A Augiho druhy pokus tentoraz v dvoch verziach object initializer a flutent interface:
http://www.augi.cz/programovani/aspnet-mvc-template-method-pattern-pro-akce-podruhe/

# RE: Asp.mvc - template pattern pre akcie 15.6.2009 23:35:09 Augi

1. Ano.
2. Ne, o lifecycle se opravdu nepokouším. Nesnažím se abstrahovat od stavovosti HTTP.
3. He? V ASP.NET MVC je krásně implementovatelný aspektově :)
4. Hodně podobně jako zde: http://jirava.net/blog/Archive/jak-vypada-viewmodel-aspnet-mvc.aspx
5. Kdybych ho chtěl přesně omezit, udělám vlastní programovací jazyk. Cílem je ho jen vést ke správné tvorbě architektury aplikace, stejně jako to dělá MVC.

# RE: Asp.mvc - template pattern pre akcie 16.6.2009 9:03:26 T

@augi,@vlko:
fluent vyzera samozrejme lepsie

2. Samzrejme, ze sa pokusas, rozkladas process pracovania/obsluhy "akcie/udalosti" na podporcesy resp. akcie. ("abstrahovanie od HTTP protokolu" je IMHO buzzword a nechce sa mi to riesit)
3. myselel som Tvoju implementaciu -> handleUpdateViewModelException, handleInitializeViewModelException ...
toto je aspektovy pristup?
4. diky (ViewModel v tomto podani je jednou z tych lepsich veci ktore som videl okolo ASP.NET MVC)
5. viest...povodna ambicia bola ina...(zabranit)...ale aj tato druha...funcionalnym pristupom a vnutenim CRUD pristupu pri implementacii?

Celkovo takto vznika zbytocna komplexnost a ked sme sa uz dopracovali ku MVVM, tak nevidim dovod, preco sa nevratit o krok spat ku MVP.

btw. fluent interface je samozrejme lepsi, ale stale sme pri funkcionalnom pristupe ...

preco nie rovno dedenie a override vid. template method pattern?



# RE: Asp.mvc - template pattern pre akcie 16.6.2009 9:47:56 Augi

2. Ano, rozkládám akci na menší bloky. Pokud bylo zatím 100 % všech action method, které jsem viděl, takových, že šlo rozdělit na tyto bloky, tak proč to nedělat a neušetřit si práci?
3. To vychází z mých praktických zkušeností. Stačí se podívat na implementaci té hlavní metody a pochopíš.

Určitě vzniká zbytečná komplexnost a já s tím mým řešením určitě nejsem 100% spokojený. Ale hodil jsem ten nápad do pléna, kdyby někoho napadlo, jak to rozdělení na bloky implementovat čistěji. Třeba se to nepovede a bude tohle slepá větev. Ale i to je validní ukončení "výzkumu" - konstatování, že tudy cesta nevede.

Btw. co je špatného na funkcionálním přístupu? Já píši víceméně funkcionálně a rád bych přešel na F#...

Řešení s deděním a override mám částečně implementované (pomocí vlastního ActionInvokeru), ale tam je syntaxe ještě horší. Tam by to chtělo nějaký dynamický jazyk...

# RE: Asp.mvc - template pattern pre akcie 16.6.2009 11:03:03 vlko

to Augi, ak ti ide o obmedzovanie na bloky, preco potom radsej neurobit zakladne edit/insert/list actions v base controllere a z neho vyviest iba abstractne funkcie, kde doplnis potrebny rozdielny kod. Pripadne base controleru poslat nejaky behaviour objekt, pretoze tak ci tak pri beznych crud aplikaciach to bude pri spravne navrhnutom controllere logika v modele a action budu vo vacsine pripadov rovnake

# RE: Asp.mvc - template pattern pre akcie 16.6.2009 11:14:46 Augi

To mi právě zase přijde moc svazující, mít to vázané na to, že existují jen nějaké typy action method (edit/insert/list).
Právě to s tím behaviour mám připravené - pomocí vlastního ActionInvokeru, který neinvokuje action method ale ten behaviour object. Ale syntaxe je opravdu šílená...

# RE: Asp.mvc - template pattern pre akcie 16.6.2009 12:44:12 vlko

Nieco podobne som mal urobene v monorail a az tak sialene to nevyzeralo, nastastie mam pocit som to nakoniec zahodil ako neefektivnu vetvu:)

Ale mal som na mysli nieco ine, base abstract crud controller, v ktorom budu spolocne create/read/update/delete/list action a bud cez abstractne funkcie vyzadovat potrebne specific operacie, alebo sa o to postara nejaky prijemny interface, ktory bude aj tak pre vacsinu controllerov spolocny a ten by sa predaval cez constructor

# RE: Asp.mvc - template pattern pre akcie 16.6.2009 12:51:46 Augi

Jasný, vím jak jsi to myslel - jen to beru jako vyšší úroveň abstrakce (je to jen speciální případ toho, co řeším já).

# RE: Asp.mvc - template pattern pre akcie 16.6.2009 13:02:39 T

@Augi
2. Samozrejme, je prirodzene, ze sa ku nejakemu procesu/lifecycle dopracujes. Nie je na tom nic zle, nepaci sa mi akurat realizacia. Nielenze dosiahned enkapsulaciu, ale lahsie kod reusenes a bude citatelnejsi a v neposlednom rade efektivnejsi.

3. Jasne, ja ocenujem kazdeho, kto je ochotny prist s kozou na trh...o tomto diskutovat vobec nemusime.

Nemyslim si, ze ma zmysel na takomto prietore otvarat temu FP vs. OOP, ale odpoved moze zniet..."nic".

Preco dynamicky jazyk? Ten pattern, na ktory sa odvolavas byva implementovany presne tak..vid. hoci

http://en.wikipedia.org/wiki/Template_method_pattern
(a takto je implementovany aj vo web forms)

# RE: Asp.mvc - template pattern pre akcie 16.6.2009 13:15:02 Augi

2. Jasně. Jak jsem psal, i mně se moje realizace příliš nelíbí. Proto jsem zveřejnil aspoň něco, aby se bylo o čem bavit a z čeho vycházet.

Já jsem to nemyslel vůbec jako FP vs. OOP - viz mnou zmiňovaný F#, což je multi-paradigmatový jazyk, který je funkcionální a imperativně objektově orientovaný zároveň.

S tím dynamickým jazykem to byl jen takový povzdech, který klidně ignoruje - týkalo se to něčeho už hodně konkrétního (a zřejmě slepé větve) ;-)

Pridať reakciu

Titulok:
Meno:
Url:
Koľko je 22 + 4?
(ochrana proti spamu)
Komentár:

Najaktívnejší užívatelia
1. 65005 b. photo quickydocs
2. 48800 b. photo xmhlxzybzzyq998
3. 48110 b. photo bfdgfdhfdhfd06
4. 42045 b. photo pmpindia123
5. 37855 b. photo vlko
6. 21520 b. photo T
7. 15965 b. photo spigi
8. 15450 b. photo Anonymous
9. 13360 b. photo spiceland
10. 11120 b. photo dudok