2. diel - Úvod do webových aplikácií v ASP.NET
V minulej lekcii, Úvod do ASP.NET , sme si urobili úvod do technológie ASP.NET.
Než začneme so samotným programovaním, urobme si ešte všeobecný úvod do webových aplikácií. Pochopíme tak ich výhody a prečo sú žiadanejšie, než klasické desktopové aplikácie.
Výhody webových aplikácií
Nie je náhoda, že sa väčšina dnešných aplikácií píše pre web. Je to z toho dôvodu, že webové aplikácie majú oproti klasickým (desktopovým) mnoho výhod a ich vývoj je výhodnejší a tiež zarobia obvykle viac peňazí alebo pritiahnu viac užívateľov.
Aby sme tieto výhody a princípy pochopili, urobme si krátku odbočku do histórie a vysvetlime si, čo k vzniku webových aplikácií vôbec viedlo.
Mainframy
Keď sa počítače prvýkrát dostávali medzi ľudí a do firiem, boli veľmi drahé. Bolo nepredstaviteľné, že by mal každý zamestnanec svoj počítač. Z toho dôvodu sa zakúpil jeden centrálny počítač (ktorý bol na tú dobu veľmi výkonný) ak tomuto centrálnemu počítaču sa jednoducho povedané pripojilo niekoľko klávesníc a monitorov. Všetci zamestnanci pracovali súčasne na tomto jednom počítači, ktorý ich obsluhoval.
Keby sa teda napr. jednalo o kancelársku aplikáciu Word, každý užívateľ by mal na mainframe nejakú svoju zložku s dokumentmi a všetci by pracovali s tým jedným Wordom, ktorý je na mainframe nainštalovaný.
Výhody tejto architektúry sú nasledujúce:
- Jednoduchá správa - Aby mohli používatelia používať nejakú aplikáciu, stačí tú aplikáciu nahrať na mainframe. V tej chvíli je prístupná všetkým užívateľom. To isté platí pre aktualizáciu, aktualizuje sa mainframe a všetci už používajú novú verziu aplikácie.
- Vysoká bezpečnosť - Všetky dáta sú uložené v databáze na mainframe, nie na staniciach zamestnancov. To isté platí o samotných aplikáciách, k ich kódu sa nikto nedostane.
- Nízky výkon a vysoká cena – Mainframe vyžaduje vysoký výkon a spracováva úplne všetky úlohy aplikácie. Jeho prevádzka je nákladná.
Mainframy sa už takmer nepoužívajú, ale dodnes ešte v niektorých podnikoch fungujú.
Desktopové aplikácie
Ako sa počítače začali rozširovať medzi menšie firmy a potom dokonca aj do domácností, začala samozrejme klesať ich cena. Osobný počítač si už mohol dovoliť každý. Mainframom odzvonilo a nebol dôvod, aby každý zamestnanec alebo všeobecne užívateľ nemal svoju aplikáciu vo svojom počítači.
Keď opäť použijeme náš príklad s Wordom, tu má každý používateľ svoje dokumenty a svoj Word vo svojom počítači (desktope).
Výhody desktopových aplikácií:
- Vysoký výkon - Všetok výkon aplikácie zaisťuje klientsky počítač. Niekedy v tomto prípade hovoríme o tzv. hrubom klientovi. Pokiaľ aplikácia komunikuje so serverom, stará sa server len o zasielanie dát a nerieši napr. vykresľovanie formulárov.
Nevýhody:
- Zložitá správa - Ak vydáme novú verziu našej aplikácie, musíme zaistiť, aby si každý klient aktualizoval svoj počítač. To sa nám samozrejme nepodarí a preto riešime problémy so starými verziami. Inštalácia a sťahovanie aplikácií je pre užívateľov otravná.
- Nízka bezpečnosť - Keďže je u klienta prítomná celá aplikácia, môže sa ju snažiť disassemblovať (hackovať), čo nie je pri dnešných vysokých jazykoch príliš veľký problém. Môže nám z aplikácie ukradnúť časti zdrojových kódov alebo nejaké dáta.
S rozšírením internetu najskôr vzniklo obrovské množstvo statických webových stránok. Takéto HTML stránky sú jednoducho uložené na serveri. Akonáhle klient (užívateľ s webovým prehliadačom) pošle požiadavku na server, server mu jednoducho vráti presne tú stránku, čo má uloženú. Tejto architektúre sa hovorí klient-server.
Určite ste si všimli, že architektúra sa nápadne podobá mainframu. Vraciame sa teda ku koreňom a získavame nasledujúce výhody:
- Malá záťaž - Server iba zasiela HTML stránky a už nerieši ich zobrazenie, ovládanie klávesnice užívateľa, jeho monitora a podobne. To všetko sa deje na klientskom počítači.
- Jednoduchá správa - Akonáhle zmeníme obsah na serveri (napr. pridáme nejaký dokument), uvidia ho tam okamžite všetci používatelia.
- Vysoká bezpečnosť - Ak chceme zakázať prístup k nejakým dokumentom, klient sa k nim jednoducho nemá ako dostať, pretože sú na serveri.
Webové aplikácie
Po obrovskom rozmachu internetu a webových stránok sa hľadali spôsoby, ako do stránok pridávať nejakú dynamickú funkčnosť. Tieto pokusy došli postupom času tak ďaleko, že v dnešnej dobe sme schopní dosiahnuť to, aby sa webová stránka chovala úplne rovnako, ako desktopová aplikácia (napríklad MS Word, všetci určite poznáte napr. Google Docs alebo Microsoft Office Web Apps). Takej webovej stránke sa hovorí webová aplikácia.
Webové aplikácie fungujú tak, že sa klient spýta servera na určitý dokument. Na serveri ale beží program, ktorý dokáže vygenerovať do stránky to, čo používateľ požaduje. Stránka teda na serveri už neleží, ale je dynamicky vytváraná podľa toho, čo používateľ chce. Práve technológia ASP.NET nám umožňuje také skripty v C# .NET na serveri prevádzkovať.
Často je scenár nasledujúci:
- Užívateľ vyťuká do prehliadača adresu (napríklad eshop.cz/tiskarna-epson-123) a tým pošle požiadavku serveru
- Server zavolá ASP.NET
- ASP.NET sa pozrie, čo používateľ chce (tu chce vypísať informácie o tlačiarni). Pripojí sa k databáze a načíta dáta, ktoré chce klient. Na základe dát vygeneruje webovú HTML stránku.
- Hotová stránka je zaslaná klientovi. Ten vidí už iba statickú webovú stránku, ktorá však bola dynamicky vytvorená podľa jeho požiadavky.
Práve sme si teda popísali princíp dynamického webu a aj jeho príklad. Aké sú teda výhody webových aplikácií?
- Jednoduchá správa. Novú verziu aplikácie nahráme av tom okamihu ju používajú úplne všetci.
- Vysoká bezpečnosť - Web aj databázy sú na serveri a pokiaľ neobsahuje nejaké bezpečnostné chyby, je veľmi neľahké aplikáciu ukradnúť.
- Vysoká užívateľská základňa - Ľudia sú leniví sťahovať a inštalovať. Pri webovej aplikácii len kliknú na odkaz a už s ňou pracujú. Užívateľov, ktorí by používali tú istú aplikáciu, keby bola na desktope miesto na webe, by bolo podstatne menej. A práve kvôli používateľom aplikácie predsa píšeme. Či sú zadarmo alebo sú platené, vždy chceme, aby ich používalo čo najviac ľudí. Toto je hlavný dôvod, prečo sa v poslednej dobe robí v podstate všetok softvér webový.
- Vysoká kompatibilita - Keďže na web pristupujeme cez webový prehliadač, vôbec nás nezaujíma operačný systém klienta, naša aplikácia funguje prakticky všade, dokonca aj na mobile.
- Pretrvávajú aj výhody klientskeho počítača, teda že server nie je zaťažovaný napr. vlastným zobrazovaním stránok, to robí webový prehliadač.
Ich asi jedinou nevýhodou je, že ich vývoj je o niečo náročnejší, než pri aplikáciách desktopových. Je to z toho dôvodu, že web bol najprv navrhnutý pre statické dokumenty a existujú určité obmedzenia, ktoré sa musia obchádzať. Avšak technológie sa stále vyvíjajú a mnoho vecí ide oproti minulosti už podstatne ľahšie. Môžu za to najmä nové štandardy HTML 5 a CSS 3.
Zložitejšie webové aplikácie sú väčšinou ešte doplnené ďalším programovacím jazykom - JavaScriptom. Ten beží v klientskom počítači a spracováva vizuálnu časť aplikácie. Tu na ITnetwork je v JavaScripte naprogramované napr. navigačné menu. JavaScript slúži skôr pre také doplnky v používateľskom rozhraní a je podstatný až pri zložitých webových aplikáciách.
V budúcej lekcii, Úvod do MVC architektúry v ASP.NET Core , si uvedieme MVC architektúru.