Akce! Dobij si body, napiš nám do zpráv "Přes léto se to naučím!" a dobijeme ti ještě navíc 50% z této částky! Sleva na výuku platí do 22.6.2018.

Lekce 1 - Úvod do ASP.NET

C# .NET ASP.NET Úvod do ASP.NET

ONEbit hosting Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.

Vítejte v 1. lekci kurzu o tvorbě webových stránek pomocí technologie ASP.NET. Dnes si technologii představíme a vysvětlíme si její základní principy.

ASP.NET

ASP.NET je webový framework, stručně řečeno se jedná o sadu knihoven, které umožňují tvorbu webových aplikací v jazyce C#. Knihovny obsahují hotová řešení mnoha základních problémů, které ve webových technologiích vyvstávají. Mám na mysli např. bezpečnost, autentifikaci uživatele, práci s databází, správu formulářů a podobně. ASP tedy není programovací jazyk, programovat budeme v C# a budete tedy potřebovat základní znalosti tohoto jazyka. Programovat se dá teoreticky i ve Visual Basicu, ale skoro nikdo to nedělá :) Pokud nemáte znalosti C#, nic se neděje, začátečnické tutoriály naleznete v sekci C# .NET a poté se sem můžete vrátit. Dále je potřeba alespoň základní znalost HTML, tu opět získáte pročtením několika HTML tutoriálů. Protože webové aplikace jsou stále více populární a nahrazují aplikace desktopové, ve většině firem chtějí po C# programátorech znalost i frameworku ASP.NET. Určitě se vyplatí o této technologii něco vědět.

Co vše se dá v ASP.NET vytvořit?

Úplně vše. ASP.NET je vhodné jak pro malé osobní weby, tak pro velké projekty, ať už korporátní nebo např. webové portály. Jako technologie je minoritní a to samozřejmě z důvodu licence. Ačkoli webové stránky můžete tvořit ve free edici Visual Studia, webhostingů podporujících ASP.NET není mnoho a to hlavně těch zadarmo. Když vezmeme všechny webové aplikace a porovnáme, kolik z nich běží na ASP.NET a kolik třeba na konkurenčním PHP, které je otevřenou technologií, nebude to velké číslo. Pokud ovšem vezmeme v potaz pouze velké projekty, jako jsou např. stackoverflow nebo w3schools, běží jich na ASP.NET poměrně dost. Oblíbené je též v korporátní sféře.

Základní principy ASP.NET

Technologie je založena na architektuře klient-server. Aplikace v ASP.NET je tedy program, jehož výstupem je HTML stránka. ASP.NET běží na straně serveru. Abychom lépe pochopili, jak ASP.NET funguje, ukažme si nejprve obyčejný statický web.

Statický web (bez ASP.NET)

Takový web jste určitě již někde viděli, HTML stránky jsou jednoduše uložené na serveru. Jakmile klient (uživatel s prohlížečem) pošle požadavek na server, server mu jednoduše vrátí přesně ty stránky, co má uložené.

Graficky vypadá komunikace asi nějak takto:

Webová stránka bez ASP.NET

Dynamický web (s ASP.NET)

Statický web se těžko spravuje a má velká omezení. Proto začaly vznikat serverové jazyky, které umožňují HTML stránku ještě pozměnit předtím, než je klientovi odeslána. Lze tak vytvořit aktivní prvky, jako např. diskuzní fóra, přihlašování uživatelů, nahrávání obsahu pomocí editoru a podobně.

ASP.NET tedy běží na serveru, na základě požadavků od klienta vygeneruje webovou stránku a pošle ji klientovi. Ten vidí už jenom výsledné HTML, ve kterém není po ASP.NET ani památky (tedy kromě toho, že stránka má koncovku .aspx a ne .htm).

Graficky by situace vypadala takto:

Mezi C# a konkurenčním PHP jsou obrovské rozdíly. Zatímco PHP je dynamický jazyk, C# je silně typovaný. Jak se ukázalo, tak takový jazyk může být výhodný i pro web, ale pokud přecházíte z PHP, může to být nezvyklé. Velkou výhodou je možnost použití .NET frameworku, který se na serveru hodí, protože obsahuje mnoho užitečných knihoven a funkcí. ASP.NET je pro upřesnění jedna ze součástí .NET frameworku.

ASP.NET běží na serveru IIS (Internet Information Services) a teoreticky může běžet i na webserveru Apache jako modul (podobně jako PHP). S instalací plné verze Visual Studia nebo Visual Studia verze Community, která je zadarmo, se vám nainstaluje i tento server. Stránky tak můžete ladit jednoduše ve svém počítači. Ohledně českých freehostingů na zkoušení webů v ASP.NET stojí za zkoušku http://www.asp2.cz. Místa tam není mnoho, ale na pokusy nebo osobní web to bohatě stačí. Pro vážnější projekty je třeba si webhosting koupit, ale to platí asi u všech technologií.

WebForms, MVC a Core

Microsoft nám nabízí hned několik způsobů jak webové stránky vytvářet. Tím historicky nejstarším byly WebForms, které jsou dnes již poměrně nezajímavé. Jejich nástupcem je ASP.NET MVC a to je v současné době nahrazováno technologií ASP.NET Core, která je naštěstí velmi podobná.

WebForms

WebForms byl pokus přenést WinForms (tedy standardní formulářové/okenní aplikace, jak je známe z desktopu) na web. Idea je jednoduše v designeru poskládat formulář z kontrolek z toolboxu (tlačítka, popisky, textová pole atd.) a těmto ovládacím prvkům přiřadit události. Aplikace se navenek chová jako desktopová, ale na pozadí je složitější logika. Úkol nasimulovat desktopovou aplikaci na webu je poněkud nelehký a to z toho důvodu, že protokol HTTP je bezstavový. Výhodou WebForms je obrovská rychlost tvorby zejména aplikací, kde je hodně formulářů. Nevýhodou je komplikovanější architektura a problém udělat cokoli "jinak" nebo spolupracovat s dalšími technologiemi. Kvůli těmto problémům se již WebForms příliš nepoužívají.

MVC

MVC je novější koncept a jde na celou věc jinak. Rozděluje webovou aplikaci do komponent 3 typů: Kontrolery, Modely a Pohledy (Model View Controller). Kontroler je řídící komponenta, která přijme data od uživatele a komunikuje s modelem. Model obsahuje logiku, pracuje s databází a podobně. Data od modelu předá kontroler pohledu. Pohled je vlastně šablonou, do které se data vloží a vznikne výsledná HTML stránka. Jednoduše řečeno, cílem konceptu je zpřehlednit architekturu webu a rozdělit ho na 2 části - Logiku a Výstup. Kontroler poté tyto 2 části propojuje.

Core

Jelikož se Microsoft stále více snaží působit v open source komunitě, byla po otevření jazyka C# a .NET frameworku jen otázka času, než se firma rozhodne umožnit užívání ASP.NET i mimo operační systém Windows. ASP.NET Core se od ASP.NET MVC liší zejména tím, že na server nahráváme kromě naší aplikace i samotný framework ASP.NET, který již tedy nemusí být na serveru nainstalován. Svou aplikaci tedy můžeme nahrát kamkoli, i kde není prostředí Windows nebo ASP.NET. Aby to nebylo moc jednoduché, tak kromě přístupu MVC přináší Core i další způsoby jak webové aplikace tvořit. ASP.NET Core je v současné době nejvyvíjenější a proto se určitě vyplatí učit právě tuto technologii.

Nastínili jsme si tedy o co asi půjde. V příští lekci, Úvod do webových aplikací v ASP.NET, si uděláme úvod do webových aplikací, abychom pochopili proč jsou žádanější než aplikace desktopové.


 

 

Článek pro vás napsal David Čápka
Avatar
Jak se ti líbí článek?
26 hlasů
Autor pracuje jako softwarový architekt a pedagog na projektu ITnetwork.cz (a jeho zahraničních verzích). Velmi si váží svobody podnikání v naší zemi a věří, že když se člověk neštítí práce, tak dokáže úplně cokoli.
Unicorn College Autor sítě se informační technologie naučil na Unicorn College - prestižní soukromé vysoké škole IT a ekonomie.
Miniatura
Všechny články v sekci
Tvorba webů v ASP.NET
Miniatura
Následující článek
Úvod do webových aplikací v ASP.NET
Aktivity (3)

 

 

Komentáře
Zobrazit starší komentáře (21)

Avatar
Kit
Redaktor
Avatar
Kit:15.1.2014 21:41

Záleží na šikovnosti programátora, obvykle to vyjde nastejno. Při výběru jsou rozhodující jiná kritéria než rychlost.

Odpovědět 15.1.2014 21:41
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Petr Čech
Redaktor
Avatar
Petr Čech:15.1.2014 21:46

Měl jsem na mysli jestli se mi nebudou 10s načítat knihovny, nebo něco podobného. Moje škola má totiž web v ASP.NETu a požadavky zpracovává hrozně pomalu.

Odpovědět 15.1.2014 21:46
Life doesn't give you lemons. You need to grow them patiently and then sell the lemonade.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Petr Čech
Kit:15.1.2014 21:50

Nevím jak v ASP, ale v PHP se načítají jen potřebné knihovny. Obvyklá doba zpracování je v jednotkách až desítkách ms.

Odpovědět 15.1.2014 21:50
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
mkub
Redaktor
Avatar
Odpovídá na Petr Čech
mkub:16.1.2014 0:36

spracovanie poziadavok zalezi na viacerych faktoroch:

  • rychlost nacitania kniznic (pokial si kniznice neprednacitava)
  • rychlost a vytazenost sitete
  • rychlost databazoveho stroja
  • pocetnost kolizii v sieti
  • vytazenie weboveho a databazoveho servera
 
Odpovědět 16.1.2014 0:36
Avatar
Honza Chmelík:6.2.2014 23:32

Může mi prosím někdo poradit:(
Nahrál jsem si své zkušební webowky na výše zmíněný web(http://www.asp2.net) do složky wwwroot jsem nahrál všechny soubory, ale hlásí mi to error konkrétně :Could not load type 'Default.Default'.

Chybný řádek:

<%@ Page Language="C#" AutoEventWire­up="true" CodeBehind="De­fault.aspx.cs" Inherits="Defau­lt.Default" %>

Chápu, že musím změnit to Default.Default na něco jiného, ale nejsem si jistý na co...ve Visualu mi to funguje...

Editováno 6.2.2014 23:33
 
Odpovědět 6.2.2014 23:32
Avatar
 
Odpovědět 7.2.2014 22:22
Avatar
martin.stiglinc
Redaktor
Avatar
martin.stiglinc:14.8.2015 13:07

Na zaklade coho sa programator rozhoduje, ktory sposob je pre jeho projekt najlepsi? Ci si ma vybrat MVC alebo MVC SinglePage pripadne ci to bude MVC WebForms? Napriklad ak tam bude registracia uzivatelov, dake platobne systemy, sms-brana na posielanie sms tymto registrovanym uzivatelom? Co vybrat?

Odpovědět 14.8.2015 13:07
Tomorow is the very first day of the rest of your life.
Avatar
Odpovídá na Honza Chmelík
andrej.misuta:6.4.2016 15:45

Ako si to vyriešil, prosím? :)

 
Odpovědět 6.4.2016 15:45
Avatar
Odpovídá na martin.stiglinc
Michal Štěpánek:6.4.2016 18:16

V podstatě musíš udělat stránky v tom, co umíš. Nicméně WebForms se už asi moc vyvíjet nebude, takže bude lepší používat MVC. A jestli SPA nebo jen MVC (s oddělenými stránkami) asi hodně záleží na složitosti, resp. rozvětvenosti cílového projektu. Na jednodušší weby se hodí SPA na hodně složité (např. eshop) se moc SPA nehodí... Tím nechci tvrdit, že by se třeba eshop v SPA udělat nedal, ale podle mě by to byl čirý masochismus... 8-)

Odpovědět  +2 6.4.2016 18:16
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na martin.stiglinc
Neaktivní uživatel:6.4.2016 18:51

Pokud bych dělal 10 let ve webformech a nikdy MVC neviděl, pak bych možná zvážoval webformy, jinak určitě MVC. Single page, jak už název napovídá, se hodí pro jednu stránku.

Odpovědět 6.4.2016 18:51
Neaktivní uživatelský účet
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 31. Zobrazit vše