Microsoft ASP.NET 2.0/3.0 (advanced)

Podobné dokumenty
Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Michal Augustýn Microsoft Most Valuable Professional

Michal Augustýn ALWIL Software Microsoft Most Valuable Professional

Internet Information Services (IIS) 6.0

Programování v prostředí.net ASP.NET

WCF RIA Services. aneb jak na RIA aplikace v Silverlightu

Instalace a konfigurace web serveru. WA1 Martin Klíma

Historie, současnost a budoucnost ASP.NET

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Postup. Úvodem. Hlavní myšlenka frameworku. application. system. assets. uploads

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

NÁVRH A REALIZACE AUTENTIZAČNÍ METODY PRO PŘÍSTUP K WEBOVÉ SLUŽBĚ V PROSTŘEDÍ.NET

Code Contracts. Robert Haken [MVP ASP.NET, MCT] Software architect, Owner at HAVIT, s.r.o. knowledge-base.havit.cz

Pyramid talk, PyVo, 2018 Petr Blahoš

MVVM pro desktop i web

INFORMAČNÍ SYSTÉMY NA WEBU

ASP.NET Web API. Tomáš Herceg Microsoft MVP (ASP.NET)

Server-side technologie pro webové aplikace

Programování v prostředí.net

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

Informační systém pro rezervaci pokojů hotelu SPORT

PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY. Vývoj webových aplikací v Microsoft ASP.NET MVC a WebForms

Novinky v ASP.NET MVC6

BI-AWD. Administrace Webového a Databázového serveru Instalace webového serveru Apache httpd

Mediareference Vojtěch

[ASP].NET Core Demystified. Miroslav Holec. Konzultant a lektor [ASP].NET Core.

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

1 Webový server, instalace PHP a MySQL 13

Tvorba informačních systémů

Jak na sekce webu v Drupalu

JavaServer Faces Zdeněk Troníček

Tvorba informačních systémů

language="javascript">... </script>.

MIDAM Verze 1.1. Hlavní okno :

Robert Haken [MVP ASP.NET/IIS, MCT] software architect, HAVIT, Optimalizace výkonu webových aplikací

1. Webový server, instalace PHP a MySQL 13

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

KIV/PIA 2013 Jan Tichava

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

PHP a bezpečnost. nejen veřejná

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Stručný úvod pro programátory. Michal Kuchta

SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server.

MIDAM Simulátor Verze 1.5

Pánem World Wide Webu! aneb povídání o chybě hloupé tak, až to bolí

Téma 5. Ovladače přístrojů Instrument Drivers (ID)

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

SPECIFIKACE PŘEDMĚTU PLNĚNÍ

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

IoC/DI. Tomáš Herceg Microsoft MVP (ASP.NET)

Co je (staro)nového v DSpace

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

WCF. IW5 - Programování v.net a C# WCF

DIPLOMOVÁ PRÁCE. WEBGRAPHS Generátor grafů matematických funkcí jako server control v asp.net Michal Horák

NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze

Doxygen. Jakub Břečka

Novinky ve Visual Studio Tomáš Kroupa

Protokol HTTP 4IZ228 tvorba webových stránek a aplikací

Olga Rudikova 2. ročník APIN

Diagnostika webových aplikací v Azure

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Optimalizace pomocí icc/gcc - vektorizace

Serverové skriptovací technologie

Systém pro řízení lidských zdrojů a dokumentace v certifikačním orgánu

Jaku b Su ch ý 1

Reranking založený na metadatech

<Insert Picture Here> Vývoj portálových řešení v Javě

Technická specifikace Platební brána IBS

Pokročilé techniky tvorby sestav v Caché. ZENové Reporty

X33EJA Enterprise Java

Spring Framework Handout

Stručný obsah. Část I Úvod. Část II Komponenty

Tvorba informačních systémů

DEVFEST ANGULAR 2 WORKSHOP. angular.cz

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

KOMPONENTY APLIKACE TreeINFO. Petr Štos ECM Business Consultant

Instalační příručka Aktualizace lokální instalace

Digitální kartografie 8

Jak na IoC/DI kontejnery

Požadavky pro výběrová řízení TerraBus ESB/G2x

WWW technologie. HTTP protokol

programátor vs. vývojář

MODULÁRNÍ REDAKČNÍ SYSTÉM (CMS), SE ZAMĚŘENÍM PRO FIREMNÍ

1. Distribuce Javy. 2. Vlastnosti J2EE aplikace. 3. Fyzická architektura J2EE aplikace. Distribuce Javy se liší podle jejího zamýšleného použití:

Generické programování

JAK PROPOJIT R-KO a EXCEL aneb Aby se uživatel nasytil a statistik zůstal celý

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Přihlašování do ISCRŘ přes JIP

Obr. 1 - Seznam smluv

Technologie Java. Jaroslav Žáček

Úvod do Entity Frameworku

Webová prezentační aplikace

Semestrální práce z PT

Co je potřeba k realizaci příkladu

Reliance 3 design OBSAH

Po stisku Next se nám objeví seznam dostupných tříd (naše zkompilovaná třída User.KBI), viz následující obrázek.

Transkript:

Microsoft ASP.NET 2.0/3.0 (advanced) Michal Altair Valášek ASP.NET MVP Chief Software Architect Altairis Corporation www.altairis.cz michal.valasek@altairis.cz

Request processing pipeline Michal Altair Valášek ASP.NET MVP Chief Software Architect Altairis Corporation www.altairis.cz michal.valasek@altairis.cz

HTTP.SYS ISAPI ISAPI ISAPI ISAPI ISAPI ISAPI ISAPI ISAPI ISAPI Request execution pipeline (IIS) Virtual Web Virtual Web File system Virtual Web HTTP požadavek

Zpracování požadavků v IIS Veškerá rozšíření jsou v podobě ISAPI filtrů MS: ASP 3.0 MS: ASP.NET 1.0, 1.1, 2.0 MS: SHTML, IDC... 3P: PHP, JSP, ColdFusion Mapování podle nastavení metabáze Podle přípon Wildcard application maps

Nastavení IIS a Wildcard application mapping demo

Machine.config Web.config IHttpModule IHttpModule Request execution pipeline (ASP.NET) IHttpHandler IHttpHandler IHttpHandler ASP.NET ISAPI File system IHttpHandler IHttpHandler HTTP požadavek

Životní příběh jednoho požadavku (..but this is the simplified version for general public!) 1. Událost BeginRequest 2. Autentizace 3. Autorizace 4. Načíst z cache (je-li co) 5. Načíst request state 6. Zavolat odpovídající HTTP handler 7. Uložit request state 8. Uložit do cache 9. Událost EndRequest

Životní příběh jednoho požadavku (1/2) 1. Prověřit, zda požadavek neobsahuje nebezpečné znaky (ValidateRequest=true) 2. Provést URL mapování definované ve web.config 3. Spustit událost BeginRequest 4. Spustit událost AuthenticateRequest 5. Spustit událost PostAuthenticateRequest 6. Spustit událost AuthorizeRequest 7. Spustit událost PostAuthorizeRequest 8. Spustit událost ResolveRequestCache 9. Spustit událost PostResolveRequestCache 10. Vybrat (na základě přípony nebo nastavení ve web.config) třídu implementující IHttpHandler, která zpracuje požadavek 11. Spustit událost PostMapRequestHandler

Životní příběh jednoho požadavku (2/2) 12. Spustit událost AcquireRequestState 13. Spustit událost PostAcquireRequestState 14. Spustit událost PreRequestHandlerExecute 15. Zavolat metodu ProcessRequest vybraného HTTP handleru. 16. Spustit událost PostRequestHandlerExecute 17. Spustit událost ReleaseRequestState 18. Spustit událost PostReleaseRequestState 19. Vyfiltrovat výstup, pokud je definována vlastnost Filter 20. Spustit událost UpdateRequestCache 21. Spustit událost PostUpdateRequestCache 22. Spustit událost EndRequest

HTTP handler Třída implementující IHttpHandler Je zcela zodpovědný za vlastní vyřízení požadavku Koncepčně poněkud připomíná ASP/PHP Obvykle se používá k vracení dat, které nejsou HTML formuláři (obrázky, RSS apod.) Dvě možnosti volání: soubor *.ashx nastavení ve web.configu

Příklad č. 24 HTTP handler hands-on

HTTP handler factory Třída implementující interface IHttpHandlerFactory Dynamicky určuje, která třída se použije jako handler daného požadavku Použití např. pro specifický URL rewriting

Příklad č. 25 HTTP handler factory hands-on

HTTP modul Třída implementující IHttpModule Použije se při každém požadavku Lze v něm vytvořit event handler pro události z request life cycle Obvyklé použití: Modifikace vstupu či výstupu URL rewriting (obecný) Autentizace, autorizace

Příklad č. 26 HTTP moduly hands-on

Komunikace částí pipeline Přímá práce s požadavkem a odpovědí: System.Web.HttpContext.Current.Request System.Web.HttpContext.Current.Response Předávání generických parametrů po pipeline pomocí context items: System.Web.HttpContext.Current.Items[]

URL rewriting Pomocí HTTP handler factory GetCompiledPageInstance() Pomocí HTTP modulů RewritePath() Nutno přepsat ve stránce ještě jednou kvůli relativním odkazům

Příklad č. 12 URL rewriting a lokalizace hands-on

Příklady vestavěných handlerů a modulů HTTP Handlers trace.axd System.Web.Handlers.TraceHandler WebResource.axd System.Web.Handlers.AssemblyResourceLoader *.aspx System.Web.UI.PageHandlerFactory *.asmx System.Web.Services.Protocols.WebServiceHandlerFactory *.config HTTP Modules OutputCache Session System.Web.HttpForbiddenHandler System.Web.Caching.OutputCacheModule System.Web.SessionState.SessionStateModule WindowsAuthentication System.Web.Security.WindowsAuthenticationModule FormsAuthentication System.Web.Security.FormsAuthenticationModule PassportAuthentication System.Web.Security.PassportAuthenticationModule RoleManager System.Web.Security.RoleManagerModule UrlAuthorization System.Web.Security.UrlAuthorizationModule FileAuthorization System.Web.Security.FileAuthorizationModule

ASP.NET Web Forms Nejviditelnější část technologie ASP.NET Jeden z mnoha HTTP handlerů Stromová struktura ovládacích prvků (Controls) Postupné volání eventů ve stromu: Inicializace: shora dolů Ostatní: odspodu nahoru

Obrazy ze života ASPX stránky 1. Start (inicializace vlastností jako Request, Response, nastavení Themes a Master Pages) 2. Page initialization (vytvoření controls, aplikace témat) 3. Load (načtení vlastností z ViewState/ControlState) 4. Validation 5. Postback event handler 6. Rendering (vygenerování výsledného HTML kódu) 7. Unload

Metody a události ASPX stránky (1/2) 1. Constructor 2. Construct 3. TestDeviceFilter 4. AddParsedSubObject 5. DeterminePostBackMode 6. OnPreInit 7. LoadPersonalizationData 8. InitializeThemes 9. OnInit 10. ApplyControlSkin 11. ApplyPersonalization 12. OnInitComplete 13. LoadPageStateFromPersistenceMedium (postback) 14. LoadControlState (postback) 15. LoadViewState (postback)

Metody a události ASPX stránky (2/2) 16. ProcessPostData1 (postback) 17. OnPreLoad 18. OnLoad 19. ProcessPostData2 (postback) 20. RaiseChangedEvents (postback) 21. RaisePostBackEvent (postback) 22. OnLoadComplete 23. OnPreRender 24. OnPreRenderComplete 25. SavePersonalizationData 26. SaveControlState 27. SaveViewState 28. SavePageStateToPersistenceMedium 29. Render 30. OnUnload

Tvorba control tree Tři základní fáze: Init vytvoření Load načtení hodnot Render vykreslení Dva zdroje Hardcoded v ASPX Generované dynamicky Nutno vytvořit včas Nepřežijí postback

Příklad č. 27 Dynamické generování controls hands-on

Base class a HTTP moduly Změna chování celé aplikace Vlastní base class pro stránky Podědit od System.Web.UI.Page Nutno nastavit ve všech případech Složitější, ale má design time support Použití HTTP modulu PreRequestHandlerExecute Možno zapojit konfiguračně Nemá design time support Omezenější možnosti

Příklad č. 11 Použití page base classes hands-on