Your SlideShare is downloading. ×
0
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
TNPW2-2011-06
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

TNPW2-2011-06

1,217

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,217
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. TNPW2<br />2009/2010<br />06 – Webové aplikace v ASP.NET<br />Mgr. Lukáš Vacek<br />lukas.vacek@uhk.cz<br />
  • 2. Agenda6<br /><ul><li>Co je ASP?
  • 3. Co je ASP.NET, .NET Framework, Mono?
  • 4. Výhody a nevýhody ASP.NET
  • 5. Jak funguje ASP.NET?
  • 6. PostBack, ViewState, MVC
  • 7. Vyrovnávací paměť, kešování (cache), validátory
  • 8. Konfigurace, nasazení v provozu
  • 9. HTTP moduly, HTTP handlery
  • 10. Vývojové nástroje
  • 11. Internet, doporučená literatura</li></ul>2<br />
  • 12. Co je ASP? Vztah ASP a ASP.NET<br />Technologie ASP (Active Server Pages) je „předchůdcem“ ASP.NET!<br />ASP vytvořila fy Microsoft, rozšířila se ve druhé polovině 90. let. <br />V této době byla ASP spolu s PHP pravděpodobně nejpoužívanější vývojovou platformou pro webové aplikace.<br />Programovací jazyky pro ASP: VB Script, JScript...<br />ASP se nepřekládá (jedná se o interpretované prostředí)!<br />Na ASP stránkách je možné využívat COM komponenty –&amp;gt; málo rozšířené.<br />Největší problémy ASP:<br />Špatná udržovatelnost kódu, míchání jednotlivých aplikačních vrstev,<br />neexistence kvalitního vývojového prostředí.<br />Pozor: ASP není ASP.NET!<br />3<br />
  • 13. Agenda6<br /><ul><li>Co je ASP? Vztah ASP a ASP.NET
  • 14. Co je ASP.NET, .NET Framework, Mono?
  • 15. Výhody a nevýhody ASP.NET
  • 16. Jak funguje ASP.NET?
  • 17. PostBack, ViewState, MVC
  • 18. Vyrovnávací paměť, kešování (cache), validátory
  • 19. Konfigurace, nasazení v provozu
  • 20. HTTP moduly, HTTP handlery
  • 21. Vývojové nástroje
  • 22. Internet, doporučená literatura</li></ul>4<br />
  • 23. Historie ASP.NET<br />1997 – po vydání IIS 4.0 Mark Anders a Scott Guthrie navrhli nový model pro webové aplikace, který odděluje strukturu od obsahu; <br />ScottGuthrie v Javě  naprogramoval prototyp XSP. <br />Následující beta verze byla přejmenovaná na ASP+, využívala CLR a nový jazyk C#.<br />2000 – představení veřejnosti jako ASP+, později ASP.NET(.NET jako společný brand)<br />2002 – ASP.NET 1.0 jako součást nového .NET Frameworku 1.0<br />2003 – ASP.NET 1.1, MS Visual Studio 2003<br />Doladění základních vlastností<br />2005 – ASP.NET 2.0, MS Visual Studio 2005<br />Master pages, webparts, themes, skins, navigace, membership, XHTML<br />2007 – ASP.NET 3.5 se service packy se používá dodnes, MS Visual Studio 2008<br />C# 3.0, VB9, později AJAX, MVC, LINQ, Entity Framework apod.<br />2010 – ASP.NET 4.0, MS Visual Studio 2010<br />http://en.wikipedia.org/wiki/ASP.NET<br />http://2008.webexpo.cz/media/files/lectures/webexpo2008-bernard-roubicek-aspnet-35.ppsx<br />5<br />
  • 24. ASP.NET a .NET Framework, základní pojmy<br />.NET Framework fy Microsoft je nadstavba nad operačním systémem.<br />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.<br />Aktuální verze je ASP.NET 3.5 SP1 (od r. 2008), brzy bude verze 4.0.<br />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).<br />.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).<br />Výstupem kompilátoru je řízený kód – tzv. MSIL (Microsoft Intermediate Language). <br />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).<br />.NET Framework obsahuje i jiné části než jen ASP.NET, např. Windows Communication Foundation (WCF) nebo .NET Compact Framework pro mobilní zařízení.<br />6<br />
  • 25. Architektura .NET, základní schéma<br />7<br />C#<br />VB.NET<br />…<br />
  • 26. Projekt Mono<br />Projekt MONO je multiplatformní implementace .NET Frameworku, založená na standardech ECMA.<br />Aktuálně projekt zaštiťuje fy Novell.<br />Mono implementuje běhové prostředí CLR a knihovnu základních tříd BCL.<br />Umožňuje spouštění aplikací vytvořených pod .NET Frameworkem, kompatibilita není úplně 100%.<br />Mono podporuje např. Linux, Mac OSX, Solaris, Windows atd.<br />http://www.mono-project.com/Main_Page<br />Přednáška<br />Tomáš Petříček, .NET a projekt MONO – Běží .NET i na jiných operačních systémech?<br />http://www.avc-cvut.cz/avc.php?id=2788&amp;language=cs_CZ<br />8<br />
  • 27. Agenda6<br /><ul><li>Co je ASP? Vztah ASP a ASP.NET
  • 28. Co je ASP.NET, .NET Framework, Mono?
  • 29. Výhody a nevýhody ASP.NET
  • 30. Jak funguje ASP.NET?
  • 31. PostBack, ViewState
  • 32. Vyrovnávací paměť, kešování (cache), validátory
  • 33. Konfigurace, nasazení v provozu
  • 34. HTTP moduly, HTTP handlery
  • 35. Vývojové nástroje
  • 36. Internet, doporučená literatura</li></ul>9<br />
  • 37. Výhody ASP.NET<br />Striktně objektový přístup.<br />Řízený (managed) kód, výjimka je možná v C++.<br />Oddělení kódu od designu, větší přehlednost.<br />Kvalitní vývojové prostředí (základní verze zdarma), podpora mnoha jazyků.<br />Snadná implementace (např. webové služby), konfigurace, testování, deployment.<br />Ř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<br />Jasné oddělení jednotlivých vrstev aplikace a jejich opakovaná použitelnost (web, desktop, kapesní počítače)<br />Snadná přístupnost k datům (db, XML, web services, REST, JSON)<br />Umí řešit (obcházet) bez-stavovost HTTP/(X)HTML.<br />Provádění nativního kódu (vyšší výkon!).<br />Kvalitní dokumentace.<br />http://en.wikipedia.org/wiki/ASP.NET<br />10<br />
  • 38. Nevýhody ASP.NET<br />ASP.NET je relativně nová, dynamicky se rozvíjející technologie, potřebuje vstoupit do širšího povědomí.<br />Až do verze ASP.NET 2.0 nebyly zdarma k dispozici vhodné vývojové nástroje.<br />V použitelné podobě je ASP.NET zatím dostupná pouze pro OS Windows (obchodní politika, nedodělané Mono atd.), silná vazba na IIS.<br />Pochází od Microsoftu –&amp;gt; předsudky a odmítání.<br />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).<br />Některé z používaných vizuálních komponent generují nevalidní (X)HTML kód –&amp;gt; zlepšení v ASP.NET 2.0 (Oracle ADF v JDeveloperu je na tom mnohem hůř ).<br />ASP.NET je mocný nástroj, ale jeho zvládnutí si vyžádá čas (delší křivka učení). <br />11<br />
  • 39. Agenda6<br /><ul><li>Co je ASP? Vztah ASP a ASP.NET
  • 40. Co je ASP.NET, .NET Framework, Mono?
  • 41. Výhody a nevýhody ASP.NET
  • 42. Jak funguje ASP.NET?
  • 43. PostBack, ViewState, MVC
  • 44. Vyrovnávací paměť, kešování (cache), validátory
  • 45. Konfigurace, nasazení v provozu
  • 46. HTTP moduly, HTTP handlery
  • 47. Vývojové nástroje
  • 48. Internet, doporučená literatura</li></ul>12<br />
  • 49. Jak funguje ASP.NET?<br />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.)<br />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)! <br />V každé fázi zpracování je vyvolána a následně zpracována nějaká událost (Init, Load, UnLoad, Render apod.).<br />Kód „pověšený“ na tyto události může být<br />Vyvolán při zpracování nebo uživatelem,<br />součástí *.aspx, v separátním souboru, v DLL knihovně.<br />Kromě běžného (X)HTML kódu obsahují stránky tzv. serverové ovládací prvky (Server Control, Web Forms), které<br />Zapouzdřují vizuální elementy a zajišťují tak interakci s uživatelem,<br />generují události (změna hodnoty, stisknutí tlačítka, … ), dále zpracovávané programovým kódem. <br />http://zdrojak.root.cz/clanky/prezentacni-vzory-zrodiny-mvc/<br />13<br />
  • 50. Oddělení vzhledu a kódu stránky<br />14<br />1 soubor<br />2 soubory<br />&amp;lt;tagy&amp;gt;<br />kód<br />&amp;lt;tagy&amp;gt;<br />kód<br />Form1.aspx<br />Form1.aspx<br />Form1.aspx.cs<br />Form1.aspx.vb<br />Vazba mezi šablonou a programovým kódem…<br />&amp;lt;%@Page CodeBehind=... pro VS.NET<br />&amp;lt;%@Page Src=... pro samotný framework<br />
  • 51. Agenda6<br /><ul><li>Co je ASP? Vztah ASP a ASP.NET
  • 52. Co je ASP.NET, .NET Framework, Mono?
  • 53. Výhody a nevýhody ASP.NET
  • 54. Jak funguje ASP.NET?
  • 55. PostBack, ViewState, MVC
  • 56. Vyrovnávací paměť, kešování (cache), validátory
  • 57. Konfigurace, nasazení v provozu
  • 58. HTTP moduly, HTTP handlery
  • 59. Vývojové nástroje
  • 60. Internet, doporučená literatura</li></ul>15<br />
  • 61. Zpracování událostí (Postback) v ASP.NET web forms<br />16<br />Prohlížeč<br />Server<br />Zpráva o události<br />Událost<br />Zpracování zprávy<br />Zavolání procedury pro obsluhu události<br />Obsluha události<br />Aktualizovaná stránka<br />S událostmi je třeba šetřit, hlavně pokud se nejedná o intranetovou aplikaci…<br />Zvyšují zátěž serveru,<br />Zpomalují klienta.<br />
  • 62. Viewstate<br />ViewState je kolekce reprezentující stav stránky a všech obsažených ovládacích prvků.<br />Spolu s technologii PostBack řeší ViewState bez-stavovost HTTP/(X)HTML.<br />Díky Viewstate si prvky mohou zachovávat svůj stav napříč jednotlivými requesty.<br />Do kolekce lze programově přidávat proměnné (tady opatrně!).<br />Stav prvků se neukládá na serveru, ale je přesouván na klienta a zpět coby skryté pole formuláře.<br />Možnost volby pro ViewState:<br />ON – úspora výpočetního času, ale více kB putujících mezi klientem a serverem. <br />OFF – nastavení hodnot, výpočty, načítání dat z databáze apod. probíhá při každém PostBacku.<br />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.<br />http://www.aspnet.cz/Articles/235-viewstate-k-cemu-je-a-jak-ho-spravne-pouzivat.aspx<br />17<br />
  • 63. ASP.NET MVC<br />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.<br />Pomocí routování URL se rozhoduje, který controller bude konkrétní akci zpracovávat.<br />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.<br />Lepší testovatelnost, možnost využívání mock objektů.<br />Nová záležitost, je to nadstavba .NET 3.5, musí se doinstalovat!<br />Někdy trochu pracné, programátor si musí zvyknout, určité riziko míchání kódu.<br />Vznikl na základě poptávky vývojářů!<br />Je podporován fy Microsoft, bude koexistovat vedle obvyklého Web Forms (MVP).<br />http://www.asp.net/mvc/<br />http://en.wikipedia.org/wiki/ASP.NET_MVC_Framework<br />http://stribny.name/zapisnik/?clanky/asp-net-mvc<br />18<br />
  • 64. Agenda6<br /><ul><li>Co je ASP? Vztah ASP a ASP.NET
  • 65. Co je ASP.NET, .NET Framework, Mono?
  • 66. Výhody a nevýhody ASP.NET
  • 67. Jak funguje ASP.NET?
  • 68. PostBack, ViewState, MVC
  • 69. Vyrovnávací paměť, kešování (cache), validátory
  • 70. Konfigurace, nasazení v provozu
  • 71. HTTP moduly, HTTP handlery
  • 72. Vývojové nástroje
  • 73. Internet, doporučená literatura</li></ul>19<br />
  • 74. Vyrovnávací paměť (buffer), Cache<br />Vyrovnávací paměť (buffer)<br />ASP.NET stránky mají implicitně zapnuté využití vyrovnávací paměti (bufferu) při sestavování výstupu.<br />Buffer lze vypnout pomocí příkazu response.buffer = false<br />Cache<br />Použití kešování (cache) je vhodné při opakovaných požadavcích na konkrétní stránku.<br />Cache je možné nastavit pro<br />celou stránku (podle parametrů, jazyka, prohlížeče apod.),<br />část stránky (šetří čas nutný pro získání dat),<br />rozšiřitelný objekt Cache (Cache API) – možnost uložení libovolného objektu.<br />Flexibilní politiky pro expiraci, možnost invalidacecache při změně souboru apod.<br />20<br />
  • 75. Validátory, implicitní validace<br />Ověření syntaxe zadaných dat<br />na straně klienta (rychlost, pohodlí),<br />na straně serveru (bezpečnost).<br />Různé možnosti zobrazení chyby.<br />Validátory je možné dle potřeby sdružovat do skupin.<br />Různé typy validace<br />RequiredFieldValidator,<br />CompareValidator,<br />RangeValidator,<br />RegularExpressionValidator,<br />CustomValidator.<br />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.<br />21<br />&amp;lt;%@ Page validateRequest=&amp;quot;true&amp;quot; language=&amp;quot;c#&amp;quot; ...<br />
  • 76. Agenda6<br /><ul><li>Co je ASP? Vztah ASP a ASP.NET
  • 77. Co je ASP.NET, .NET Framework, Mono?
  • 78. Výhody a nevýhody ASP.NET
  • 79. Jak funguje ASP.NET?
  • 80. PostBack, ViewState, MVC
  • 81. Vyrovnávací paměť, kešování (cache), validátory
  • 82. Konfigurace, nasazení v provozu
  • 83. HTTP moduly, HTTP handlery
  • 84. Vývojové nástroje
  • 85. Internet, doporučená literatura</li></ul>22<br />
  • 86. Konfigurace ASP.NET aplikací<br />Je uložena ve formátu XML do souboru web.config v adresáři v *.aspx stránkami.<br />Obsahuje všechna nastavení ASP.NET (autentizace, kompilace, trasování, ladění, chybové stránky, moduly, handlery, …).<br />Jakékoliv uživatelské nastavení je možné definovat v sekci &amp;lt;appSettings&amp;gt;, která je rozšiřitelná – je možné přidávat vlastní sekce dat.<br />Je možné využít více web.config souborů v jedné aplikaci, podle adresářové struktury (1 adresář = 1 web.config).<br />V souboru machine.config (v adresáři s instalovaným frameworkem) jsou nastaveny parametry pro celý web server.<br />23<br />
  • 87. Nasazení ASP.NET aplikace do provozu<br />Stačí zkopírovat na určené místo<br />Odpadá nutnost registrace komponent,<br />Odpadá nutnost restartu služeb/serveru.<br />Podpora pro všechny součásti<br />Web stránky, web služby,<br />Zkompilované komponenty (DLL),<br />Konfigurační soubory.<br />Aktualizace aplikací je možná za provozu<br />Nakopírujte nové DLL na místo původního,<br />Aplikace použijí nové DLL počínaje příštím klientským požadavkem.<br />24<br />
  • 88. Agenda6<br /><ul><li>Co je ASP? Vztah ASP a ASP.NET
  • 89. Co je ASP.NET, .NET Framework, Mono?
  • 90. Výhody a nevýhody ASP.NET
  • 91. Jak funguje ASP.NET?
  • 92. PostBack, ViewState, MVC
  • 93. Vyrovnávací paměť, kešování (cache), validátory
  • 94. Konfigurace, nasazení v provozu
  • 95. HTTP moduly, HTTP handlery
  • 96. Vývojové nástroje
  • 97. Internet, doporučená literatura</li></ul>25<br />
  • 98. HTTP moduly, HTTP handlery<br />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.<br />Některé HTTP moduly, např.<br />OutputCache,<br />Načítání a ukládání Session stavu,<br />Autentizace,<br />Autorizace.<br />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í.<br />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.<br />26<br />
  • 99. Zpracování požadavku v ASP.NET<br />27<br />Web server (IIS, …)<br />ASP.NET runtime<br />Global.asax<br />Aplikace<br />HTTP modul<br />HTTP modul<br />HTTP handler(Web form)<br />HTTP handler<br />HTTP handler(Web services)<br />
  • 100. Agenda6<br /><ul><li>Co je ASP? Vztah ASP a ASP.NET
  • 101. Co je ASP.NET, .NET Framework, Mono?
  • 102. Výhody a nevýhody ASP.NET
  • 103. Jak funguje ASP.NET?
  • 104. PostBack, ViewState, MVC
  • 105. Vyrovnávací paměť, kešování (cache), validátory
  • 106. Konfigurace, nasazení v provozu
  • 107. HTTP moduly, HTTP handlery
  • 108. Vývojové nástroje
  • 109. Internet, doporučená literatura</li></ul>28<br />
  • 110. Vývojové nástroje pro ASP.NET<br />Visual Studio .NET 2008 „Orcas“<br />ASP.NET 3.5 s řadou vylepšení (např. AJAX Extension),<br />Express edice k dispozici zdarma,<br />SQL Server Express – prakticky použitelný pro menší webové aplikace.<br />Spolu s verzí 4.0 .NET Frameworku bude k dispozici i nové Visual Studio 2010.<br />Visual Web Developer Express si můžete stáhnout na adrese… http://msdn.microsoft.com/vstudio/express/vwd/<br />Ostatníhttp://monodevelop.com/ (MonoDevelop)http://www.icsharpcode.net/OpenSource/SD/ (SharpDevelop)<br />29<br />
  • 111. Agenda6<br /><ul><li>Co je ASP? Vztah ASP a ASP.NET
  • 112. Co je ASP.NET, .NET Framework, Mono?
  • 113. Výhody a nevýhody ASP.NET
  • 114. Jak funguje ASP.NET?
  • 115. PostBack, ViewState, MVC
  • 116. Vyrovnávací paměť, kešování (cache), validátory
  • 117. Konfigurace, nasazení v provozu
  • 118. HTTP moduly, HTTP handlery
  • 119. Vývojové nástroje
  • 120. Internet, doporučená literatura</li></ul>30<br />
  • 121. Odkazy na Internetu<br />http://www.asp.net/Default.aspx (Oficiální web pro ASP.NET)<br />http://asp.net/quickstart/aspnet/ (ASP.NET QuickStartTutorial)<br />http://www.asp.net/ajax/ (ASP.NET AJAX)<br />http://www.aspnet.cz/<br />http://www.codeproject.com/ (příklady, zdrojové kódy)<br />http://msdn2.microsoft.com/en-us/default.aspx (MSDN)<br />http://en.wikipedia.org/wiki/ASP.NET<br />http://quickstarts.asp.net/previews/ (MVC a spol.)<br />http://blogs.msdn.com/vyvojari/archive/2009/10/04/zrychlete-v-voj-web-aplikac-s-toolkity.aspx<br />31<br />
  • 122. Doporučená literatura<br />Písek, Slavoj – ASP.NET začínáme programovat, Grada 2003 <br />Duthie, G., Andrew – ASP.NET krok za krokem, Mobil Media 2003 <br />MacDonald, Matthew; Szpuszta, Mario – ASP.NET 3.5 a C# 2008 …, ZonerPress 2008<br />Lacko, Luboslav – ASP.NET a ADO.NET 2.0 – hotová řešení, ComputerPress 2006<br />Microsoft – Vytváříme zabezpečené aplikace v Microsoft ASP.NET, CP Books 2004<br />32<br />
  • 123. Souhrn6<br /><ul><li>Co je ASP? Vztah ASP a ASP.NET
  • 124. Co je ASP.NET, .NET Framework, Mono?
  • 125. Výhody a nevýhody ASP.NET
  • 126. Jak funguje ASP.NET?
  • 127. PostBack, ViewState
  • 128. Vyrovnávací paměť, kešování (cache), validátory
  • 129. Konfigurace, nasazení v provozu
  • 130. HTTP moduly, HTTP handlery
  • 131. Vývojové nástroje
  • 132. Internet, doporučená literatura</li></ul>33<br />

×