asp.net mvc · pre ošetrenie stavov a udalostí. samozrejme, asp.net je založené na .net...

14
ASP.NET MVC Softwarové inžinierstvo 24.9. 2017 1

Upload: others

Post on 19-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ASP.NET MVC · pre ošetrenie stavov a udalostí. Samozrejme, ASP.NET je založené na .NET frameworku, takže používa spolocnéˇ behové prostredie (CLR, Common Language Runtime)

A S P. N E T M V CSoftwarové inžinierstvo

martin timothy timko

24.9. 2017

1

Page 2: ASP.NET MVC · pre ošetrenie stavov a udalostí. Samozrejme, ASP.NET je založené na .NET frameworku, takže používa spolocnéˇ behové prostredie (CLR, Common Language Runtime)

úvod 2

1 úvodTvorba webových stránok sa od vzniku internetu výrazne zmenila. V prvopociatkoch vývoja sado vel’kej miery jednalo len o prezentacnú vrstvu v podobe HTML, neskôr sa k tomu pridružilišablóny v podobe kaskádových štýlovCSS a napokon JavaScript ponúkol urcitú dynamiku nastrane klienta. V každom prípade aj napriek tomu boli webové stránky do vel’kej miery statické.

Postupne zacala vznikat’ idea, že by sa nejaká cast’ programu realizovala aj na strane servera.Týmto postupne zacali vznikat’ serverové programovacie jazyky, ktoré nejakým spôsobom spolupra-covali s pôvodným HTML/CSS. Ono, spociatku to ani nebolo možné nazvat’ programovacímijazykmi v duchu klasických kopilovatel’ných jazkov, napr. C/C++, ale skôr sa jednalo o skrip-tovacie jazyky, teda dynamicky orientované jazyky. Medzi najpoužívanejšie dynamické pro-gramovacie jazyky primárne urcené pre webový vývoj boli jazyky PHP, ASP a JSP. Vznik týchtoserverových jazykov bol podmienený hlavne potrebou komunikácie s databázou, kde bolo vel’mivýhodné takúto databázu vo forme nejakých údajov väcšieho rozmeru uchovávat’ na jednom mi-este a teda poskytnút’ tak centralizovaný prístup k dátam.

Page 3: ASP.NET MVC · pre ošetrenie stavov a udalostí. Samozrejme, ASP.NET je založené na .NET frameworku, takže používa spolocnéˇ behové prostredie (CLR, Common Language Runtime)

jazyky php, asp a jsp 3

2 jazyky php, asp a jspJazyk PHP (Hypertext Preprocessor) sa stal už od samotného vzniku pomerne vel’mi obl’úbenýmjazykom, pretože okrem iného vynikal jednoduchost’ou, nebol potrebný vel’ký vstupný znalostnýbackground, aby programátor mohol programovat’ solídne webové stránky, navyše stacila príkrauciaca krivka. Jednoduchý zdrojový kód v PHP vyzerá nasledovne:

<html>

<body>

<?

$txt = "Ahoj svet";

echo $txt;

?>

</body>

</html>

Jedná sa o výpis "Ahoj svet". Jazyk PHP vel’mi dlho pôsobil v oblasti webového vývoja,ale postupne sa programovanie v tomto jazyku stávalo t’ažšie citatel’ným, jednotlivý kód PHPbol prepojený s HTML, tzv. "špagetový kód". Teda, nebola oddelená prezentacná vrstva odaplikacnej logiky. Toto bol jeden z urcitých problémov. Neskôr sa rozšírilo objektové pro-gramovanie a jazyk PHP aj ked’ dovtedy nebol objektovým jazykom, vývojári jazyka PHPreagovali na tento deficit pomerne promptne, ale aj napriek tomu sa nepodarilo v dostatocnepoužitel’nej forme integrovat’ objektové prvky do jazyka natol’ko, aby to mohlo konkurovat’ plneobjektovým jazykom. Pôvodné knižnice sú taktiež neobjektového typu, co nie je nejaký vel’kýproblém, ale urcitá nekonzistencia jazyka PHP tak pretrváva aj nad’alej. Aj napriek tomu je jazykPHP z uvedených jazykov stále aktívny a podporovaný, bolo vytvorených obrovské množstvowebových portálov, napr. Yahoo, Facebook alebo WordPress.

Jazyk ASP (Active Server Pages) vznikol v zásade ako urcitá reakcia na v tej dobe vel’mi dobreetablovaný jazyk PHP. Syntakticky sa jedná o podobný jazyk, pricom ASP ponúka možnost’písania stránky v dvoch jazykoch, VBScript alebo JScript. VBScript bol jazyk odvodený od jazykaVisual Basic a JScript bol jazyk odvodený od jazyka JavaScript. Pri písaní programu bolo možnépoužit’ obidva programovacie jazyky súcasne, co sa ale neskôr ukázalo ako nevhodné riešeniez hl’adiska výkonu, pretože na strane servera sa museli použit’ dva skriptovacie prekladace navygenerovanie jednej stránky. Ukážka jednoduchého zdrojového kódu v ASP vyzerá nasledovne:

<html>

<body>

<%

txt = "Ahoj svet";

Response.write (txt)

%>

</body>

</html>

Jazyk ASP ako taký sa príliš nerozšíril a nikdy nepatril medzi populárnejší jazyk než PHP.Aktuálne oproti jazyku PHP je tento jazyk už neaktívny, nepodporovaný. O pár rokov neskôrako bol uvedený jazyk ASP vznikol jeho priamy nástupca v podobe jazyka ASP.NET, vtedy eštes oznacením ASP+.

Page 4: ASP.NET MVC · pre ošetrenie stavov a udalostí. Samozrejme, ASP.NET je založené na .NET frameworku, takže používa spolocnéˇ behové prostredie (CLR, Common Language Runtime)

jazyky php, asp a jsp 4

Jazyk JSP (JavaServer Pages) ako už z názvu vyplýva sa jedná o konštrukciu vychádzajúcu zjazyka Java. V podobnom duchu ako jazyk Java, sa aj tento skriptovací jazyk niesol v duchu mut-liplatformovej prenositel’nosti. Jednoduchý príklad vyzerá vel’mi podobne ako v predchádzajú-cich jazykoch:

<html>

<body>

<%

="Ahoj svet"

%>

</body>

</html>

Systematicky fungujú všetky tieto skriptovacie jazyky podobne a z toho vyplývajú aj ichhlavné nevýhody. Už spomínanou nevýhodou bol tzv. "špagetový kód" a teda jednotlivé vrstvynie sú oddelené, to znamená, že vývojár, dizajnér a grafik používajú zdrojový kód, ktorý je prenich navzájom nezrozumitel’ný a to môže v konecnej kooperácii v tíme okrem iného spôsobit’aj prípadné chyby. Samotný vývoj v tomto vývojovom prostredí sa znacne komplikuje, zvyšujesa zložitost’ programových celkov, doba celkového vývoja a v neposlednom rade sa v súvislostis tým zvyšujú aj financné nároky. Týmto spôsobom sa zároven znižuje modularita, teda urcitáznovupoužitel’nost’ kódu v jednotlivých stránkach. Dalším urcitým problémom bolo použitiestavov webovej stránky bez použitia cookies, teda uchovávanie stavov v prípade nejakej poruchysa daný stav stratil.

Page 5: ASP.NET MVC · pre ošetrenie stavov a udalostí. Samozrejme, ASP.NET je založené na .NET frameworku, takže používa spolocnéˇ behové prostredie (CLR, Common Language Runtime)

technológia .net 5

3 technológia .netV case vývoja týchto skriptovacích jazykov vznikali samozrejme aj iné technológie a jazyky, avšakzaložené primárne na desktopových aplikáciách. Proces vývoja nebol od zaciatku zameraný navývoj webových stránok, ale idea sa vyvíjala postupne. Firma Borland vytvorila program TurboPascal už v roku 1983 vývojárom Andersom Hejlsbergom, ktorý bol neskôr hlavným vývojáromvývojového prostredia (niekde oznacované zároven aj ako jazyk) Delphi používajúci jazyk ObjectPascal a neskôr zároven aj samotného frameworku .NET a jazyka C#.

Obrázok 1: Vývojové prostredie Delphi

Ono, je pomerne t’ažké presne datovat’ vznik základnej myšlienky spôsobu rozvrhnutia ovlá-dacích prvkov nejakého vývojového prostredia a ešte t’ažšie je identifikovat’ konkrétnu osobu,ktorá mala takéto nieco na svedomí. Do vel’kej miery to bolo proste výsledkom intuitívnehonávrhu, ktorým myslením disponuje každý jedinec. Bola potrebná nejaká plocha, kontainer naktorom bolo možné uchovávat’ nejaké ovládacie prvky. V danej dobe existovala firma Borland,ktorá fungovala nezávisle od Microsoftu, pretože existovali aj iné vývojové prostredia, viac alebomenej špecifické, napr. Fox Pro, spolocnosti Fox Software, ale v zásade všetky ostatné nejakýmspôsobom figurovali pod spolocnost’ou Microsoft a to aj napriek tomu, že neboli vel’mi úspešné.Jedine firma Borland urcitým spôsobom konkurovala Microsoftu. Avšak ako už bolo spomenuté,hlavný vývojár spolocnosti Borland, Anders Hejlsberg sa neskôr realizoval vo vývoji .NET pre Mi-crosoft s jeho pôvodnou ideou vývojového prostredia Delphi.

Nejakým spôsobom bolo potrebné vytvorit’ intuitívne grafické používatel’ské prostredie (GUI).Pre tieto úcely vznikla knižnica vizuálnej komponenty VCL (Visual Component Library) odfirmy Borland. Na tejto knižnici boli postavené produkty Delphi/C++ Builder/JBuilder, pricomknižnica bola napísaná v jazyku Object Pascal. Jednalo sa o vel’mi dobrú nadstavbu Windows

Page 6: ASP.NET MVC · pre ošetrenie stavov a udalostí. Samozrejme, ASP.NET je založené na .NET frameworku, takže používa spolocnéˇ behové prostredie (CLR, Common Language Runtime)

technológia .net 6

API, ktorá používala VCL formuláre a hierarchiu tried, ktoré boli neskôr hlavným zdrojompre vývoj alebo urcitú prestavbu jazykov Java, Smalltalk, C# a všeobecne sa táto koncepciastala východiskom pre objektovo-orientované jazyky. VCL poskytovala priamu podporu pre tzv.PME (properties, methods and events), teda vlastnosti, metódy a udalosti. Vel’a vlastností z.NET knižnice všeobecne a konkrétne WinForms boli navrhnuté po knižnici VCL a teda slúžiliako hlavný vzor, ktorého vývojárom bol už spomínaný Anders Hejlsberg.

Obrázok 2: Štruktúra a verzie .NET frameworku

Microsoft ponúkal svoj produkt podobný prostrediu Delphi, teda Microsoft Visual Basic, ktorýponúkal rovnako ako Delphi vývoj založený na metodológii RAD, co umožnovalo rýchlejšívývoj pomocou komponentov a k tomu samozrejme moderné GUI s vyššou abstrakciou nežklasické MFC a navyše tieto prostredia už obsahovali princíp vývoja pomocou Drag&Drop, kdebolo možné jednotlivé komponenty premiestnovat’ z nejakého menu priamo na formulár. Del-phi/C++Builder/JBuilder už obsahovali tzv. manažovaný kód, ktorý sa nekompiluje priamo, alepoužíva virtuálny stroj, teda urcitý medzikrok, pricom táto koncepcia stála pri zrode knižnice.NET v podobe tzv. <CLR (Common Language Runtime), co predstavuje rovnako manažovanýkód prostredníctvom virtuálneho stroja. Takto manažovaný kód je v .NET kontrolovaný pomo-cou tzv. assembly, co predstavuje urcité verzie daných dynamických knižníc. Takéto assembly

Page 7: ASP.NET MVC · pre ošetrenie stavov a udalostí. Samozrejme, ASP.NET je založené na .NET frameworku, takže používa spolocnéˇ behové prostredie (CLR, Common Language Runtime)

technológia .net 7

môže poskytovat’ zvýšenie výkonu aplikácie tým, že sa pri opakovanom spustení použije užuložená verzia a dokonca môžme definovat’ vlastné assembly pomocou NGEN (Native CodeGenerator). Po spustení NGEN nad konkrétnou assembly dôjde k uloženiu výsledku do tzv.GAC(Global Assembly Cache) na lokálnom pevnom disku. Použitím tzv. procesu doprednéhoprekladu assembly dosiahneme kratšiu dobu potrebnú pre zavedenie assembly a vyššej výkon-nosti pocas spustenia aplikácie, pretože nie je potrebné prekladat’ každú metódu pri jej volaní zMSIL do natívneho kódu.

Jedným z primárnych ciel’ov .NET frameworku bolo okrem iného zjednodušit’ vývoj kompo-nentov s tým, aby bolo možné zjednodušit’ konštrukcie, ktoré sa používali vo Win32 API a tech-nológii COM/COM+. Konkrétne sa jednalo o to, aby sa vývojári nemuseli definovat’ zložitejšiekonštrukcie vo forme napr. GUID, rozhranie IUnknown z COM, mechanizmus pocítania refer-encií, prezerat’ registre alebo špecifikovat’ dátový typ HRESULT. Tieto záležitosti ako aj d’alšie.NET framework primárne pre vývojárov neposkytuje a používa vlastné vývojové prostredieVisual Studio, ktoré integruje všetky vývojárske produkty na jednom mieste.

Obrázok 3: Vývojové prostredie Visual Studio

Urcitý problém takto koncipovaných vývojových prostredí, ako tzv. cross-platform IDE bolanižšia výkonnost’, ale zlepšujúcim sa technickým vybavením sa tento problém dostával do poza-

Page 8: ASP.NET MVC · pre ošetrenie stavov a udalostí. Samozrejme, ASP.NET je založené na .NET frameworku, takže používa spolocnéˇ behové prostredie (CLR, Common Language Runtime)

technológia .net 8

dia. Pred uvedením a rozšírením Visual Basicu bol Delphi prakticky jediný úspešný produktna efektívnu a rýchlu tvorbu desktopových aplikácií. Ked’že Microsoft bola staršia firma, bolalepšie etablovaná, disponovala dostatocným množstvom financncýh prostriedkov ako firma Bor-land, tak napokon vývoj zacal postupne smerovat’ k vývoju knižníc .NET s hlavným architektomod spolocnosti Borland.

Page 9: ASP.NET MVC · pre ošetrenie stavov a udalostí. Samozrejme, ASP.NET je založené na .NET frameworku, takže používa spolocnéˇ behové prostredie (CLR, Common Language Runtime)

technológia asp.net 9

4 technológia asp.netPrvýkrát sa technológia ASP.NET, vtedy ešte pod oznacením ASP+ objavila pred vyše dvomirokmi ako súcast’ prvej beta verzie vývojového prostredia Visual Studio .NET. V d’alších betaverziách a samozrejme aj vo finálnej verzii Visual Studia .NET sa oznacenie tejto technológieustálilo na ASP.NET. Pre svoje výhodné vlastnosti technológia ASP.NET nahradila klasické ASPstránky. Hlavný rozdiel medzi technológiou ASP a ASP.NET je ten, že programové kódy nastránkach ASP.NET sú kompilované a navyše používajú kompilovatel’né programovacie jazykyako napr. C++, C# alebo VB.NET. Týmto sa odstránila nutnost’ analýzy a interpretácie jed-notlivých riadkov pri každom prístupe klienta, cím vznikná kompilovaný kód, ktorý je navyšesamozrejme ovel’a rýchlejší.

Obrázok 4: Štruktúra a verzie ASP.NET frameworku

Ako je možné vidiet’ na obrázku, ASP.NET ponúka viac prístupov na tvorbu webových stránok.Jedným z hlavných prístupov je prístup pomocou webových formulárov vo forme WebFormspo vzore z desktopových aplikácií založených na Windows formulároch vo forme WinForms.Klasické ASP stránky pomocou skriptov na strane servera priamo generovali HTML stránky,ktoré posielali klientovi. Stránky sa interpretovali od zaciatku do konca bez možnosti ošetrovat’vzniknuté stavy a udalosti. ASP.NET používajú rovnakú technológiu okien, dialógov a for-mulárov ako bežné Windows aplikácie. K jednotlivým vizuálnym prvkom sa viažu procedúrypre ošetrenie stavov a udalostí. Samozrejme, ASP.NET je založené na .NET frameworku, takžepoužíva spolocné behové prostredie (CLR, Common Language Runtime). Druhým hlavnýmprístupom je tvorba webových stránok pomocou architektonického vzoru MVC (Model-View-Controller). Jedná sa o architektonický vzor, ktorý rozdel’uje samotnú aplikáciu do 3 logickýchvrstiev takým spôsoobm, aby bolo možné jednotlivé vrstvy upravovat’ samostatne a navzájomnezávisle od seba. Model reprezentuje dáta a business logiku aplikácie, View reprezentuje použí-vatel’ské rozhranie a Controller obsahuje tok udalostí v celej aplikácii, teda aplikacnú logiku.Klasický spôsobom pret’ahovania ovládacích prvkov systémom Drag&drop sa v tejto v ASP.NETMVC neuplatnuje a namiesto toho sa používa JavaScript.

Z hl’adiska funkcionality, principiálne požiadavka od klienta postupuje všetkými jednotlivýmivrstvami znázornenými v diagrame pre .NET framework, vrátane ASP.NET frameworku. Poži-adavka postupuje od tzv. IIS (Internet Information Services), co je webový server vytvorenýspolocnost’ou Microsoft, postupne cez aplikacnú vrstvu až k vrstve tzv. handlerov, co sú iden-tifikátory alebo odkazy na funkcie. Rovnako ako ASP stránky obsahovali súbor Global.asa, aj

Page 10: ASP.NET MVC · pre ošetrenie stavov a udalostí. Samozrejme, ASP.NET je založené na .NET frameworku, takže používa spolocnéˇ behové prostredie (CLR, Common Language Runtime)

technológia asp.net 10

ASP.NET obsahuje podobný súbor Global.asax, ktorý definuje metódy pre obsluhu udalostí.Na úrovni aplikacnej vrstvy sa rieši cachovanie, session, autentifikácia a autorizácia klientov. Naúrovni handlerov sa spracovávajú aplikacné formuláre, webové služby a podobne.

Page 11: ASP.NET MVC · pre ošetrenie stavov a udalostí. Samozrejme, ASP.NET je založené na .NET frameworku, takže používa spolocnéˇ behové prostredie (CLR, Common Language Runtime)

technológia asp.net 11

4.1 Technológia ASP.NET WebForms

ASP.NET WebForms je starší než ASP.NET MVC. Ciel’om vývoja WebForms bolo odstránit’ prob-lémy, ktoré vývojárom spôsobovalo bezstavové webové prostredie. Zachovanie stavu, teda súvis-lostí medzi jednotlivými požiadavkami je nevyhnutné pre manažované programovanie riadenéudalost’ami. Tieto problémy sa vyriešili kombináciou HTML a JavaScriptu a pomocou ViewState,kedy sú informácie ukladané medzi jednotlivými postbackmi v skrytých formulárových poliach asession, kedy sú informácie ukladané na serveri a predávané d’alej ako jednoznacný identifikátor(cookie alebo súcast’ URL).

ASP.NET WebForms oddel’uje prezentacnú a aplikacnú vrstvu a daná ASP.NET stránka ob-sahuje dve hlavné casti:

• súbor *.aspx s ASP a HTML kódom

• na serveri uložený súbor na pozadí (CodeBehind) s nejakým zdrojovým kódom, ktorýzabezpecuje udalosti vyvolané na stránke. Samotný kód pozostáva z programovacíchjazykov VB.NET alebo C#

Pre všetky ASP prvky v súbore *.aspx je charakteristický atribút runat s priradenou hodnotouserver. Táto kombinácia zabezpecuje vykonanie a spracovanie komponenty na strane servera.Práve vd’aka možnosti spájat’ danú stránku s ASP prvkami zo súborom na pozadí (CodeBehind)umožnuje vývojárovi nepoužívat’ bezstatovost’ http protokolu, teda ukladat’ daný stav a neskôrs týmto stavom podl’a potreby manipulovat’.

Page 12: ASP.NET MVC · pre ošetrenie stavov a udalostí. Samozrejme, ASP.NET je založené na .NET frameworku, takže používa spolocnéˇ behové prostredie (CLR, Common Language Runtime)

technológia asp.net 12

4.2 Technológia ASP.NET MVC

ASP.NET MVC je oproti ASP.NET WebForms novšia varianta tvorby webových stránok. Pôvodnámyšlienka architektúry MVC nevychádzala z koncepcie nahradit’ WebForms, ale poskytnút’urcitú alternatívu pre vývoj webových stránok. Okrem základného rozdelenia architektúrymedzi týmito dvoma prístupmi sú ostatné náležitosti vel’mi podobné, napr. používatel’ské role,session a podobne.

MVC ako architektonický vzor ako prvý popísal Trygve Reenskaug už v roku 1979 a prvý krátbol tento vzor použitý v programovacom jazyku Smalltalk. V súcasnosti sa táto architektúrapoužíva pri tvorbe webových stránok, pretože pri zložitejších typoch aplikácií poskytuje vel’midobrú prispôsobitel’nost’ a spol’ahlivost’ aj pri castých zmenách a rýchlom vývoji.

Obrázok 5: Štruktúra návrhového vzoru MVC

ASP.NET MVC ako už bolo spomínané pozostáva z 3 komponentov:

• Model: (Model) zabezpecuje všetky dáta aplikácie a tiež všetky operácie, ktoré súvisia sdátami

• View: (Pohl’ad) zobrazuje používatel’ské rozhranie, webovú stránku

• Controller: (Ovládanie alebo radic) poskytuje komunikáciu medzi Model a View. Na tejtoúrovni sa aplikuje aj validácia dát z View do Model

V samotnej aplikácii to prebieha takým spôsobom, že napr. databázovú požiadavku prevezmeod používatel’a Controller, pošle túto požiadavku do Modelu a následne Model túto požia-davku pošle do databázy.

S implementáciou architektúry MVC súvisí systém tzv. routovania (smerovania). Vzhl’adom ktomu, že View nie sú vyvolané priamo, je možné urcit’ prostredníctvom tzv. routovacích tabuliek,ktorý konkrétny Controller, akcia a následne View bude zobrazená. Obsah adresného riadkunejakého prehliadaca pre View z toho dôvodu nemusí presne korešpondovat’ s umiestnením

Page 13: ASP.NET MVC · pre ošetrenie stavov a udalostí. Samozrejme, ASP.NET je založené na .NET frameworku, takže používa spolocnéˇ behové prostredie (CLR, Common Language Runtime)

technológia asp.net 13

súboru v adresárovej štruktúre na serveri. Práve z toho dôvodu je možné skrátit’ URL adresunatol’ko, aby nebolo možné indikovat’ o ktorý konkrétny View a s ním súvisiaci súbor sa vskutocnosti jedná. Touto problematikou sa zaoberá tzv. SEO (Search Engine Optimization) voforme "priatel’ských SEO URL" ("SEO friendly URL").

Page 14: ASP.NET MVC · pre ošetrenie stavov a udalostí. Samozrejme, ASP.NET je založené na .NET frameworku, takže používa spolocnéˇ behové prostredie (CLR, Common Language Runtime)

výhody a nevýhody asp.net mvc 14

5 výhody a nevýhody asp.net mvcVšeobecne by bolo možné aspon predbežne a ciastocne subjektívne povedat’, že ASP.NET MVCsa nevydal práve najlepším smerom. Svojou koncepciou ušl’achtilého vývojového prostredia pretvorbu webových stránok sa javí o nieco lepšie ASP.NET WebForms, ktorý ponúkal nieco, co bolojeho vlastnou výsadou v podobe serverových komponent, priamociarejšieho vývoja a celkovejkompaktnosti. MVC disponuje dobre štruktúrovaným kódom, aj ked’ samotná implementáciaje zložitejšia. Urcitý pohl’ad na túto problematiku ponúka komentár programátora ohl’adne odTomáša Hercega (MVP) z DotNetPortal.cz:

”Prestože se o to snažilo asi 50 lidí, nikdo mi nebyl schopen vysvetlit výhody, kteréMVC a jiné návrhové vzory zacínající MV prináší. Intuitivne clovek, který má zkušenostia delá nejaký vetší projekt, stejne používá nejaký svuj systém, který je nekterému zevzoru MV* podobný, prípadne si z každého bere neco, co se mu hodí do krámu. Strik-tne se držet jednoho vzoru (at’ už MVC, MVVM nebo MVP) mi nepripadá výhodnéa žádné výhody to neprináší. Aplikaci mít rozdelenou na více vrstev jde bez toho,aniž byste návrhové vzory nejak rešil.

Typickým argumentem pro MVC je, že se kód líp testuje. Ano, kód, který podle menemá smysl testovat (Controller), protože nemá delat nic zázracného, se tam opravdutestuje líp. Ale kód, který testovat má smysl (bussiness a datová vrstva, nebo chcete-liModel), se testuje v MVC stejne dobre jako bez nej.

Dalším argumentem bývá, že tam není ViewState, který muže narust velikosti stovekkilobajtu. To je ale jako argumentovat, že auta jsou špatná, protože v rukách nezpu-sobilého ridice mohou nekoho zabít. Clovek, který ViewState umí využít a dobre znáASP.NET, s ním zkrátka problémy nemá.

Routing, který je celkem pekne udelaný, bude od verze 4 použitelný i v ASP.NET.

Konkrétne ASP.NET MVC mi prijde méne produktivní rešení než ASP.NET Web-Forms, je to proste takový návrat k PHP, od nehož jsem pred pár lety utekl k Web-Forms.” — Tomáš Herceg

ASP.NET MVC pripomína jazyk PHP koncepcne v tom duchu a zmysle, že okrem inéhoponúka špeciálny Razor súbor *.cshtml, ktorý ponúka písanie kódu priamo v 3 rôznych preve-deniach, v jazku C#, jazku HTML a jazyku JavaScript (vynímajúc ViewState). Samotná kon-cepcia predávaných kolekcií ako aj Razor stránka sa približuje dynamickým jazykom, kde nadruhej strane otvára možnosti pre plné použitie JavaScriptu, ktorý sa v posledných rokoch za-cína solídne presadzovat’ a ktorý zásadne zmenil charakter tvorby webových stránok.