200 likes | 345 Views
ASP.NET kérés kiszolgalas. Krizsán Zoltán ver : 0.1. ASP.NET webalkalmazás. Virtuális mappa -> valóságos mappa Hierarchikus konfiguráció global.asax (opcionális). Kérés kiszolgálás. IIS munkaszál végzi. Kifinomult komplex folyamat is lehet, ami több komponenst is használhat.
E N D
ASP.NET kérés kiszolgalas Krizsán Zoltánver : 0.1
ASP.NET webalkalmazás • Virtuális mappa -> valóságos mappa • Hierarchikus konfiguráció • global.asax (opcionális)
Kérés kiszolgálás • IIS munkaszál végzi. • Kifinomult komplex folyamat is lehet, ami több komponenst is használhat. • A munkaszál továbbítja a kérést a HTTP Pipeline-nak. • HTTP csővezeték (Pipeline): • kiterjeszthető menedzselt komponensek láncolata • bemenete a kérés információi(sütik + paraméterei +…) • legelső eleme (belépési pontja) a HttpRuntime példánya. • Kimenete a válasz XHTML
Szerelvény generálás • Szükség esetén fut le: • Forrás frissebb, mint a szerelvény, vagy • web.config,global.asax változott vagy • a bin mappában levő szerelvények változtak • 2 lépés • Osztály generálás: forráskód elemzés -> osztály létrehozás (ős: Page vagy leszármazott) • default.aspx -> ASP.default_aspx • Szerelvény létrehozása, cache-be töltés.
Erőforrás meta adatbázis • IIS tárolja (verziótól függően fájl vagy registry)
Regisztrált erőforrás típusok • .asaxASP.NET alkalmazás fájlok. Csak a global.asaxérvényes. Nem kérhető kívülről a global.asax, ezért van regisztrálva. • .ascxASP.NET felhasználói vezérlőt definiáló file. • .ashxHTTP kezelő kérést szolgál ki, választ küld. • .asmxrégi típusú.NET Web services. • .aspxASP.NET oldal. • .axdbelsőHTTP kezelő, rendszer funkciókat szolgáltat as alkalmazás szintű nyomkövetés(trace.axd) vagy szkriptinjekció(webresource.axd). • .svcWCF szerviz • .cs, .csproj, .vb, .vbproj, .config, és .resx.
Kiszolgálás pontos meneteASP.default_aspx • Létrejön egy IIS munkaszál. • Megvizsgálja a gyorsító tárat, és abból ad, ha van megfelelő. • Összeállítja a megfelelő HTTP csővezetéket. • Létrehoz egy HttpRuntimepéldányt. • Több segéd objektum létrejön az inicializálás alatt. • Ha nem létezik, akkor • létrehozza a regisztrált modulok példányait, • meghívja az init() metódusaikat. • Létrehozza a ASP.default_aspxosztályt. • Létrehoz egy ASP.default_aspxpéldányt, vagy megszerzi annak referenciáját. • Minden kérés alkalmával HttpRuntime.ProcessRequestmetódus meghívása. • Üres kontextus létrehozása (HttpContextpéldánya), ami minden HTTP információt tatalmaz. • Létrehoz egy text writer objektumot a válasznak. http://www.4guysfromrolla.com/articles/011404-1.aspx http://msdn.microsoft.com/en-us/library/bb470252.aspx
Első kérés esetén • ApplicationManager osztály létrehozása (alkalmazádomain) • HostingEnvironment példányosítása (információk a webappról) • név, • mappa,… • Szükséges szerelvények lefordítása (App_Code mappa)
Minden kérés alkalmával • Alkalmazás objektumok létrehozása, inicializálása • HttpContext • HttpRequest • HttpResponse
Egy HttpAppplication példány hozzárendelése a kéréshez • Létrehozza ha nem létezett, megszerzi, ha már van.
HttpApplication • Az ősosztálya a futó ASP.NET webalkalmazásnak. • Ha létezik global.asaxfile, akkor létrehozza az alapján a ASP.global_asaxfájlt, és ennek lesz a példánya. • Ha nincs global.asaxfile, akkor HttpApplicationosztály egy példánya. • A megfelelő példány felelős a webalkalmazás életciklusáért.
Oldal életciklusának fő fázisai • Inicilizálás • Betöltés • Esemény kezelés (Postback esetén) • Vezérlők ellenőrzése (Postback esetén) • Adatkötés • Megjelenítés • Kisöprés
Kiterjesztett életciklus modell • Az oldalon vezérlők vannak. • Az oldalhoz mester oldal is tartozhat. • Általános szabály: • A gyerek vezérlők Init, Unload eseményei hamarabb futnak le mint a tárolóé.
Saját kód futtatása • Eseménykezelő definiálása • megfelelő metódus delegátumon keresztül • esemény paraméterből információ jön • Metódus felüldefiniálása • előre definiált virtuális metódusok • override használata
Inicializálás (Nem teljes)
Betöltés Csak PostBack esetén (Nem teljes)
Megjelenítés –XHTML generálás (PreRender + Render) (Nem teljes)
Kisöprés (Nem teljes)