IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 2 - Úvod do webových aplikací v ASP.NET

V minulé lekci, Úvod do ASP.NET, jsme si udělali úvod do technologie ASP.NET.

Než začneme se samotným programováním, udělejme si ještě obecný úvod do webových aplikací. Pochopíme tak jejich výhody a proč jsou žádanější, než klasické desktopové aplikace.

Výhody webových aplikací

Není náhoda, že se většina dnešních aplikací píše pro web. Je to z toho důvodu, že webové aplikace mají oproti klasickým (desktopovým) mnoho výhod a jejich vývoj je výhodnější a také vydělají obvykle více peněz nebo přitáhnou více uživatelů.

Abychom tyto výhody a principy pochopili, udělejme si krátkou odbočku do historie a vysvětleme si, co ke vzniku webových aplikací vůbec vedlo.

Mainframy

Když se počítače poprvé dostávaly mezi lidi a do firem, byly velmi drahé. Bylo nepředstavitelné, že by měl každý zaměstnanec svůj počítač. Z toho důvodu se zakoupil jeden centrální počítač (který byl na tu dobu velmi výkonný) a k tomuto centrálnímu počítači se jednoduše řečeno připojilo několik klávesnic a monitorů. Všichni zaměstnanci pracovali současně na tomto jednom počítači, který je obsluhoval.

Kdyby se tedy např. jednalo o kancelářskou aplikaci Word, každý uživatel by měl na mainframe nějakou svou složku s dokumenty a všichni by pracovali s tím jedním Wordem, který je na mainframu nainstalovaný.

Architektura mainframu - Základy ASP.NET Core MVC

Výhody této architektury jsou následující:

  • Snadná správa - Aby mohli uživatelé používat nějakou aplikaci, stačí tu aplikaci nahrát na mainframe. V tu chvíli je přístupná všem uživatelům. To samé platí pro aktualizaci, aktualizuje se mainframe a všichni již používají novou verzi aplikace.
  • Vysoká bezpečnost - Všechna data jsou uložena v databázi na mainframu, nikoli na stanicích zaměstnanců. To samé platí o samotných aplikacích, k jejich kódu se nikdo nedostane.

Máme tu samozřejmě i nevýhody:

  • Nízký výkon a vysoká cena - Mainframe vyžaduje vysoký výkon a zpracovává úplně všechny úlohy aplikace. Jeho provoz je nákladný.

Mainframy se již téměř nepoužívají, ale dodnes ještě v některých podnicích fungují.

Desktopové aplikace

Jak se počítače začaly rozšiřovat mezi menší firmy a potom dokonce i do domácností, začala samozřejmě klesat jejich cena. Osobní počítač si již mohl dovolit každý. Mainframům odzvonilo a nebyl důvod, aby každý zaměstnanec nebo obecně uživatel neměl svojí aplikaci ve svém počítači.

Když opět použijeme náš příklad s Wordem, zde má každý uživatel své dokumenty a svůj Word ve svém počítači (desktopu).

Architektura desktopových aplikací - Základy ASP.NET Core MVC

Výhody desktopových aplikací:

  • Vysoký výkon - Veškerý výkon aplikace zajišťuje klientský počítač. Někdy v tomto případě hovoříme o tzv. tlustém klientovi. Pokud aplikace komunikuje se serverem, stará se server jen o zasílání dat a neřeší např. vykreslování formulářů.

Nevýhody:

  • Složitá správa - Pokud vydáme novou verzi naší aplikace, musíme zajistit, aby si každý klient aktualizoval svůj počítač. To se nám samozřejmě nepodaří a proto řešíme problémy se starými verzemi. Instalace a stahování aplikací je pro uživatele otravná.
  • Nízká bezpečnost - Jelikož je u klienta přítomná celá aplikace, může se ji snažit disassemblovat (hackovat), což není u dnešních vysokých jazyků příliš velký problém. Může nám z aplikace ukrást části zdrojových kódů nebo nějaká data.

Webové stránky

S rozšířením internetu nejprve vzniklo obrovské množství statických webových stránek. Takové HTML stránky jsou jednoduše uložené na serveru. Jakmile klient (uživatel s webovým prohlížečem) pošle požadavek na server, server mu jednoduše vrátí přesně tu stránku, co má uloženou. Této architektuře se říká klient-server.

Architektura klient-server - Základy ASP.NET Core MVC

Určitě jste si všimli, že se architektura nápadně podobá mainframu. Vracíme se tedy ke kořenům a získáváme následující výhody:

  • Malá zátěž - Server pouze zasílá HTML stránky a již neřeší jejich zobrazení, ovládání klávesnice uživatele, jeho monitoru a podobně. To vše se děje na klientském počítači.
  • Snadná správa - Jakmile změníme obsah na serveru (např. přidáme nějaký dokument), uvidí ho tam okamžitě všichni uživatelé.
  • Vysoká bezpečnost - Pokud chceme zakázat přístup k nějakým dokumentům, klient se k nim prostě nemá jak dostat, jelikož jsou na serveru.

Nevýhodou je samozřejmě to, že server umí zasílat jen statické HTML stránky. Není způsob, jak serveru odeslat nějaká data a na jejich základě dostat výstup (třeba nechat na stránce vzkaz v diskuzi, hlasovat v anketě nebo zobrazit ve stránce kdo má dnes svátek).

Webové aplikace

Po obrovském rozmachu internetu a webových stránek se hledaly způsoby, jak do stránek přidávat nějakou dynamickou funkčnost. Tyto pokusy došly postupem času tak daleko, že v dnešní době jsme schopni dosáhnout toho, aby se webová stránka chovala úplně stejně, jako desktopová aplikace (třeba MS Word, všichni určitě znáte např. Google Docs nebo Skydrive). Takové webové stránce se říká webová aplikace.

Webové aplikace fungují tak, že se klient zeptá serveru na určitý dokument. Na serveru ale běží program, který dokáže vygenerovat do stránky to, co uživatel požaduje. Stránka tedy na serveru již neleží, ale je dynamicky vytvářena podle toho, co uživatel chce. Právě technologie ASP.NET nám umožňuje takové skripty v C# .NET na serveru provozovat.

Architektura webových aplikací v ASP.NET - Základy ASP.NET Core MVC

Často je scénář následující:

  1. Uživatel vyťuká do prohlížeče adresu (třeba eshop.cz/tiskarna-epson-123) a tím pošle požadavek serveru
  2. Server zavolá ASP.NET
  3. ASP.NET se podívá, co uživatel chce (tady chce vypsat informace o tiskárně). Připojí se k databázi a načte data, která chce klient. Na základě dat vygeneruje webovou HTML stránku.
  4. Hotová stránka je zaslána klientovi. Ten vidí již jen statickou webovou stránku, která však byla dynamicky vytvořená podle jeho požadavku.

Všechna data jsou v databázi a webová aplikace, zde v příkladu nějaký eshop s IT, má rozhraní, přes které může personál jednoduše přidávat nové produkty, upravovat jejich cenu a podobně. Je vám asi jasné, že kdyby data nebyla v databázi, ale každý produkt měl svou statickou HTML stránku, tak by bylo extrémně obtížné takovou spoustu stránek spravovat. Navíc by se potom nedalo pomocí skriptu třeba hledat podle ceny, psát k produktům komentáře a podobně.

Právě jsme si tedy popsali princip dynamického webu a také jeho příklad. Jaké jsou tedy výhody webových aplikací?

  • Snadná správa. Novou verzi aplikace nahrajeme a v tom okamžiku ji používají úplně všichni.
  • Vysoká bezpečnost - Web i databáze jsou na serveru a pokud neobsahuje nějaké bezpečnostní chyby, je velmi nesnadné aplikaci ukradnout.
  • Vysoká uživatelská základna - Lidé jsou líní stahovat a instalovat. U webové aplikace jen kliknou na odkaz a již s ní pracují. Uživatelů, kteří by používali tu samou aplikaci, kdyby byla na desktopu místo na webu, by bylo podstatně méně. A právě kvůli uživatelům aplikace přeci píšeme. Ať jsou zadarmo nebo jsou placené, vždy chceme, aby je používalo co nejvíce lidí. Toto je hlavní důvod, proč se v poslední době dělá v podstatě veškerý software webový.
  • Vysoká kompatibilita - Jelikož na web přistupujeme přes webový prohlížeč, vůbec nás nezajímá operační systém klienta, naše aplikace funguje prakticky všude, dokonce i na mobilu.
  • Přetrvávají také výhody klientského počítače, tedy že server není zatěžován např. vlastním zobrazováním stránek, to dělá webový prohlížeč.

Je vidět, že webové aplikace jsou budoucnost. A kdo je umí, ten se bude mít dobře.

Jejich asi jedinou nevýhodou je, že jejich vývoj je o něco náročnější, než u aplikací desktopových. Je to z toho důvodu, že web byl zprvu navržen pro statické dokumenty a existují určitá omezení, která se musí obcházet. Nicméně technologie se stále vyvíjejí a mnoho věcí jde oproti minulosti již podstatně snadněji. Mohou za to zejména nové standardy HTML 5 a CSS 3.

Složitější webové aplikace jsou většinou ještě doplněny dalším programovacím jazykem - JavaScriptem. Ten běží v klientském počítači a zpracovává vizuální část aplikace. Zde na ITnetwork je v JavaScriptu naprogramované např. navigační menu. JavaScript slouží spíše pro takové doplňky v uživatelském rozhraní a je podstatný až u složitých webových aplikací.

V příští lekci, Úvod do MVC architektury v ASP.NET Core, si uvedeme MVC architekturu.


 

Předchozí článek
Úvod do ASP.NET
Všechny články v sekci
Základy ASP.NET Core MVC
Přeskočit článek
(nedoporučujeme)
Úvod do MVC architektury v ASP.NET Core
Článek pro vás napsal David Hartinger
Avatar
Uživatelské hodnocení:
379 hlasů
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David se informační technologie naučil na Unicorn University - prestižní soukromé vysoké škole IT a ekonomie.
Aktivity