36
ASP.NET „röviden” Krizsán Zoltán ver: 0.2

ASP.NET „röviden”

  • Upload
    eyad

  • View
    49

  • Download
    0

Embed Size (px)

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 Presentation

Citation preview

Page 1: ASP.NET „röviden”

ASP.NET „röviden”Krizsán Zoltán

ver: 0.2

Page 2: ASP.NET „röviden”

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

Page 3: ASP.NET „röviden”

3

ASP.NET Koncepcióview state

esemény vezérelt

postback

szerver vezérlők

Page 4: ASP.NET „röviden”

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

Page 5: ASP.NET „röviden”

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

Page 6: ASP.NET „röviden”

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

Page 7: ASP.NET „röviden”

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

Page 8: ASP.NET „röviden”

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

Page 9: ASP.NET „röviden”

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

Page 10: ASP.NET „röviden”

10

Kiszolgálás elemei I

Page 11: ASP.NET „röviden”

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

Page 12: ASP.NET „röviden”

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

Page 13: ASP.NET „röviden”

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

Page 14: ASP.NET „röviden”

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)

Page 15: ASP.NET „röviden”

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

Page 16: ASP.NET „röviden”

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

Page 17: ASP.NET „röviden”

17

Implicit objektumok

Forrás: http://msdn.microsoft.com/en-us/library/ms178473.aspx

Page 18: ASP.NET „röviden”

18

Request Response

Response.Redirect("newpage.aspx"); (302 code) Response.RedirectPermanent() (301 code)

Application Session Server

Server.Transfer() Server.HtmlEncode

User Trace

Implicit objektumok

Page 19: ASP.NET „röviden”

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

Page 20: ASP.NET „röviden”

20

Request.RequestType Request.IsPostBack

if (Page.IsPostBack){  // HTTP Post}else{  // HTTP Get}

Get, post

Page 21: ASP.NET „röviden”

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

Page 22: ASP.NET „röviden”

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

Page 23: ASP.NET „röviden”

23

HTML vezérlők

Page 24: ASP.NET „röviden”

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

Page 25: ASP.NET „röviden”

25

WEB vezérlők

Page 26: ASP.NET „röviden”

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ó

Page 27: ASP.NET „röviden”

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)

Page 28: ASP.NET „röviden”

28

Kinézet testre szabása. Szkin (szerver vezérlő tulajdonságai), css,

képek, erőforrások. Mappa alapú.

Témák, szkinek

Page 29: ASP.NET „röviden”

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

Page 30: ASP.NET „röviden”

30

adat tartalmú vezérlőkhöz feltételek hibaszövegek

Felhívás összesítő

Adatok ellenőrzése

Page 31: ASP.NET „röviden”

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

Page 32: ASP.NET „röviden”

32

View stateControl stateHidden fields

CookiesQuery strings

Application state

Session stateProfile Properties

Állapot menedzsment lehetőségek

Kliens oldal

Szerver oldal

Page 33: ASP.NET „röviden”

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

Page 34: ASP.NET „röviden”

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

Page 35: ASP.NET „röviden”

35

AJAX

Page 36: ASP.NET „röviden”

36

Model – View - Controller Model – View - Presenter

Tervezési minták