Az ASP.NET programozási modell Ez az előadó neve beosztása vállalata
A HTML előállítása „Mindenki másként csinálja” Notepad Warrior – a HTML fájlok a szerveren (a web (h)őskora) Teljesen kódolva – régi cgi alkalmazások Sablonból szövegrészlet cserével – régi asp, php Sablonból objektummodell építésével – ASP.Net
WEB Server vs. File Server A kiszolgálók felemelkedése Valamilyen hálózati protokoll CGI HTTP Request Handler TCP/IP + HTTP
Response (html) Execute Az ASP.Net feldolgozási modellje IL kód.dll file Natív kód Memória _Default: Page _Default_aspx: _Default compiler JIT Default.aspx Default.aspx.cs parser Web Server K ülvilág Render()
Az ASP.Net sablonja (ASPX)
Demó runat="server" <asp: Codebehind Vezérlők objektumfája Html szerver control Web szerver control
A post, get és postback A beszélgetés világnyelve és az udvari protokoll HTTP röviden – formátum – verbs (post, get és a többiek) A feldolgozási pipeline – a HTTP raw tartalmának elérése – a lekérdezés előfeldolgozása A postback – az objektumfa szerepe az előfeldolgozáskor – crosspagepostback
Állapotmentes környezet Szia, hogy hívnak? Szia, hogy hívnak? Szia, hogy hívnak Egy oldal lekérdezése egy egység A visszaküldendő html legenerálása után a szerver elfelejt mindent – legközelebb nem tudja, hogy a kérdező nem először jár ott, pláne azt hogy előtte mit adott oda A probléma megoldása az emlékeztetés Ezt hívjuk állapotkezelésnek
Egy oldal életciklusa Fontosabb mérföldkövek a példányosítástól Példányosítás Init Load Események – állapokezelési trükk » (másik előadás) – két eseménycsoport Prerender Render PreInit Init InitComplete Loa dState Pro cessPostData PreLoad Load Pro cessPostData Second Try Rai se ChangedEve nts Rai se PostBackEve nt LoadComplet e PreRender PreRenderCo mplete SaveState SaveStateCo mplete Render ProcessPostData Second Try Raise ChangedEvents Raise PostBackEvent PreInit Init InitComplete LoadState ProcessPostData PreLoad Load ProcessPostData Second Try Raise ChangedEvents Raise PostBackEvent LoadComplete PreRender PreRenderComplete SaveState SaveStateComplete Render LoadState ProcessPostData PreInit Init InitComplete PreLoad Load LoadComplete PreRender PreRenderComplete SaveState SaveStateComplete Render
Demó Post adatok megszerzése Request[] – form – querystring – cookies (másik előadás) TextBox1.Text Response objektum OnClick, OnTextChange (későbbi előadás)
Konfigurácós lehetőségek Amit nem célszerű kódolni, azt konfiguráljuk Web.config – XML – kötött séma – kiskapu (appSettings) – a séma bővíthető A konfigurációs hierarchia – machine.config – alkönyvtárak –
Konfigurácós hierarchia Minta: Adat: Doboz: Minta: Adat: Doboz: × × × × × × Minta: Adat: Doboz: Minta: Adat: Doboz: × × × × × × Minta: Adat: Doboz: Minta: Adat: Doboz: × × × × × × Minta: Adat: Doboz: Minta: Adat: Doboz: × × × × × × dinnye alma alma alma alma barack barack citrom
Demó Olvasás configból A hierarchia demózása az appsettings-szel Trace
Előretekintés Ez pedig az alcíme Egyéb fájlformátumok – ashx, ascx... Bővíthetőség – saját vezérlők – providerek
ASP.Net fordítási modell On-demand fordítás – mi és mikor fordul – a különleges könyvtárak szerepe App_Code, App_Data App_Themes App_WebReferences App_GlobalResources, App_LocalResources Előfordítási lehetőségek