Čo je ASP.NET? Nová verzia ASP alebo niečo skutočne nové? V čom sa líši od ASP? Tieto a možno i ďalšie otázky rezonujú v mnohých diskusiách.

ASP.NET je nová technológia (často sa tu používajú i termíny ako platforma či prostredie) firmy Microsoft slúžiaca na tvorbu web aplikácií. Možno povedať, že ASP.NET je nasledovníkom staršej ASP technológie, ktorá v polovici 90. rokov minulého storočia priniesla, vďaka jednoduchému modelu generovania HTML kódu na strane servra, doslova revolúciu, čo sa týka tvorby web aplikácii. Niečo podobné, teda ďalší výrazný krok vpred v oblasti tvorby web aplikácií, si firma Microsoft sľubuje aj od ASP.NET. Skutočne, mnohé veci, ktoré boli problémom pri tvorbe, najmä veľkých, náročných web aplikácií sú riešené v ASP.NET omnoho lepšie ako povedzme v ASP.

ASP.NET (Asp.net) je integrálnou súčasťou .NET Frameworku (viz článok Architektura .NET frameworku). Ako ASP.NET sa obvykle označujú dva aplikačné modely, Web Forms a ASP.NET Web services, ktoré je možné použiť na tvorbu web aplikácii v prostredí .NET Frameworku, i keď sa termín ASP.NET často skôr používa ako ekvivalent termínu Web Forms. Pre úplnosť dodajme, že súčasťou .NET Frameworku sú i ďalšie aplikačné modely, možno tu vytvárať plnohodnotné windows aplikácie (Win Forms), konzolové aplikácie bežiace na príkazovom riadku, windows služby, alebo i aplikácie pre mobilné non-PC zariadenia (Mobile Internet Toolkit) atď. Možno si to predstaviť tak, že Web Forms, Win Forms a ďalšie aplikačné frameworky sú nadstavbou nad jadrom .NET Frameworku, ktorý je tvorený základnou infraštruktúrou a sadou základných knižníc (označujú sa i ako Base Class Library).

Z toho, okrem iného, vyplýva i fakt, že všetky tieto aplikačné modely zdieľajú ten istý, spoločný programový model, a je tu teda ten istý spôsob kompilácie a vykonávania kódu, ten istý model, čo sa týka bezpečnosti, multithreadingu, či ošetrovania výnimiek. Možno ich programovať v tom istom programovacom jazyku, používajú sa tie isté základné knižnice napr. na prácu s reťazcami, XML alebo čo sa týka sieťovania resp. prístupu k dátam.

ASP.NET, analogicky ako .NET Framework, je vo svojej prvej verzii nadstavba operačného systému Windows a pre svoju funkčnosť potrebuje využívať funkcionalitu Windows ako podkladového systému. Konkrétne ASP.NET je, podobne ako ASP, nadstavba nad IIS5 (vyžaduje sa IIS5, nie IIS4 alebo PWS). I keď určitá závislosť na starších technológiách možno nemusí pôsobiť ideálne, je potrebné povedať, že z praktického hľadiska je to pomerne výhodné, keďže tak máme možnosť vedľa seba bez problémov vyvíjať a prevádzkovať staršie aplikácie, ako sú napr. klasické ASP aplikácie založené na COM komponentoch, i nové ASP.NET aplikácie. Vedľa seba, na jednom počítači, na jednom web serveri. Pre úplnosť dodám, že architektúra ASP.NET (i celého .NET Frameworku) bola navrhovaná tak, aby bol ASP.NET nezávislý na OS a HW platforme. Je teda teoreticky možné portovať ASP.NET i mimo Windows prostredia, avšak nie je známe, že by niekto v dohľadnej budúcnosti pripravoval takúto vec.

ASP.NET versus ASP

Z viacerých pohľadov sú si ASP a ASP.NET dosť podobné. Zo strany užívateľa to v podstate vyzerá rovnako. Naštartuje browser, napíše nejakú adresu a zobrazí sa mu stránka. Je v podstate jedno, či má požadovaná stránka príponu „.asp“ alebo „.aspx“.

Veľmi podobne to môže vyzerať i z pohľadu administrátora web servra, ktorý aplikácie prevádzkuje. Web stránka v ASP.NET je v podstate textový súbor, ktorý musí byť zodpovedajúcim spôsobom formátovaný. Je v ňom, okrem HTML kódu, i nejaký programový kód písaný v nejakom programovacom jazyku a môžu tam byť i nejaké direktívy určujúce, ako sa má daná web stránka spracovať.

Zmenu uvidíte, ak sa na vec pozriete z hľadiska programátora, ktorý vytvára web aplikácie. Programátora zaujíma to, ako čo najvýhodnejšie navrhnúť a naprogramovať web aplikáciu (vzhľadom na mnoho faktorov, medzi ktoré môže patriť výkonnosť, bezpečnosť, stabilita, ale tiež i doba vývoja či spôsob nasadenia a prevázkovania aplikácie).

ASP je založené na skriptovacích jazykoch, ako sú VBScript a JScript, ktoré sú interpretované. Naproti tomu ASP.NET je plne kompilované prostredie. V ASP.NET je kód vždy kompilovaný a nikdy nie je interpretovaný. Výhodami kompilovaného prostredia je väčšia rýchosť vykonávaného kódu a tiež možnosť pracovať s plnohodnotnými, plne objektovými, programovacími jazykmi, ako sú napr. C# či VB.NET.

ASP neponúka vhodný spôsob organizácie kódu, čo je pomerne nepríjemné najmä pri väčších projektoch. Kód je v ASP miešaný s HTML tagmi, aplikácia je viac menej stále zložená zo vzájomne do značnej miery nezávislých súborov, z ktorých každý predstavuje jednu stránku. To je zriedka kedy optimálne z hľadiska návrhu aplikácie. Naviac je pomerne náročné také aplikácie udržovať.

V ASP.NET je možné oddeliť prezentačnú vrstvu (HTML kód) web stránky a programový kód používaný na danej stránke, vrátane oddelenia týchto vecí od osobitných súborov. Naviac celý programový model v ASP.NET je plne objektovo orientovaný. Všetky elementy na stránke, i stránka (Web Form) samotná, sú z programátorského hľadiska rovnocenný plnohodnotný objekt (triedy Page, ktorá dedí z triedy System.UI.Web) ako akýkoľvek iný objekt v danej web aplikácii či už z Framework Class Library alebo objekt definovaný užívateľom.

ASP je charakteristické lineárnym programovým modelom. Vykonávanie kódu na stránke začína prvým riadkom kódu na stránke, pokračuje druhým atď. Až po posledný riadok kódu. Smerom zhora dolu.Taký programový model je jednoduchý a prehľadný. Avšak nie je celkom vyhovujúci pre moderné programovacie prostredia s grafickým užívateľským rozhraním (GUI) ako sú napr. Windows. Programový model týchto moderných programových prostredí založených na grafickom užívateľskom rozhraní je skôr založený nie na lineárnom vykonávaní celého dostupného kódu, ale na reagovaní programu na určité udalosti. Či už vyvolané akciou užívateľa alebo generované inými časťami programového systému, napríklad pri začatí či ukončení nejakej akcie.

Programový model pri ASP.NET (Web Form) nie je lineárny, ale je riadený udalosťami. To znamená, že web aplikácia môže reagovať na určité udalosti, každá session môže reagovať na určité udalosti, vlastná stránka (web form) či rôzne elementy tiež. V objektovom modele .NET Frameworku i užívateľsky definované objekty môžu definovať svoje vlastné udalosti.

Samozrejme udalosťami riadený programový model je pre rozsiahlejšie aplikácie, s ktorými pracujú užívatelia pomocou grafického užívateľského rozhrania, značne výhodnejší a prirodzenejší, ako lineárny programový model. Najmä ak uvážime ešte i fakt, že je to oveľa prirodzenejší programový model pre objektovým spôsobom navrhované aplikácie. Nám stačí len napísať obslužné metódy pre udalosti. No a dodajme ešte, nie len pre úplnosť, že tento programový model, tento štýl programovania, je plne podporovaný i pomocou vizuálnych programovacích nástrojov ako je VisualStudio.NET. V ňom môžete vyvíjať web aplikácie spôsobom, akým je možné vyvíjať aplikácie pre Windows vo Visual Basicu.

Samozrejme je tu ešte rad ďalších rozdielov. Mnohé veci známe z ASP sú v ASP.NET výrazne vylepšené. Spomenúť môžeme podporu pre ladenie, tracing a profiling aplikácií, state management, cache management. Nehovorili sme nič o plnej podpore práce s web službami a s ADO.NET atď.

No myslím si, že zásadným a najdôležitejším rozdielom medzi ASP a ASP.NET, tým čo je v ASP.NET skutočne nové, je vyššie spomínaná zmena programového modelu. Tedy to, že bolo programovanie web aplikácií tak povediac „zrovnoprávnené“ s klasickým programovaním aplikácií pre Windows. V ASP.NET máte teraz plne kompilované programové prostredie, možnosť použiť plnohodnotné objektové programovacie jazyky, plne objektový udalosťami riadený programový model, možnosť plne využívať pri programovaní bohatú funkcionalitu ukrytú v tisícoch tried vo Framework Class Library úplne rovnakým spôsobom (samozrejme sú určité špecifiká vzhľadom na daný typ aplikácie). Je možné plne používať pri návrhu a vývoji web aplikácií vizuálne nástroje, vrátane veľkých CASE nástrojov atď.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět