asp.net „röviden”
DESCRIPTION
ASP.NET „röviden”. Krizsán Zoltán ver: 0.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. - PowerPoint PPT PresentationTRANSCRIPT
ASP.NET „röviden”Krizsán Zoltán
ver: 0.2
2
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
ASP.NET webalkalmazás főbb tulajdonságai
3
ASP.NET Koncepcióview state
esemény vezérelt
postback
szerver vezérlők
4
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" />
View State I
5
1. ASP.NET létrehozza az oldalt és a szerver vezérlőket a default értékekkel ( .aspx file alapján).
2. 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.
3. Végül az ASP.NET HTTP paraméterek alapján átírja a megfelelő vezérlők megfelelő mezőit.
4. Meghívódnak ez eseményt kezelő metódusok.
View State II
6
Á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.
postback
7
<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>
postback II
8
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.
Esemény vezérelt
9
1. 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.
2. A felhasználó a kliens oldalon „tesz-vesz” ami postBack-et eredményez.
3. ASP.NET az újabb kérés alapján létrehozza a vezérlőket.4. 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.
5. 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
Kiszolgálás teljes folyamata
10
Kiszolgálás elemei I
11
Kezelők (handler) 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.
Kiszolgálás elemei II
12
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.
Kezelők
13
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
ASP.NET feldolgozásának fő fázisai
14
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.
Esemény kezelő (.aspx)
15
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" %>
ASP.NET kód modell
16
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)
Szerelvény létrehozása, cache-be töltés.
Szerelvény generálás
17
Implicit objektumok
Forrás: http://msdn.microsoft.com/en-us/library/ms178473.aspx
18
Request Response
Response.Redirect("newpage.aspx"); (302 code) Response.RedirectPermanent() (301 code)
Application Session Server
Server.Transfer() Server.HtmlEncode
User Trace
Implicit objektumok
19
süti, form paraméterek, querystring, szerver változók Request.Cookies Request.Form Request.QueryString Request.ServerVariables
Mind a 4 egyben (előbbiek ömlesztve): Request.Params Request.Params.Get Request.Params[] Request[]
Request.Files Request.Headers Request.Browser
Adatok elérése
20
Request.RequestType Request.IsPostBack
if (Page.IsPostBack){ // HTTP Post}else{ // HTTP Get}
Get, post
21
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.
http modulok
22
•Kliens oldali szkript támogatás•runat="server„ lehet, de macerásHTML vezérlők
•<asp:XXX•profi vezérlők•szkin, téma
Web szerver vezérlők
•vezérlő tartalmátEllenőrző vezérlők
•saját, új vezérlők•.ascx•@Control
Felhasználói vezérlők
Rendelkezésre álló vezérlők
23
HTML vezérlők
24
Két esemény támogatott: ServerClick
HtmlAnchor, HtmlButton, HtmlInputButton, HtmlInputSubmit, HtmlInputImage
ServerChange HtmlInputText, HtmlInputCheckBox,
HtmlInputRadioButton, HtmlInputHidden, HtmlSelect, HtmlTextArea
Html szerver oldali vezérlők
25
WEB vezérlők
26
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)
Konfiguráció
27
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
Gyorsító tár (cache)
28
Kinézet testre szabása. Szkin (szerver vezérlő tulajdonságai), css,
képek, erőforrások. Mappa alapú.
Témák, szkinek
29
Mester oldal definiálja a közös kinézetet.
Közös kinézet = Mester oldal
Forrás: http://msdn.microsoft.com/en-us/library/wtxbf3hh.aspx
30
adat tartalmú vezérlőkhöz feltételek hibaszövegek
Felhívás összesítő
Adatok ellenőrzése
31
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)
Állapot menedzsment
32
View stateControl stateHidden fields
CookiesQuery strings
Application state
Session stateProfile Properties
Állapot menedzsment lehetőségek
Kliens oldal
Szerver oldal
33
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
Adatbázis elérés, adat kötés
34
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
Biztonság
35
AJAX
36
Model – View - Controller Model – View - Presenter
Tervezési minták