TNPW2-2011-06
Upcoming SlideShare
Loading in...5
×
 

TNPW2-2011-06

on

  • 1,773 views

 

Statistics

Views

Total Views
1,773
Views on SlideShare
1,723
Embed Views
50

Actions

Likes
0
Downloads
2
Comments
0

4 Embeds 50

http://tnpw2.blogspot.com 29
http://tnpw2.webnode.cz 17
http://tnpw2.blogspot.cz 3
http://cms.tnpw2.webnode.cz 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

TNPW2-2011-06 TNPW2-2011-06 Presentation Transcript

  • TNPW2
    2009/2010
    06 – Webové aplikace v ASP.NET
    Mgr. Lukáš Vacek
    lukas.vacek@uhk.cz
  • Agenda6
    • Co je ASP?
    • Co je ASP.NET, .NET Framework, Mono?
    • Výhody a nevýhody ASP.NET
    • Jak funguje ASP.NET?
    • PostBack, ViewState, MVC
    • 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
    2
  • 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!
    3
  • Agenda6
    • 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
    • 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
    4
  • 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;
    ScottGuthrie 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
    5
  • 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, včetně mobilních.
    Aktuální verze je ASP.NET 3.5 SP1 (od r. 2008), brzy bude verze 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) nebo .NET Compact Framework pro mobilní zařízení.
    6
  • Architektura .NET, základní schéma
    7
    C#
    VB.NET

  • 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
    8
  • Agenda6
    • 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
    • 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
    9
  • 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 ř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
    10
  • Nevýhody ASP.NET
    ASP.NET je relativně nová, dynamicky se rozvíjející technologie, potřebuje vstoupit do širšího povědomí.
    Až do verze ASP.NET 2.0 nebyly zdarma k dispozici vhodné vývojové nástroje.
    V použitelné podobě je ASP.NET zatím dostupná pouze pro OS Windows (obchodní politika, nedodělané Mono atd.), silná vazba na IIS.
    Pochází od Microsoftu –> předsudky a odmítání.
    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).
    Některé z používaných vizuálních komponent generují nevalidní (X)HTML kód –> zlepšení v ASP.NET 2.0 (Oracle ADF v JDeveloperu je na tom mnohem hůř ).
    ASP.NET je mocný nástroj, ale jeho zvládnutí si vyžádá čas (delší křivka učení).
    11
  • Agenda6
    • 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
    • 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
    12
  • 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/
    13
  • Oddělení vzhledu a kódu stránky
    14
    1 soubor
    2 soubory
    <tagy>
    kód
    <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
  • Agenda6
    • 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
    • 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
    15
  • Zpracování událostí (Postback) v ASP.NET web forms
    16
    Prohlížeč
    Server
    Zpráva o události
    Událost
    Zpracování zprávy
    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.
  • 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
    17
  • 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ů.
    Nová záležitost, je to nadstavba .NET 3.5, musí se doinstalovat!
    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://stribny.name/zapisnik/?clanky/asp-net-mvc
    18
  • Agenda6
    • 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
    • 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
    19
  • 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 invalidacecache při změně souboru apod.
    20
  • 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.
    21
    <%@ Page validateRequest="true" language="c#" ...
  • Agenda6
    • 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
    • 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
  • 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.
    Je možné 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.
    23
  • 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.
    24
  • Agenda6
    • 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
    • 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
  • 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ř.
    OutputCache,
    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.
    26
  • Zpracování požadavku v ASP.NET
    27
    Web server (IIS, …)
    ASP.NET runtime
    Global.asax
    Aplikace
    HTTP modul
    HTTP modul
    HTTP handler(Web form)
    HTTP handler
    HTTP handler(Web services)
  • Agenda6
    • 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
    • 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
  • Vývojové nástroje pro ASP.NET
    Visual Studio .NET 2008 „Orcas“
    ASP.NET 3.5 s řadou vylepšení (např. AJAX Extension),
    Express edice k dispozici zdarma,
    SQL Server Express – prakticky použitelný pro menší webové aplikace.
    Spolu s verzí 4.0 .NET Frameworku bude k dispozici i nové Visual Studio 2010.
    Visual Web Developer Express si můžete stáhnout na adrese… http://msdn.microsoft.com/vstudio/express/vwd/
    Ostatníhttp://monodevelop.com/ (MonoDevelop)http://www.icsharpcode.net/OpenSource/SD/ (SharpDevelop)
    29
  • Agenda6
    • 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
    • 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
    30
  • Odkazy na Internetu
    http://www.asp.net/Default.aspx (Oficiální web pro ASP.NET)
    http://asp.net/quickstart/aspnet/ (ASP.NET QuickStartTutorial)
    http://www.asp.net/ajax/ (ASP.NET AJAX)
    http://www.aspnet.cz/
    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
    31
  • Doporučená literatura
    Písek, Slavoj – ASP.NET začínáme programovat, Grada 2003
    Duthie, G., Andrew – ASP.NET krok za krokem, Mobil Media 2003
    MacDonald, Matthew; Szpuszta, Mario – ASP.NET 3.5 a C# 2008 …, ZonerPress 2008
    Lacko, Luboslav – ASP.NET a ADO.NET 2.0 – hotová řešení, ComputerPress 2006
    Microsoft – Vytváříme zabezpečené aplikace v Microsoft ASP.NET, CP Books 2004
    32
  • Souhrn6
    • 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
    • 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
    33