Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
ASP.NET „röviden” Krizsán Zoltán ver: 0.2
2
ASP.NET webalkalmazás főbb tulajdonságai
Gyors : A kérést gépi kódú szerelvény szolgálja ki. Gyorsan fejleszthető: A fejlesztő eszközzel kész komponensek. „Destop alkalmazás szerű” alkalmazás modell. Kényelmes állapotmentési metodikák. Ingyenes fejlesztés, üzemeltetés (IIS express) Windows azonosítás lehetősége
3
ASP.NET Koncepció view state esemény vezérelt postback
szerver vezérlők
4
View State I HTTP állapotmentes, ennek kiküszöbölésére született.
Állapot szerializáció. Miután a szerver logika lefutott, de a HTML generálás előtt a rendszer ellenőrzi az összes vezérlő össze tulajdonságát név – érték párosba rendezi a változott értékeket sorosítja a gyűjteményt BASE64 szövegbe rejtett mezőként jelenik meg a kódban lehet titkosítani megfelelő vezérlők állapota bekerül a válaszba, majd a kliens visszaküldi a kérésben. Szerveren nincs méretkorlát, de a tűzfalaknál, kliens oldalon lehet, ezért korlátozni lehet <pages maxPageStateFieldLength="1024" />
5
View State II ASP.NET létrehozza az oldalt és a szerver vezérlőket a default értékekkel ( .aspx file alapján). Ezután az ASP.NET a view state rejtett mező alapján „vissza állítja” az előző kérés állapotára a megfelelő vezérlőket. Végül az ASP.NET HTTP paraméterek alapján átírja a megfelelő vezérlők megfelelő mezőit. Meghívódnak ez eseményt kezelő metódusok. ábra ide 86. oldal
6
postback Átmenet a normál Windows Forms azonnali gazdag eseményvezérelt működése és a http sima „submit” között. Minden szerver oldali vezérlőnek van AutoPostBack tulajdonsága, false alapértelmezetten. Ha a formon van legalább 1 vezérlő AutopostBack=true-val, akkor __doPostBack() JS függvényt (beállítja a rejtett mezők értékeit, elküldi az oldat), __EVENTTARGET rejtett mezőt, __EVENTARGUMENT rejtett mezőt minden postback=true elemhez onclick vagy onchange=”__doPostBack(asdasd) ” generál bele az ASP.NET.
7
postback II <script type="text/javascript"> function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } ... </script>
8
Esemény vezérelt Programozás egyszerű, átlátható.
A Windows Forms alkalmazás fejlesztéséhez hasonló metodika DE a szokásos HTTP protokoll használatával. A rendszer transzparensen kezeli, emulálja a modellt.
9
Kiszolgálás teljes folyamata
Első alkalommal az oldal objektum és a vezérlők létrejönnek a default értékkel, lefutnak az inicializáló kódok, majd HTML kód készül az oldalból, és az objektumok felszabadulnak. A felhasználó a kliens oldalon „tesz-vesz” ami postBack-et eredményez. ASP.NET az újabb kérés alapján létrehozza a vezérlőket. ASP.NET a postback kisérő eseményét meghívja. Ebben a szerver oldali logika műveleteket hajt végre (pl.: adatb), majd módosítja a vezérlők állapotát. Az vezérlőkből HTML készül, és a memóriából kisöprődnek. A HTML válasz visszakerül a klienshez Ha másik postback keletkezik, akkor a 3-5 lépések újból lefutnak
10
Kiszolgálás elemei I
11
Kiszolgálás elemei II Kezelők (handler) Modulok
Fogadja a felhasználói kérést. Feldolgozza. Választ küld (opcionális). Modulok elő vagy utófeldolgozást végezhet. Elfoghatja a kérést. Rendszer üzeneteket fogadhat. Rendszer üzeneteket generálhat.
12
Kezelők Egy procesz, ami asp webapp kérésre választ „ad”
Számos beépített (oldal kezelő aspx-re). Kiterjeszthető: RSS feed, kép szerver, … Osztály, ami implementálja egy megfelelő interfészt. Lehet szinkron (IHttpHandler) vagy aszinkron (IHttpAsyncHandler). regisztrálni kell a web.config-ban.
13
ASP.NET feldolgozásának fő fázisai
Page framework inicializálás Felhasználói inicializálás Adatok ellenőrzése Esemény kezelés Adatkötés (Binding) Takarítás
14
Esemény kezelő (.aspx) http kezelő
életciklust biztosít események formájában Init Load Render Fogadja a felhasználó paramétereit (postback) Szerver vezérlőkkel hatékony.
15
ASP.NET kód modell Támogatott nyelvek: C#, Visual Basic, J#, Jscript, … 2 modell a szerver kódnak (parciális osztályok) Spagetti kód (egy fájl): Page Language="C#" %> <script runat="server"> void Button1_Click(object sender, System.EventArgs e) { Label1.Text = ("Welcome, " + TextBox1.Text); } </script> code-behind (Visual Studio): Page Language="C#" CodeFile="Default.aspx.cs" Inherits="Default" %>
16
Szerelvény generálás Szükség esetén fut le: 2 lépés
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) Szerelvény létrehozása, cache-be töltés.
17
Implicit objektumok Forrás:
18
Implicit objektumok Request Response Application Session Server User
Response.Redirect("newpage.aspx"); (302 code) Response.RedirectPermanent() (301 code) Application Session Server Server.Transfer() Server.HtmlEncode User Trace
19
http modulok Natív és menedzselt kód is lehet.
Egy szerelvény, az ASP.NET kérés pipeline részeként szerepel. Célja: kérés módosítás, statisztika, loggolás, saját header footer,… Futásidejű eseményeket kezel Alkalmazás szintű HttpApplication Más modul eseményeit Implementálja a IHttpModule interfészt (Init, Dispose). Metódusai: Init inicializálja a modult a HttpApplication hívja meg. Saját eseménykezelőit regisztrálja. Dispose felszabadítja a memóriát. Esemény kezelők.
20
Rendelkezésre álló vezérlők
Kliens oldali szkript támogatás runat="server„ lehet, de macerás HTML vezérlők <asp:XXX profi vezérlők szkin, téma Web szerver vezérlők vezérlő tartalmát Ellenőrző vezérlők saját, új vezérlők .ascx @Control Felhasználói vezérlők
21
HTML vezérlők
22
Html szerver oldali vezérlők
Két esemény támogatott: ServerClick HtmlAnchor, HtmlButton, HtmlInputButton, HtmlInputSubmit, HtmlInputImage ServerChange HtmlInputText, HtmlInputCheckBox, HtmlInputRadioButton, HtmlInputHidden, HtmlSelect, HtmlTextArea
23
WEB vezérlők
24
Konfiguráció XML alapú. Előre definiált séma.
Hierarchikus felépítés (öröklődés, felül definiálás) fájlok machine.config (Számítógép) web.config (webalkalmazás, jegyzékek)
25
Gyorsító tár (cache) Alkalmazás cache (programozási eszköz)
kulcs – éték párok érvényességi idő gyakran használt elemeket tárolhatunk (függőség) Kimenet cache oldal egésze, vagy oldalnak egy része variációkat képes figyelni nem generálja az oldal kimenetét minden esetben
26
Témák, szkinek Kinézet testre szabása.
Szkin (szerver vezérlő tulajdonságai), css, képek, erőforrások. Mappa alapú.
27
Közös kinézet = Mester oldal
Mester oldal definiálja a közös kinézetet. Forrás:
28
Adatok ellenőrzése adat tartalmú vezérlőkhöz Felhívás összesítő
feltételek hibaszövegek Felhívás összesítő
29
Állapot menedzsment Webalkalmazás állapotát menteni kell a kérések között. Szintek alkalmazás - HttpApplicationState session - HttpSessionState oldal (page) - ViewState kérés (request)
30
Állapot menedzsment lehetőségek
Kliens oldal View state Control state Hidden fields Cookies Query strings Application state Session state Profile Properties Szerver oldal
31
Adatbázis elérés, adat kötés
Nincs szükség kódra a gyakori műveletekre(összerendelhető, testre szabható vezérlők deklaratívan) adatok megjelenítés lapozás, rendezés frissítés, beszúrás, törlés szűrés LINQ használata lehetséges, kényelmes
32
Biztonság Windows megszemélyesítés : Basic, digest, or Integrated Windows Authentication (NTLM or Kerberos). Forms authentication saját login oldal és menedzsment Client Certificate authentication
33
AJAX
34
Tervezési minták Model – View - Controller Model – View - Presenter
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.