SlideShare a Scribd company logo
1 of 37
TNPW2
2011/2012
05 – Webové aplikace v ASP.NET


Mgr. Lukáš Vacek
lukas.vacek@uhk.cz
2




Agenda
         •   Co je ASP?
         •   Co je ASP.NET, .NET Framework, Mono?
         •   Výhody a nevýhody ASP.NET
         •   Jak funguje ASP.NET?
         •   PostBack, ViewState, MVC, Razor
         •   Vyrovnávací paměť, kešování (cache), validátory
         •   Konfigurace, nasazení v provozu
         •   HTTP moduly, HTTP handlery
         •   Vývojové nástroje
         •   Internet, doporučená literatura
3

Co je ASP? Vztah ASP a ASP.NET
• Technologie ASP (Active Server Pages) je „předchůdcem“ ASP.NET!

• ASP vytvořila fy Microsoft, rozšířila se ve druhé polovině 90. let
• V této době byla ASP spolu s PHP pravděpodobně nejpoužívanější vývojovou platformou
  pro webové aplikace
• Programovací jazyky pro ASP: VB Script, JScript...
• ASP se nepřekládá (jedná se o interpretované prostředí)!
• Na ASP stránkách je možné využívat COM komponenty >> málo rozšířené
• Největší problémy ASP:
   ▫ Špatná udržovatelnost kódu, míchání jednotlivých aplikačních vrstev,
   ▫ neexistence kvalitního vývojového prostředí.

• Pozor: ASP není ASP.NET!
4




Agenda
          Co je ASP? Vztah ASP a ASP.NET
         • Co je ASP.NET, .NET Framework, Mono?
         • Výhody a nevýhody ASP.NET
         • Jak funguje ASP.NET?
         • PostBack, ViewState, MVC, Razor
         • Vyrovnávací paměť, kešování (cache), validátory
         • Konfigurace, nasazení v provozu
         • HTTP moduly, HTTP handlery
         • Vývojové nástroje
         • Internet, doporučená literatura
5

Historie ASP.NET
• 1997 – po vydání IIS 4.0 Mark Anders a Scott Guthrie navrhli nový model pro webové
  aplikace, který odděluje strukturu od obsahu
• Scott Guthrie v Javě  naprogramoval prototyp XSP
• Následující beta verze byla přejmenovaná na ASP+, využívala CLR a nový jazyk C#
• 2000 – představení veřejnosti jako ASP+, později ASP.NET (.NET jako společný brand)
• 2002 – ASP.NET 1.0 jako součást nového .NET Frameworku 1.0
• 2003 – ASP.NET 1.1, MS Visual Studio 2003
   ▫ Doladění základních vlastností
• 2005 – ASP.NET 2.0, MS Visual Studio 2005
   ▫ Master pages, webparts, themes, skins, navigace, membership, XHTML
• 2007 – ASP.NET 3.5 se service packy se používá dodnes, MS Visual Studio 2008
   ▫ C# 3.0, VB9, později AJAX, MVC, LINQ, Entity Framework apod.
• 2010 – ASP.NET 4.0, MS Visual Studio 2010

• http://en.wikipedia.org/wiki/ASP.NET
• http://2008.webexpo.cz/media/files/lectures/webexpo2008-bernard-roubicek-aspnet-35.ppsx
6

ASP.NET a .NET Framework, základní pojmy
• .NET Framework fy Microsoft je nadstavba nad operačním systémem
• ASP.NET je součást tohoto frameworku, v rámci které jsou vytvářeny, nasazovány
  a provozovány webové aplikace a webové služby (obvykle na IIS – web server na Win OS)
• Aktuální verze je ASP.NET 4.0

• Základní funkcionalitu celého .NET Frameworku a spouštění řízeného (managed) kódu
  zajišťuje běhové prostředí CLR (Common Language Runtime – obdoba Java/JVM)
• .NET Framework umožňuje používat různé jazyky, např. C#, C++, VB.NET, Python a další,
  které splňují předpoklady definované v CLS (Common Language Specification)
• Výstupem kompilátoru je řízený kód – tzv. MSIL (Microsoft Intermediate Language)
• MSIL je před svým spuštěním přeložen do strojového kódu za pomocí kompilátoru
  označovaného jako JITter (Just-in-time)

• .NET Framework obsahuje i jiné části než jen ASP.NET, např. Windows Communication
  Foundation (WCF), ADO.NET nebo .NET Compact Framework pro mobilní zařízení
7

Architektura .NET, základní schéma

            C#         VB.NET         …




                 Common Language Specification (CLS)
                     .NET aplikace (ASP.NET + WinForm)
                                ADO.NET a XML
                          Base Class Library (BCL)
                     Common Language Runtime (CLR)
                        Windows
          Windows
                         Mobile
                                   Free BSD*     Linux*     ...
                       Qualcomm,     IA-64,
         Intel/AMD
                        Samsung    UltraSparc
                                                Intel/AMD   …
8

Projekt Mono
• Projekt MONO je multiplatformní implementace .NET Frameworku, založená na
  standardech ECMA
• Aktuálně projekt zaštiťuje fy Novell
• Mono implementuje běhové prostředí CLR a knihovnu základních tříd BCL
• Umožňuje spouštění aplikací vytvořených pod .NET Frameworkem, kompatibilita není
  úplně 100%
• Mono podporuje např. Linux, Mac OSX, Solaris, Windows atd.

http://www.mono-project.com/Main_Page

Přednáška
• Tomáš Petříček, .NET a projekt MONO – Běží .NET i na jiných operačních systémech?
• http://www.avc-cvut.cz/avc.php?id=2788&language=cs_CZ
9




Agenda
          Co je ASP? Vztah ASP a ASP.NET
          Co je ASP.NET, .NET Framework, Mono?
         • Výhody a nevýhody ASP.NET
         • Jak funguje ASP.NET?
         • PostBack, ViewState, MVC, Razor
         • Vyrovnávací paměť, kešování (cache), validátory
         • Konfigurace, nasazení v provozu
         • HTTP moduly, HTTP handlery
         • Vývojové nástroje
         • Internet, doporučená literatura
10

Výhody ASP.NET
•   Striktně objektový přístup
•   Řízený (managed) kód, výjimka je možná v C++
•   Oddělení kódu od designu, větší přehlednost
•   Kvalitní vývojové prostředí (základní verze zdarma), podpora mnoha jazyků.
•   Snadná implementace (např. webové služby), konfigurace, testování, deployment
•   Řešení řady obvyklých problémů je přímo součástí ASP.NET (autentizace, validátory,
    navigace, šablony), k dispozici je řada hotových komponent
•   Jasné oddělení jednotlivých vrstev aplikace a jejich opakovaná použitelnost (web,
    desktop, kapesní počítače)
•   Snadná přístupnost k datům (db, XML, web services, REST, JSON)
•   Umí řešit (obcházet) bez-stavovost HTTP/(X)HTML
•   Provádění nativního kódu (vyšší výkon!)
•   Kvalitní dokumentace

• http://en.wikipedia.org/wiki/ASP.NET
11

Nevýhody ASP.NET
• Pochází od Microsoftu >> předsudky a odmítání
• ASP.NET se stále dynamicky rozvíjí (MVC, Entity framework, LINQ…)
• V použitelné podobě je ASP.NET zatím dostupná pouze pro OS Windows (obchodní
  politika, nedodělané Mono atd.)
• Má silnou vazbu na IIS
• V ČR je aktuálně málo freehostingů s podporou ASP.NET (je to dražší a technologicky
  náročnější než LAMP = linux + apache + mysql + php)
• Řada používaných vizuálních komponent generuje nevalidní/nehezký (X)HTML kód >>
  postupné zlepšování Web Forms, možnost přímé kontroly u MVC
• Při nevhodném použití Viewstate roste množství přenášených dat
• U Web Forms nemá programátor nad nižšími úrovněmi aplikace dobrou kontrolu
• ASP.NET je mocný nástroj, ale jeho zvládnutí si vyžádá čas (delší křivka učení)
12




Agenda
          Co je ASP? Vztah ASP a ASP.NET
          Co je ASP.NET, .NET Framework, Mono?
          Výhody a nevýhody ASP.NET
         • Jak funguje ASP.NET?
         • PostBack, ViewState, MVC, Razor
         • Vyrovnávací paměť, kešování (cache), validátory
         • Konfigurace, nasazení v provozu
         • HTTP moduly, HTTP handlery
         • Vývojové nástroje
         • Internet, doporučená literatura
13

Jak funguje ASP.NET?
• ASP.NET stránky používají příponu *.aspx. (existuje celá řada dalších přípon pro další
  využití – *.ascx, *.asmx, *.ashx, *.config, *.sitemap apod.)
• Provádění ASP.NET stránky v modelu Web Forms (vzor MVP) není lineární (to je rozdíl
  proti interpretovaným technologiím)!
• V každé fázi zpracování je vyvolána a následně zpracována nějaká událost (Init, Load,
  UnLoad, Render apod.)
• Kód „pověšený“ na tyto události může být
   ▫   Vyvolán při zpracování nebo uživatelem,
   ▫   součástí *.aspx, v separátním souboru, v DLL knihovně
• Kromě běžného (X)HTML kódu obsahují stránky tzv. serverové ovládací prvky (Server
  Control, Web Forms), které
   ▫   Zapouzdřují vizuální elementy a zajišťují tak interakci s uživatelem,
   ▫   generují události (změna hodnoty, stisknutí tlačítka, … ), dále zpracovávané programovým kódem


• http://zdrojak.root.cz/clanky/prezentacni-vzory-zrodiny-mvc/
14

Oddělení vzhledu a kódu stránky (Web Forms)

          1 soubor                                      2 soubory


             kód

          <tagy>                               <tagy>               kód




        Form1.aspx                          Form1.aspx         Form1.aspx.cs
                                                               Form1.aspx.vb

• Vazba mezi šablonou a programovým kódem…
  ▫   <%@Page CodeBehind=...   pro VS.NET
  ▫   <%@Page Src=...          pro samotný framework
15




Agenda
          Co je ASP? Vztah ASP a ASP.NET
          Co je ASP.NET, .NET Framework, Mono?
          Výhody a nevýhody ASP.NET
          Jak funguje ASP.NET?
         • PostBack, ViewState, MVC, Razor
         • Vyrovnávací paměť, kešování (cache), validátory
         • Konfigurace, nasazení v provozu
         • HTTP moduly, HTTP handlery
         • Vývojové nástroje
         • Internet, doporučená literatura
16

Zpracování událostí (Postback) v ASP.NET web forms

              Prohlížeč               Zpráva o                 Server
                                      události
                                                          Zpracování zprávy

              Událost
                                 Zavolání procedury
                                pro obsluhu události



                                                             Obsluha události

                                    Aktualizovaná
                                       stránka


• S událostmi je třeba šetřit, hlavně pokud se nejedná o intranetovou aplikaci…
   ▫   Zvyšují zátěž serveru,
   ▫   Zpomalují klienta.
17

Viewstate
• ViewState je kolekce reprezentující stav stránky a všech obsažených ovládacích prvků
• Spolu s technologii PostBack řeší ViewState bez-stavovost HTTP/(X)HTML
• Díky Viewstate si prvky mohou zachovávat svůj stav napříč jednotlivými requesty
• Do kolekce lze programově přidávat proměnné (tady opatrně!)
• Stav prvků se neukládá na serveru, ale je přesouván na klienta a zpět coby skryté pole
  formuláře
• Možnost volby pro ViewState:
    ▫   ON – úspora výpočetního času, ale více kB putujících mezi klientem a serverem.
    ▫   OFF – nastavení hodnot, výpočty, načítání dat z databáze apod. probíhá při každém PostBacku


• Pokud není třeba, zakažte použití ViewState (pro jednotlivé ovládací prvky, celou stránku
  nebo aplikaci), snížíte objem přenášených dat mezi klientem a serverem

• http://www.aspnet.cz/Articles/235-viewstate-k-cemu-je-a-jak-ho-spravne-pouzivat.aspx
18

ASP.NET MVC
• Z jiných technologií (např. Java Spring MVC) osvědčený Model – View – Controller mění
  obvyklý způsob zpracování stránky ve Web Forms řízený událostmi
• Pomocí routování URL se rozhoduje, který controller bude konkrétní akci zpracovávat
• Striktněji odděluje UI, aplikační logiku a data, zlepšuje kontrolu nad odesílaným (X)HTML
  kódem, má možnost přizpůsobení výstupu různým klientským platformám
• Lepší testovatelnost, možnost využívání mock objektů

• Nadstavba ASP.NET 3.5, musí se doinstalovat! Od verze 4.0 je MVC podporován přímo
• Někdy trochu pracné, programátor si musí zvyknout, určité riziko míchání kódu

• Vznikl na základě poptávky vývojářů!
• Je podporován fy Microsoft, bude koexistovat vedle obvyklého Web Forms (MVP)

• http://www.asp.net/mvc/
• http://en.wikipedia.org/wiki/ASP.NET_MVC_Framework
• http://www.augi.cz/programovani/aspnet-mvc-a-routing/
19

ASP.NET Razor
• Razor je tzv. view engine, schopný pracovat v kombinaci s MVC nebo Web Forms
• Hodí se pro jednodušší aplikace (quick&win vývoj, prototypy), lze jej použít samostatně
• Rychlá křivka učení
• Razor + WebMatrix (vývojové prostředí) + SQL Server Compact Edition 4.0 (databáze) >>
  start pro úplné začátečníky (aspoň podle představ Microsoftu )
• Výhodou je možnost vývoje aplikací pro různé platformy (web, desktop, mobily, xbox…)
• Je to trochu divočina, jako základní PHP 
• Bere už v úvahu validaci uživatelských vstupů a parametrizované dotazy do databáze

• http://zdrojak.root.cz/clanky/microsofti-lizatka-pro-zacatecniky-sance-pro-boj-s-php-
  nebo-krok-zpet/
• http://zdrojak.root.cz/clanky/podrizne-razor-php/
20

ASP.NET Dynamic Data
• ASP.NET Dynamic Data jsou součástí .NET Frameworku (od verze 3.5 SP1) a slouží
  k rychlému vytvoření webové aplikace či její části, typicky administrace, na základě
  objektového modelu databáze

• http://zdrojak.root.cz/clanky/asp-net-dynamic-data/
• http://www.asp.net/dynamicdata
• http://www.slideshare.net/micham/aspnet-35-sp1-dynamic-data-presentation
21




Agenda
          Co je ASP? Vztah ASP a ASP.NET
          Co je ASP.NET, .NET Framework, Mono?
          Výhody a nevýhody ASP.NET
          Jak funguje ASP.NET?
          PostBack, ViewState, MVC, Razor
         • Vyrovnávací paměť, kešování (cache), validátory
         • Konfigurace, nasazení v provozu
         • HTTP moduly, HTTP handlery
         • Vývojové nástroje
         • Internet, doporučená literatura
22

Vyrovnávací paměť (buffer), Cache
Vyrovnávací paměť (buffer)
• ASP.NET stránky mají implicitně zapnuté využití vyrovnávací paměti (bufferu) při
  sestavování výstupu.
• Buffer lze vypnout pomocí příkazu response.buffer = false

Cache
• Použití kešování (cache) je vhodné při opakovaných požadavcích na konkrétní stránku
• Cache je možné nastavit pro
   ▫   celou stránku (podle parametrů, jazyka, prohlížeče apod.),
   ▫   část stránky (šetří čas nutný pro získání dat),
   ▫   rozšiřitelný objekt Cache (Cache API) – možnost uložení libovolného objektu.
• Flexibilní politiky pro expiraci, možnost invalidace cache při změně souboru apod.
23

Validátory, implicitní validace
 • Ověření syntaxe zadaných dat
    ▫   na straně klienta (rychlost, pohodlí),
    ▫   na straně serveru (bezpečnost).
 • Různé možnosti zobrazení chyby
 • Validátory je možné dle potřeby sdružovat do skupin
 • Různé typy validace
    ▫   RequiredFieldValidator,
    ▫   CompareValidator,
    ▫   RangeValidator,
    ▫   RegularExpressionValidator,
    ▫   CustomValidator.


 • V ASP.NET je možné automaticky zkontrolovat vstupní data od uživatele (od verze 1.1
   implicitně povoleno) před jejich zpracováním
<%@ Page validateRequest="true" language="c#" ...
24




Agenda
          Co je ASP? Vztah ASP a ASP.NET
          Co je ASP.NET, .NET Framework, Mono?
          Výhody a nevýhody ASP.NET
          Jak funguje ASP.NET?
          PostBack, ViewState, MVC, Razor
          Vyrovnávací paměť, kešování (cache), validátory
         • Konfigurace, nasazení v provozu
         • HTTP moduly, HTTP handlery
         • Vývojové nástroje
         • Internet, doporučená literatura
25

Konfigurace ASP.NET aplikací
• Je uložena ve formátu XML do souboru web.config v adresáři v *.aspx
  stránkami
• Obsahuje všechna nastavení ASP.NET (autentizace, kompilace, trasování, ladění,
  chybové stránky, moduly, handlery, …)
• Jakékoliv uživatelské nastavení je možné definovat v sekci <appSettings>,
  která je rozšiřitelná >> je možné přidávat vlastní sekce dat
• Můžete využít více web.config souborů v jedné aplikaci, podle adresářové
  struktury (1 adresář = 1 web.config)
• V souboru machine.config (v adresáři s instalovaným frameworkem) jsou
  nastaveny parametry pro celý web server (raději tam nelezte!)
26

Nasazení ASP.NET aplikace do provozu

• Stačí zkopírovat na určené místo
  ▫ Odpadá nutnost registrace komponent,
  ▫ Odpadá nutnost restartu služeb/serveru.
• Podpora pro všechny součásti
  ▫ Web stránky, web služby,
  ▫ Zkompilované komponenty (DLL),
  ▫ Konfigurační soubory.
• Aktualizace aplikací je možná za provozu
  ▫ Nakopírujte nové DLL na místo původního,
  ▫ Aplikace použijí nové DLL počínaje příštím klientským požadavkem.
27




Agenda
          Co je ASP? Vztah ASP a ASP.NET
          Co je ASP.NET, .NET Framework, Mono?
          Výhody a nevýhody ASP.NET
          Jak funguje ASP.NET?
          PostBack, ViewState, MVC, Razor
          Vyrovnávací paměť, kešování (cache), validátory
          Konfigurace, nasazení v provozu
         • HTTP moduly, HTTP handlery
         • Vývojové nástroje
         • Internet, doporučená literatura
28

HTTP moduly, HTTP handlery
• Kromě klasických *.aspx stránek je možné psát webové aplikace na nižší úrovni (HTTP
  moduly a HTTP handlery) a s jejich pomocí vyřizovat některé požadavky na serveru
• Některé HTTP moduly, např.
   ▫   Output Cache,
   ▫   Načítání a ukládání Session stavu,
   ▫   Autentizace,
   ▫   Autorizace.
• HTTP moduly je možné skládat na sebe, mohou rozšířit nebo přepsat prakticky všechny
  činnosti, které při běhu .NET aplikace nastávají
• HTTP handler je vždy na konci, provádí vlastní zpracování (např. *.aspx souborů, načítání
  obrázků z databáze apod.) požadavku
29

Zpracování požadavku v ASP.NET

                       Web server (IIS, …)

                       ASP.NET runtime


                               Global.asax

        Aplikace               HTTP modul

                               HTTP modul



                          HTTP handler       HTTP handler
        HTTP handler
                         (Web services)       (Web form)
30




Agenda
          Co je ASP? Vztah ASP a ASP.NET
          Co je ASP.NET, .NET Framework, Mono?
          Výhody a nevýhody ASP.NET
          Jak funguje ASP.NET?
          PostBack, ViewState, MVC, Razor
          Vyrovnávací paměť, kešování (cache), validátory
          Konfigurace, nasazení v provozu
          HTTP moduly, HTTP handlery
         • Vývojové nástroje
         • Internet, doporučená literatura
31

Vývojové nástroje pro ASP.NET
• Visual Studio .NET 2010
   ▫   ASP.NET 4.0 s řadou vylepšení (např. AJAX, LINQ, Entity Frm, MVC)
   ▫   Komplexní nástroj v různých verzích, určený pro vývoj, testování a řízení celých projektů
   ▫   Express edice k dispozici zdarma
   ▫   SQL Server Express – prakticky použitelný pro menší webové aplikace


• Visual Web Developer Express si můžete stáhnout na adrese…
  http://www.microsoft.com/express/Web/

• Microsoft WebMatrix
   ▫ Jednoduchý nástroj pro tvorbu webů
   ▫ Optimalizovaný pro Razor
   ▫ http://www.asp.net/webmatrix

• Ostatní
  http://monodevelop.com/ (MonoDevelop)
  http://www.icsharpcode.net/OpenSource/SD/ (SharpDevelop)
32

Team Foundation Server
• Microsoft Visual Studio Team Foundation Server 2010
   ▫   Nástroj pro týmovou spolupráci a komplexní správu celého životního cyklu aplikace
   ▫   Plánování, úkoly, návrh, implementace, verzování zdrojových kódů, různé druhy testů (unit, funkční,
       zátěžové…), podpora metodik, reportingy…
   ▫   Integrace s Visual Studiem, MS Project, MS Sharepoint…


• Pro větší projekty nebo týmy vývojářů nezbytnost!

• http://www.microsoft.com/business/smb/cs-cz/servery-a-nastroje/visual-studio.mspx
• http://www.youtube.com/watch?v=o75ZeH46SRU
• http://www.mstv.cz/ několik českých video podcastů na téma MS TFS a testování
33

Microsoft Sharepoint
• Webová aplikační platforma pro spolupráci v rámci organizace
• Aktuální verze Microsoft Sharepoint 2010, různé licence (verze Foundation je zdarma)

• Sdílení dokumentů, informací a znalostí, integrace s Office, emailem a dalšími nástroji
• Podpora plánování (kalendáře, úkoly), rozhodovacích procesů (workflow), vyhledávání
• Lze vybudovat v podstatě libovolný typ aplikace (portál, blog, wiki) v prostředí
  Internetu/Intranetu pomocí vestavěných nástrojů

• Co nejde „naklikat“ přímo, lze naprogramovat pomocí tzv. web parts (.NET komponenty)
• V Sharepointu je „všechno“ seznam nebo knihovna 

• Spolupracující aplikace: Office, SP Designer, InfoPath, Visual Studio, TFS…

• http://sharepoint.microsoft.com/cs-cz/Pages/default.aspx
34




Agenda
          Co je ASP? Vztah ASP a ASP.NET
          Co je ASP.NET, .NET Framework, Mono?
          Výhody a nevýhody ASP.NET
          Jak funguje ASP.NET?
          PostBack, ViewState, MVC, Razor
          Vyrovnávací paměť, kešování (cache), validátory
          Konfigurace, nasazení v provozu
          HTTP moduly, HTTP handlery
          Vývojové nástroje
         • Internet, doporučená literatura
35

Odkazy na Internetu
•   http://www.asp.net/Default.aspx (Oficiální web pro ASP.NET)
•   http://msdn.microsoft.com/en-us/library/dd566231.aspx (ASP.NET web development)
•   http://www.codeproject.com/ (příklady, zdrojové kódy)
•   http://msdn2.microsoft.com/en-us/default.aspx (MSDN)
•   http://en.wikipedia.org/wiki/ASP.NET
•   http://quickstarts.asp.net/previews/ (MVC a spol.)
•   http://blogs.msdn.com/vyvojari/archive/2009/10/04/zrychlete-v-voj-web-aplikac-s-toolkity.aspx
36

Doporučená literatura
•   Písek, Slavoj – ASP.NET začínáme programovat, Grada 2003
•   MacDonald, Matthew; Szpuszta, Mario – ASP.NET 3.5 a C# 2008, Zoner Press 2008
•   Watson, Ben – C# 4.0 – řešení praktických programátorských úloh, Zoner Press 2010
•   Esposito, Dino – Programming Microsoft ASP.NET MVC, Microsoft Press 2010
•   Pasch, Ondřej – Microsoft Sharepoint 2010, Praktický průvodce uživatele, CPress 2011
•   Curry, Ben – Microsoft Sharepoint 2010, Kapesní rádce administrátora, CPress 2011
37




Souhrn
          Co je ASP? Vztah ASP a ASP.NET
          Co je ASP.NET, .NET Framework, Mono?
          Výhody a nevýhody ASP.NET
          Jak funguje ASP.NET?
          PostBack, ViewState, MVC, Razor
          Vyrovnávací paměť, kešování (cache), validátory
          Konfigurace, nasazení v provozu
          HTTP moduly, HTTP handlery
          Vývojové nástroje
          Internet, doporučená literatura

More Related Content

What's hot (20)

TNPW2-2016-03
TNPW2-2016-03TNPW2-2016-03
TNPW2-2016-03
 
TNPW2-2014-02
TNPW2-2014-02TNPW2-2014-02
TNPW2-2014-02
 
TNPW2-2016-02
TNPW2-2016-02TNPW2-2016-02
TNPW2-2016-02
 
TNPW2-2016-05
TNPW2-2016-05TNPW2-2016-05
TNPW2-2016-05
 
TNPW2-2013-03
TNPW2-2013-03TNPW2-2013-03
TNPW2-2013-03
 
TNPW2-2016-04
TNPW2-2016-04TNPW2-2016-04
TNPW2-2016-04
 
Rich Internet Applications 2009 (Czech)
Rich Internet Applications 2009 (Czech)Rich Internet Applications 2009 (Czech)
Rich Internet Applications 2009 (Czech)
 
TNPW2-2012-03
TNPW2-2012-03TNPW2-2012-03
TNPW2-2012-03
 
TNPW2-2013-07
TNPW2-2013-07TNPW2-2013-07
TNPW2-2013-07
 
TNPW2-2013-02
TNPW2-2013-02TNPW2-2013-02
TNPW2-2013-02
 
TNPW2-2014-04
TNPW2-2014-04TNPW2-2014-04
TNPW2-2014-04
 
TNPW2-2016-06
TNPW2-2016-06TNPW2-2016-06
TNPW2-2016-06
 
TNPW2-2012-04
TNPW2-2012-04TNPW2-2012-04
TNPW2-2012-04
 
TNPW2-2011-06
TNPW2-2011-06TNPW2-2011-06
TNPW2-2011-06
 
TNPW2-2016-01
TNPW2-2016-01TNPW2-2016-01
TNPW2-2016-01
 
TNPW2-2012-02
TNPW2-2012-02TNPW2-2012-02
TNPW2-2012-02
 
TNPW2-2016-07
TNPW2-2016-07TNPW2-2016-07
TNPW2-2016-07
 
TNPW2-2012-07
TNPW2-2012-07TNPW2-2012-07
TNPW2-2012-07
 
Spring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou TvariSpring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou Tvari
 
Vývoj Windows Store aplikací pomocí HTML, CSS a Javascriptu
Vývoj Windows Store aplikací pomocí HTML, CSS a JavascriptuVývoj Windows Store aplikací pomocí HTML, CSS a Javascriptu
Vývoj Windows Store aplikací pomocí HTML, CSS a Javascriptu
 

Similar to TNPW2-2012-05

Borek Bernard: TypeScript - příčetný jazyk pro web
Borek Bernard: TypeScript - příčetný jazyk pro webBorek Bernard: TypeScript - příčetný jazyk pro web
Borek Bernard: TypeScript - příčetný jazyk pro webDevelcz
 
2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEEMartin Ptáček
 
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...Péhápkaři
 
Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScriptČtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScriptCtvrtkoncz
 
Výběr vhodných technologii pro startup v prostředí cloudu
Výběr vhodných technologii pro startup v prostředí clouduVýběr vhodných technologii pro startup v prostředí cloudu
Výběr vhodných technologii pro startup v prostředí clouduJan Kodera
 
How to installing IBM Verse on premises
How to installing IBM Verse on premisesHow to installing IBM Verse on premises
How to installing IBM Verse on premisesAles Lichtenberg
 
Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Tomáš Kukol
 
Moderni trendy ve_vyvoji_aplikaci
Moderni trendy ve_vyvoji_aplikaciModerni trendy ve_vyvoji_aplikaci
Moderni trendy ve_vyvoji_aplikaciRENESTEIN
 
Moderní Server Side UI Rendering v PHP
Moderní Server Side UI Rendering v PHPModerní Server Side UI Rendering v PHP
Moderní Server Side UI Rendering v PHPMichalMajer2
 
2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise Aplikací2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise AplikacíMartin Ptáček
 
DEV Čtvrtkon #76 - nopCommerce
DEV Čtvrtkon #76 - nopCommerceDEV Čtvrtkon #76 - nopCommerce
DEV Čtvrtkon #76 - nopCommerceCtvrtkoncz
 
Použití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaciPoužití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaciMartin Krištof
 
Migrace na windows azure
Migrace na windows azureMigrace na windows azure
Migrace na windows azureKenticoDominikP
 

Similar to TNPW2-2012-05 (20)

Borek Bernard: TypeScript - příčetný jazyk pro web
Borek Bernard: TypeScript - příčetný jazyk pro webBorek Bernard: TypeScript - příčetný jazyk pro web
Borek Bernard: TypeScript - příčetný jazyk pro web
 
2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE
 
ASP.NET 3.5 / futures
ASP.NET 3.5 / futuresASP.NET 3.5 / futures
ASP.NET 3.5 / futures
 
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...
 
Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScriptČtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
 
2010 Web Technologie 1
2010 Web Technologie 12010 Web Technologie 1
2010 Web Technologie 1
 
Výběr vhodných technologii pro startup v prostředí cloudu
Výběr vhodných technologii pro startup v prostředí clouduVýběr vhodných technologii pro startup v prostředí cloudu
Výběr vhodných technologii pro startup v prostředí cloudu
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
How to installing IBM Verse on premises
How to installing IBM Verse on premisesHow to installing IBM Verse on premises
How to installing IBM Verse on premises
 
Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]
 
Moderni trendy ve_vyvoji_aplikaci
Moderni trendy ve_vyvoji_aplikaciModerni trendy ve_vyvoji_aplikaci
Moderni trendy ve_vyvoji_aplikaci
 
Moderní Server Side UI Rendering v PHP
Moderní Server Side UI Rendering v PHPModerní Server Side UI Rendering v PHP
Moderní Server Side UI Rendering v PHP
 
TNPW2-2011-04
TNPW2-2011-04TNPW2-2011-04
TNPW2-2011-04
 
2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise Aplikací2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise Aplikací
 
Webové technologie
Webové technologieWebové technologie
Webové technologie
 
DEV Čtvrtkon #76 - nopCommerce
DEV Čtvrtkon #76 - nopCommerceDEV Čtvrtkon #76 - nopCommerce
DEV Čtvrtkon #76 - nopCommerce
 
TNPW2-2011-08
TNPW2-2011-08TNPW2-2011-08
TNPW2-2011-08
 
Použití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaciPoužití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaci
 
ASP.NET MVC a TDD
ASP.NET MVC a TDDASP.NET MVC a TDD
ASP.NET MVC a TDD
 
Migrace na windows azure
Migrace na windows azureMigrace na windows azure
Migrace na windows azure
 

More from Lukáš Vacek

More from Lukáš Vacek (7)

TNPW2-2014-01
TNPW2-2014-01TNPW2-2014-01
TNPW2-2014-01
 
TNPW2-2013-10
TNPW2-2013-10TNPW2-2013-10
TNPW2-2013-10
 
TNPW2-2013-09
TNPW2-2013-09TNPW2-2013-09
TNPW2-2013-09
 
TNPW2-2013-08
TNPW2-2013-08TNPW2-2013-08
TNPW2-2013-08
 
TNPW2-2013-06
TNPW2-2013-06TNPW2-2013-06
TNPW2-2013-06
 
TNPW2-2012-10
TNPW2-2012-10TNPW2-2012-10
TNPW2-2012-10
 
TNPW2-2012-09
TNPW2-2012-09TNPW2-2012-09
TNPW2-2012-09
 

TNPW2-2012-05

  • 1. TNPW2 2011/2012 05 – Webové aplikace v ASP.NET Mgr. Lukáš Vacek lukas.vacek@uhk.cz
  • 2. 2 Agenda • Co je ASP? • Co je ASP.NET, .NET Framework, Mono? • Výhody a nevýhody ASP.NET • Jak funguje ASP.NET? • PostBack, ViewState, MVC, Razor • Vyrovnávací paměť, kešování (cache), validátory • Konfigurace, nasazení v provozu • HTTP moduly, HTTP handlery • Vývojové nástroje • Internet, doporučená literatura
  • 3. 3 Co je ASP? Vztah ASP a ASP.NET • Technologie ASP (Active Server Pages) je „předchůdcem“ ASP.NET! • ASP vytvořila fy Microsoft, rozšířila se ve druhé polovině 90. let • V této době byla ASP spolu s PHP pravděpodobně nejpoužívanější vývojovou platformou pro webové aplikace • Programovací jazyky pro ASP: VB Script, JScript... • ASP se nepřekládá (jedná se o interpretované prostředí)! • Na ASP stránkách je možné využívat COM komponenty >> málo rozšířené • Největší problémy ASP: ▫ Špatná udržovatelnost kódu, míchání jednotlivých aplikačních vrstev, ▫ neexistence kvalitního vývojového prostředí. • Pozor: ASP není ASP.NET!
  • 4. 4 Agenda  Co je ASP? Vztah ASP a ASP.NET • Co je ASP.NET, .NET Framework, Mono? • Výhody a nevýhody ASP.NET • Jak funguje ASP.NET? • PostBack, ViewState, MVC, Razor • Vyrovnávací paměť, kešování (cache), validátory • Konfigurace, nasazení v provozu • HTTP moduly, HTTP handlery • Vývojové nástroje • Internet, doporučená literatura
  • 5. 5 Historie ASP.NET • 1997 – po vydání IIS 4.0 Mark Anders a Scott Guthrie navrhli nový model pro webové aplikace, který odděluje strukturu od obsahu • Scott Guthrie v Javě  naprogramoval prototyp XSP • Následující beta verze byla přejmenovaná na ASP+, využívala CLR a nový jazyk C# • 2000 – představení veřejnosti jako ASP+, později ASP.NET (.NET jako společný brand) • 2002 – ASP.NET 1.0 jako součást nového .NET Frameworku 1.0 • 2003 – ASP.NET 1.1, MS Visual Studio 2003 ▫ Doladění základních vlastností • 2005 – ASP.NET 2.0, MS Visual Studio 2005 ▫ Master pages, webparts, themes, skins, navigace, membership, XHTML • 2007 – ASP.NET 3.5 se service packy se používá dodnes, MS Visual Studio 2008 ▫ C# 3.0, VB9, později AJAX, MVC, LINQ, Entity Framework apod. • 2010 – ASP.NET 4.0, MS Visual Studio 2010 • http://en.wikipedia.org/wiki/ASP.NET • http://2008.webexpo.cz/media/files/lectures/webexpo2008-bernard-roubicek-aspnet-35.ppsx
  • 6. 6 ASP.NET a .NET Framework, základní pojmy • .NET Framework fy Microsoft je nadstavba nad operačním systémem • ASP.NET je součást tohoto frameworku, v rámci které jsou vytvářeny, nasazovány a provozovány webové aplikace a webové služby (obvykle na IIS – web server na Win OS) • Aktuální verze je ASP.NET 4.0 • Základní funkcionalitu celého .NET Frameworku a spouštění řízeného (managed) kódu zajišťuje běhové prostředí CLR (Common Language Runtime – obdoba Java/JVM) • .NET Framework umožňuje používat různé jazyky, např. C#, C++, VB.NET, Python a další, které splňují předpoklady definované v CLS (Common Language Specification) • Výstupem kompilátoru je řízený kód – tzv. MSIL (Microsoft Intermediate Language) • MSIL je před svým spuštěním přeložen do strojového kódu za pomocí kompilátoru označovaného jako JITter (Just-in-time) • .NET Framework obsahuje i jiné části než jen ASP.NET, např. Windows Communication Foundation (WCF), ADO.NET nebo .NET Compact Framework pro mobilní zařízení
  • 7. 7 Architektura .NET, základní schéma C# VB.NET … Common Language Specification (CLS) .NET aplikace (ASP.NET + WinForm) ADO.NET a XML Base Class Library (BCL) Common Language Runtime (CLR) Windows Windows Mobile Free BSD* Linux* ... Qualcomm, IA-64, Intel/AMD Samsung UltraSparc Intel/AMD …
  • 8. 8 Projekt Mono • Projekt MONO je multiplatformní implementace .NET Frameworku, založená na standardech ECMA • Aktuálně projekt zaštiťuje fy Novell • Mono implementuje běhové prostředí CLR a knihovnu základních tříd BCL • Umožňuje spouštění aplikací vytvořených pod .NET Frameworkem, kompatibilita není úplně 100% • Mono podporuje např. Linux, Mac OSX, Solaris, Windows atd. http://www.mono-project.com/Main_Page Přednáška • Tomáš Petříček, .NET a projekt MONO – Běží .NET i na jiných operačních systémech? • http://www.avc-cvut.cz/avc.php?id=2788&language=cs_CZ
  • 9. 9 Agenda  Co je ASP? Vztah ASP a ASP.NET  Co je ASP.NET, .NET Framework, Mono? • Výhody a nevýhody ASP.NET • Jak funguje ASP.NET? • PostBack, ViewState, MVC, Razor • Vyrovnávací paměť, kešování (cache), validátory • Konfigurace, nasazení v provozu • HTTP moduly, HTTP handlery • Vývojové nástroje • Internet, doporučená literatura
  • 10. 10 Výhody ASP.NET • Striktně objektový přístup • Řízený (managed) kód, výjimka je možná v C++ • Oddělení kódu od designu, větší přehlednost • Kvalitní vývojové prostředí (základní verze zdarma), podpora mnoha jazyků. • Snadná implementace (např. webové služby), konfigurace, testování, deployment • Řešení řady obvyklých problémů je přímo součástí ASP.NET (autentizace, validátory, navigace, šablony), k dispozici je řada hotových komponent • Jasné oddělení jednotlivých vrstev aplikace a jejich opakovaná použitelnost (web, desktop, kapesní počítače) • Snadná přístupnost k datům (db, XML, web services, REST, JSON) • Umí řešit (obcházet) bez-stavovost HTTP/(X)HTML • Provádění nativního kódu (vyšší výkon!) • Kvalitní dokumentace • http://en.wikipedia.org/wiki/ASP.NET
  • 11. 11 Nevýhody ASP.NET • Pochází od Microsoftu >> předsudky a odmítání • ASP.NET se stále dynamicky rozvíjí (MVC, Entity framework, LINQ…) • V použitelné podobě je ASP.NET zatím dostupná pouze pro OS Windows (obchodní politika, nedodělané Mono atd.) • Má silnou vazbu na IIS • V ČR je aktuálně málo freehostingů s podporou ASP.NET (je to dražší a technologicky náročnější než LAMP = linux + apache + mysql + php) • Řada používaných vizuálních komponent generuje nevalidní/nehezký (X)HTML kód >> postupné zlepšování Web Forms, možnost přímé kontroly u MVC • Při nevhodném použití Viewstate roste množství přenášených dat • U Web Forms nemá programátor nad nižšími úrovněmi aplikace dobrou kontrolu • ASP.NET je mocný nástroj, ale jeho zvládnutí si vyžádá čas (delší křivka učení)
  • 12. 12 Agenda  Co je ASP? Vztah ASP a ASP.NET  Co je ASP.NET, .NET Framework, Mono?  Výhody a nevýhody ASP.NET • Jak funguje ASP.NET? • PostBack, ViewState, MVC, Razor • Vyrovnávací paměť, kešování (cache), validátory • Konfigurace, nasazení v provozu • HTTP moduly, HTTP handlery • Vývojové nástroje • Internet, doporučená literatura
  • 13. 13 Jak funguje ASP.NET? • ASP.NET stránky používají příponu *.aspx. (existuje celá řada dalších přípon pro další využití – *.ascx, *.asmx, *.ashx, *.config, *.sitemap apod.) • Provádění ASP.NET stránky v modelu Web Forms (vzor MVP) není lineární (to je rozdíl proti interpretovaným technologiím)! • V každé fázi zpracování je vyvolána a následně zpracována nějaká událost (Init, Load, UnLoad, Render apod.) • Kód „pověšený“ na tyto události může být ▫ Vyvolán při zpracování nebo uživatelem, ▫ součástí *.aspx, v separátním souboru, v DLL knihovně • Kromě běžného (X)HTML kódu obsahují stránky tzv. serverové ovládací prvky (Server Control, Web Forms), které ▫ Zapouzdřují vizuální elementy a zajišťují tak interakci s uživatelem, ▫ generují události (změna hodnoty, stisknutí tlačítka, … ), dále zpracovávané programovým kódem • http://zdrojak.root.cz/clanky/prezentacni-vzory-zrodiny-mvc/
  • 14. 14 Oddělení vzhledu a kódu stránky (Web Forms) 1 soubor 2 soubory kód <tagy> <tagy> kód Form1.aspx Form1.aspx Form1.aspx.cs Form1.aspx.vb • Vazba mezi šablonou a programovým kódem… ▫ <%@Page CodeBehind=... pro VS.NET ▫ <%@Page Src=... pro samotný framework
  • 15. 15 Agenda  Co je ASP? Vztah ASP a ASP.NET  Co je ASP.NET, .NET Framework, Mono?  Výhody a nevýhody ASP.NET  Jak funguje ASP.NET? • PostBack, ViewState, MVC, Razor • Vyrovnávací paměť, kešování (cache), validátory • Konfigurace, nasazení v provozu • HTTP moduly, HTTP handlery • Vývojové nástroje • Internet, doporučená literatura
  • 16. 16 Zpracování událostí (Postback) v ASP.NET web forms Prohlížeč Zpráva o Server události Zpracování zprávy Událost Zavolání procedury pro obsluhu události Obsluha události Aktualizovaná stránka • S událostmi je třeba šetřit, hlavně pokud se nejedná o intranetovou aplikaci… ▫ Zvyšují zátěž serveru, ▫ Zpomalují klienta.
  • 17. 17 Viewstate • ViewState je kolekce reprezentující stav stránky a všech obsažených ovládacích prvků • Spolu s technologii PostBack řeší ViewState bez-stavovost HTTP/(X)HTML • Díky Viewstate si prvky mohou zachovávat svůj stav napříč jednotlivými requesty • Do kolekce lze programově přidávat proměnné (tady opatrně!) • Stav prvků se neukládá na serveru, ale je přesouván na klienta a zpět coby skryté pole formuláře • Možnost volby pro ViewState: ▫ ON – úspora výpočetního času, ale více kB putujících mezi klientem a serverem. ▫ OFF – nastavení hodnot, výpočty, načítání dat z databáze apod. probíhá při každém PostBacku • Pokud není třeba, zakažte použití ViewState (pro jednotlivé ovládací prvky, celou stránku nebo aplikaci), snížíte objem přenášených dat mezi klientem a serverem • http://www.aspnet.cz/Articles/235-viewstate-k-cemu-je-a-jak-ho-spravne-pouzivat.aspx
  • 18. 18 ASP.NET MVC • Z jiných technologií (např. Java Spring MVC) osvědčený Model – View – Controller mění obvyklý způsob zpracování stránky ve Web Forms řízený událostmi • Pomocí routování URL se rozhoduje, který controller bude konkrétní akci zpracovávat • Striktněji odděluje UI, aplikační logiku a data, zlepšuje kontrolu nad odesílaným (X)HTML kódem, má možnost přizpůsobení výstupu různým klientským platformám • Lepší testovatelnost, možnost využívání mock objektů • Nadstavba ASP.NET 3.5, musí se doinstalovat! Od verze 4.0 je MVC podporován přímo • Někdy trochu pracné, programátor si musí zvyknout, určité riziko míchání kódu • Vznikl na základě poptávky vývojářů! • Je podporován fy Microsoft, bude koexistovat vedle obvyklého Web Forms (MVP) • http://www.asp.net/mvc/ • http://en.wikipedia.org/wiki/ASP.NET_MVC_Framework • http://www.augi.cz/programovani/aspnet-mvc-a-routing/
  • 19. 19 ASP.NET Razor • Razor je tzv. view engine, schopný pracovat v kombinaci s MVC nebo Web Forms • Hodí se pro jednodušší aplikace (quick&win vývoj, prototypy), lze jej použít samostatně • Rychlá křivka učení • Razor + WebMatrix (vývojové prostředí) + SQL Server Compact Edition 4.0 (databáze) >> start pro úplné začátečníky (aspoň podle představ Microsoftu ) • Výhodou je možnost vývoje aplikací pro různé platformy (web, desktop, mobily, xbox…) • Je to trochu divočina, jako základní PHP  • Bere už v úvahu validaci uživatelských vstupů a parametrizované dotazy do databáze • http://zdrojak.root.cz/clanky/microsofti-lizatka-pro-zacatecniky-sance-pro-boj-s-php- nebo-krok-zpet/ • http://zdrojak.root.cz/clanky/podrizne-razor-php/
  • 20. 20 ASP.NET Dynamic Data • ASP.NET Dynamic Data jsou součástí .NET Frameworku (od verze 3.5 SP1) a slouží k rychlému vytvoření webové aplikace či její části, typicky administrace, na základě objektového modelu databáze • http://zdrojak.root.cz/clanky/asp-net-dynamic-data/ • http://www.asp.net/dynamicdata • http://www.slideshare.net/micham/aspnet-35-sp1-dynamic-data-presentation
  • 21. 21 Agenda  Co je ASP? Vztah ASP a ASP.NET  Co je ASP.NET, .NET Framework, Mono?  Výhody a nevýhody ASP.NET  Jak funguje ASP.NET?  PostBack, ViewState, MVC, Razor • Vyrovnávací paměť, kešování (cache), validátory • Konfigurace, nasazení v provozu • HTTP moduly, HTTP handlery • Vývojové nástroje • Internet, doporučená literatura
  • 22. 22 Vyrovnávací paměť (buffer), Cache Vyrovnávací paměť (buffer) • ASP.NET stránky mají implicitně zapnuté využití vyrovnávací paměti (bufferu) při sestavování výstupu. • Buffer lze vypnout pomocí příkazu response.buffer = false Cache • Použití kešování (cache) je vhodné při opakovaných požadavcích na konkrétní stránku • Cache je možné nastavit pro ▫ celou stránku (podle parametrů, jazyka, prohlížeče apod.), ▫ část stránky (šetří čas nutný pro získání dat), ▫ rozšiřitelný objekt Cache (Cache API) – možnost uložení libovolného objektu. • Flexibilní politiky pro expiraci, možnost invalidace cache při změně souboru apod.
  • 23. 23 Validátory, implicitní validace • Ověření syntaxe zadaných dat ▫ na straně klienta (rychlost, pohodlí), ▫ na straně serveru (bezpečnost). • Různé možnosti zobrazení chyby • Validátory je možné dle potřeby sdružovat do skupin • Různé typy validace ▫ RequiredFieldValidator, ▫ CompareValidator, ▫ RangeValidator, ▫ RegularExpressionValidator, ▫ CustomValidator. • V ASP.NET je možné automaticky zkontrolovat vstupní data od uživatele (od verze 1.1 implicitně povoleno) před jejich zpracováním <%@ Page validateRequest="true" language="c#" ...
  • 24. 24 Agenda  Co je ASP? Vztah ASP a ASP.NET  Co je ASP.NET, .NET Framework, Mono?  Výhody a nevýhody ASP.NET  Jak funguje ASP.NET?  PostBack, ViewState, MVC, Razor  Vyrovnávací paměť, kešování (cache), validátory • Konfigurace, nasazení v provozu • HTTP moduly, HTTP handlery • Vývojové nástroje • Internet, doporučená literatura
  • 25. 25 Konfigurace ASP.NET aplikací • Je uložena ve formátu XML do souboru web.config v adresáři v *.aspx stránkami • Obsahuje všechna nastavení ASP.NET (autentizace, kompilace, trasování, ladění, chybové stránky, moduly, handlery, …) • Jakékoliv uživatelské nastavení je možné definovat v sekci <appSettings>, která je rozšiřitelná >> je možné přidávat vlastní sekce dat • Můžete využít více web.config souborů v jedné aplikaci, podle adresářové struktury (1 adresář = 1 web.config) • V souboru machine.config (v adresáři s instalovaným frameworkem) jsou nastaveny parametry pro celý web server (raději tam nelezte!)
  • 26. 26 Nasazení ASP.NET aplikace do provozu • Stačí zkopírovat na určené místo ▫ Odpadá nutnost registrace komponent, ▫ Odpadá nutnost restartu služeb/serveru. • Podpora pro všechny součásti ▫ Web stránky, web služby, ▫ Zkompilované komponenty (DLL), ▫ Konfigurační soubory. • Aktualizace aplikací je možná za provozu ▫ Nakopírujte nové DLL na místo původního, ▫ Aplikace použijí nové DLL počínaje příštím klientským požadavkem.
  • 27. 27 Agenda  Co je ASP? Vztah ASP a ASP.NET  Co je ASP.NET, .NET Framework, Mono?  Výhody a nevýhody ASP.NET  Jak funguje ASP.NET?  PostBack, ViewState, MVC, Razor  Vyrovnávací paměť, kešování (cache), validátory  Konfigurace, nasazení v provozu • HTTP moduly, HTTP handlery • Vývojové nástroje • Internet, doporučená literatura
  • 28. 28 HTTP moduly, HTTP handlery • Kromě klasických *.aspx stránek je možné psát webové aplikace na nižší úrovni (HTTP moduly a HTTP handlery) a s jejich pomocí vyřizovat některé požadavky na serveru • Některé HTTP moduly, např. ▫ Output Cache, ▫ Načítání a ukládání Session stavu, ▫ Autentizace, ▫ Autorizace. • HTTP moduly je možné skládat na sebe, mohou rozšířit nebo přepsat prakticky všechny činnosti, které při běhu .NET aplikace nastávají • HTTP handler je vždy na konci, provádí vlastní zpracování (např. *.aspx souborů, načítání obrázků z databáze apod.) požadavku
  • 29. 29 Zpracování požadavku v ASP.NET Web server (IIS, …) ASP.NET runtime Global.asax Aplikace HTTP modul HTTP modul HTTP handler HTTP handler HTTP handler (Web services) (Web form)
  • 30. 30 Agenda  Co je ASP? Vztah ASP a ASP.NET  Co je ASP.NET, .NET Framework, Mono?  Výhody a nevýhody ASP.NET  Jak funguje ASP.NET?  PostBack, ViewState, MVC, Razor  Vyrovnávací paměť, kešování (cache), validátory  Konfigurace, nasazení v provozu  HTTP moduly, HTTP handlery • Vývojové nástroje • Internet, doporučená literatura
  • 31. 31 Vývojové nástroje pro ASP.NET • Visual Studio .NET 2010 ▫ ASP.NET 4.0 s řadou vylepšení (např. AJAX, LINQ, Entity Frm, MVC) ▫ Komplexní nástroj v různých verzích, určený pro vývoj, testování a řízení celých projektů ▫ Express edice k dispozici zdarma ▫ SQL Server Express – prakticky použitelný pro menší webové aplikace • Visual Web Developer Express si můžete stáhnout na adrese… http://www.microsoft.com/express/Web/ • Microsoft WebMatrix ▫ Jednoduchý nástroj pro tvorbu webů ▫ Optimalizovaný pro Razor ▫ http://www.asp.net/webmatrix • Ostatní http://monodevelop.com/ (MonoDevelop) http://www.icsharpcode.net/OpenSource/SD/ (SharpDevelop)
  • 32. 32 Team Foundation Server • Microsoft Visual Studio Team Foundation Server 2010 ▫ Nástroj pro týmovou spolupráci a komplexní správu celého životního cyklu aplikace ▫ Plánování, úkoly, návrh, implementace, verzování zdrojových kódů, různé druhy testů (unit, funkční, zátěžové…), podpora metodik, reportingy… ▫ Integrace s Visual Studiem, MS Project, MS Sharepoint… • Pro větší projekty nebo týmy vývojářů nezbytnost! • http://www.microsoft.com/business/smb/cs-cz/servery-a-nastroje/visual-studio.mspx • http://www.youtube.com/watch?v=o75ZeH46SRU • http://www.mstv.cz/ několik českých video podcastů na téma MS TFS a testování
  • 33. 33 Microsoft Sharepoint • Webová aplikační platforma pro spolupráci v rámci organizace • Aktuální verze Microsoft Sharepoint 2010, různé licence (verze Foundation je zdarma) • Sdílení dokumentů, informací a znalostí, integrace s Office, emailem a dalšími nástroji • Podpora plánování (kalendáře, úkoly), rozhodovacích procesů (workflow), vyhledávání • Lze vybudovat v podstatě libovolný typ aplikace (portál, blog, wiki) v prostředí Internetu/Intranetu pomocí vestavěných nástrojů • Co nejde „naklikat“ přímo, lze naprogramovat pomocí tzv. web parts (.NET komponenty) • V Sharepointu je „všechno“ seznam nebo knihovna  • Spolupracující aplikace: Office, SP Designer, InfoPath, Visual Studio, TFS… • http://sharepoint.microsoft.com/cs-cz/Pages/default.aspx
  • 34. 34 Agenda  Co je ASP? Vztah ASP a ASP.NET  Co je ASP.NET, .NET Framework, Mono?  Výhody a nevýhody ASP.NET  Jak funguje ASP.NET?  PostBack, ViewState, MVC, Razor  Vyrovnávací paměť, kešování (cache), validátory  Konfigurace, nasazení v provozu  HTTP moduly, HTTP handlery  Vývojové nástroje • Internet, doporučená literatura
  • 35. 35 Odkazy na Internetu • http://www.asp.net/Default.aspx (Oficiální web pro ASP.NET) • http://msdn.microsoft.com/en-us/library/dd566231.aspx (ASP.NET web development) • http://www.codeproject.com/ (příklady, zdrojové kódy) • http://msdn2.microsoft.com/en-us/default.aspx (MSDN) • http://en.wikipedia.org/wiki/ASP.NET • http://quickstarts.asp.net/previews/ (MVC a spol.) • http://blogs.msdn.com/vyvojari/archive/2009/10/04/zrychlete-v-voj-web-aplikac-s-toolkity.aspx
  • 36. 36 Doporučená literatura • Písek, Slavoj – ASP.NET začínáme programovat, Grada 2003 • MacDonald, Matthew; Szpuszta, Mario – ASP.NET 3.5 a C# 2008, Zoner Press 2008 • Watson, Ben – C# 4.0 – řešení praktických programátorských úloh, Zoner Press 2010 • Esposito, Dino – Programming Microsoft ASP.NET MVC, Microsoft Press 2010 • Pasch, Ondřej – Microsoft Sharepoint 2010, Praktický průvodce uživatele, CPress 2011 • Curry, Ben – Microsoft Sharepoint 2010, Kapesní rádce administrátora, CPress 2011
  • 37. 37 Souhrn  Co je ASP? Vztah ASP a ASP.NET  Co je ASP.NET, .NET Framework, Mono?  Výhody a nevýhody ASP.NET  Jak funguje ASP.NET?  PostBack, ViewState, MVC, Razor  Vyrovnávací paměť, kešování (cache), validátory  Konfigurace, nasazení v provozu  HTTP moduly, HTTP handlery  Vývojové nástroje  Internet, doporučená literatura