ASP.NET

**ASP.NET** je súčasť .NET Frameworku firmy Microsoft pre tvorbu webových aplikácií a služieb. Je nástupcom technológie ASP (Active Server Pages) a priamym konkurentom JSP (JavaServer Pages).

## Princípy ASP.NET
Aj keď názov ASP.NET je odvodený od staršej technológie pre vývoj webov ASP, obidve technológie sú veľmi odlišné. ASP.NET je založený na CLR (Common Language Runtime), ktorý je zdielaný všetkými aplikáciami postavenými na .NET Frameworku. Programátori tak môžu realizovať svoje projekty v akomkoľvek jazyku podporujúcom CLR, napr. Visual Basic.NET, JScript.NET, C#, Managed C++, ale aj mutácie Perlu, Pythonu a ďalších. Aplikácie založené na ASP.NET sú rýchlejšie, lebo sú predkompilované do jedného či niekoľkých málo DLL súborov, na rozdiel od čisto skriptovacích jazykov, kde sú stránky pri každom prístupe znovu a znovu parsované.

ASP.NET uľahčuje programátorom prechod od programovania klasických aplikácií pre Windows do prostredia webu: stránky sú poskladané z objektov, ovládacích prvkov (*Controls*), ktoré sú obdobou ovládacích prvkov vo Windows. Pri tvorbe webových stránok je teda možné používať ovládacie prvky ako tlačidlo (*Button*), nápis (*Label*) a ďalšie. Týmto prvkom je možné priraďovať určité vlastnosti, zachytávať na nich udalosti, apod. Tak, ako sa ovládacie prvky pre Windows samy kreslia do formulárov na obrazovku, kompilátor produkuje z webových ovládacích prvkov HTML kód, ktorý tvorí časť výslednej stránky poslanej do klientovho prehliadača.

## Výhody ASP.NET oproti ASP
* vďaka kompilovanému kódu beží aplikácia rýchlejšie a viac chýb je zachytených už pri vývoji,
* užívateľsky definované ovládacie prvky je možné použiť ako šablóny, čím sa významne redukuje duplicitný kód,
* podobný prístup ako k aplikáciám pre Windows zjednodušuje prechod od jedného prostredia k druhému,
* bohatý výber ovládacích prvkov a knižníc veľmi zrýchľuje vývoj aplikácií,
* programátori majú na výber veľké množstvo programovacích jazykov,
* schopnosť cachovať celú stránku alebo len jej časť podstatne zvyšuje výkon serveru,
* dá sa prevádzkovať na rôznych operačných systémoch aj webových serveroch, napr. IIS (Windows), Apache (Windows, Linux s open source implementáciou.NETu Mono).

## Stavové prostredie nad bezstavovým protokolom
Aj keď webový protokol HTTP je sám o sebe bezstavový (t. j. jednotlivé požiadavky od užívateľa medzi sebou nie sú previazané), zachovanie kontextu medzi jednotlivými požiadavkami vyžaduje. ASP.NET tento problém rieši kombináciou HTML a JavaScriptu pomocou dvoch základných technik:

* ViewState – uchováva informácie medzi opakovaným odosielaním formuláru na server (postbackom) v zakódovanom tvare a v skrytých formulárových poliach. Jeho výhodou je, že využíva len HTML a nevyžaduje žiadnou špeciálnu podporu na strane servera ani klienta. Nevýhodou je, že sa medzi serverom a klientom prenáša väčší objem dát, hlavne ak je ViewState využívaný nesprávne.

* Session State – oproti tomu ukladá všetky informácie na strane servera a predáva (typicky ako cookie alebo súčasť URL) len jednoznačný identifikátor. To síce zmenšuje objem prenášaných dát, ale kladie vyššie nároky na výkon serveru. Pokiaľ sa sessions používajú nesprávne, môže byť server náchylný aj k Denial of Service útokom. Oproti ASP umožňuje ASP.NET ukládanie session state do samostatného procesu alebo na SQL server. To zjednodušuje použitie session vo webových farmách, zvyšuje výkon a umožňuje stav zachovať aj pri reštarte serveru.

## Aktuálne verzie
*.NET Framework 4.5 bol uvoľnený v roku 2012
*.NET Framework 4.0 bol uvoľnený v roku 2010
* .NET Framework 3.5 bol uvoľnený 19. novembra 2007
* Mono 1.2.6 bolo uvolnené 12. decembra 2007

## Externé odkazy
* www.asp.net – oficiálna stránka technológie ASP.NET 
* http://msdn.microsoft.com – ASP.NET na MSDN 
* http://www.mono-project.com – Mono opensource implementácia.NET Frameworku 
* http://quickstarts.aspnet.sk  – príručka ASP.NET 

Kategória:.NET