TechEd BCN 2007 – Understanding ASP.NET Internals

By Ales

Predavatelj: Rob Howard, Telligent Inc.

ASP.NET je polna spletna request/response infrastruktura in razširljiva platforma (za dodatke skrbi aspnet_isapi.dll).

Za registriranje ASP.NET v IIS uporabimo ukaz:

aspnet_regiis.exe -i

HttpRuntime

HttpRuntime omogoča razširljivost in prilagajanje ASP.NET kot npr. izvajanje specifične avtentikacije (v ta namen bi lahko napisali HttpModule) ali, da prevzamemo nadzor nad slikovnimi datotekami – če bi radi na vsako sliko dali npr. svoj copyright (za take stvari se napiše HttpHandler). Je infrastruktura za procesiranje zahtev in odgovorov (request/response). Lahko teče v različnih gostiteljih (IIS 5, IIS 6, lahko napišemo svojo aplikacijo. Predavatelj je pokazal primer konzolne aplikacije, ki iz dinamične strani naredi statično (“file flattening”). To so naredili, ko so potrebovali boljše performanse. Primer take aplikacije je tudi spletni strežnik Cassini za katerega je na voljo tudi koda.

Interception Events

Podobni so ISAPI filtrom in omogočajo preusmerjanje odgovorov (repsonce-ov), prav tako pa lahko prekinejo zahtevo (request). Lahko ga implementiramo kot IHttpModule (priporočena metoda) ali pa v global.asax. Ker imamo lahko več modulov, se vrstni red izvajanja določi v web.config.

HttpHandler-je lahko implementiramo direktnov .ashx datoteki in ne rabimo posebnega razreda, ki bi implementiral IHttpHandler.

HttpContext

Vsebuje vse informacije o zahtevi (request) in za vsako zahtevo se naredi nova instanca. Lahko mu dodajamo svoje podatke (npr. custom session state).

Ideja: implemntacija poročil v obliki HttpHandler-ja.To tehniko uporabljajo v Community Server-ju za lažji izvoz poročil (.csv, .pdf).

Povezave:

http://weblogs.asp.net/rhoward

Leave a Reply