Bevezetés Alapok Kontrolok Életciklus ASP.NET 1 / 33



Hasonló dokumentumok
ASP.NET. ASP vs. ASP.NET. ASP.NET előnyök (ASP-hez képest) ASP - Active Server Pages ASP.NET

Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése. Történet ASP ASP.NET. Működés. Készítette: Simon Nándor

ASP-s alkalmazás készítés

Eddig még nem használt vezérlőket is megismerünk: PlaceHolder, RadioButtonList.

Webshop készítése ASP.NET 3.5 ben I.

JAVA webes alkalmazások

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák

A JavaServer Pages (JSP)

Java Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa

A JavaServer Pages (JSP)

A JavaServer Pages (JSP)

.NET Microsoft.Net Framework és programozása II.

Web-fejlesztés NGM_IN002_1

1. fejezet Bevezetés a web programozásába (Balássy György munkája) Az internet működése... 11

Webes alkalmazások fejlesztése

Bevezetés Működési elv AJAX keretrendszerek AJAX

Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez

A Java EE 5 plattform

RIA Rich Internet Application

Bánsághi Anna 2015 Bánsághi Anna 1 of 31

Internet alapú alkalmazásfejlesztés gyakorlat

1. ábra Fájl feltöltése 2. ábra Megtekintés

Már megismert fogalmak áttekintése

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

WWW Kliens-szerver Alapfogalmak Technológiák Terv. Web programozás 1 / 31

A szerzõrõl... xi Bevezetés... xiii

Microsoft SQL Server telepítése

George Shepherd. 1. A webes alkalmazások alapjai 1

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Web programoz as

Enterprise JavaBeans 1.4 platform (EJB 2.0)

Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás

Szervlet-JSP együttműködés

TERC V.I.P. hardverkulcs regisztráció

Bevezető. Servlet alapgondolatok

ESEMÉNY VEZÉRELT ALKALMAZÁSOK FEJLESZTÉSE I. Bevezetés. Készítette: Gregorics Tibor

Internet technológiák

A TERC VIP költségvetés-készítő program telepítése, Interneten keresztül, manuálisan

Sorosítás (szerializáció) és helyreállítás. 1. Bináris sorosítás és helyreállítás Szükséges névterek Attribútumok. 1.3.

Webes alkalmazások fejlesztése. Bevezetés az ASP.NET MVC 5 keretrendszerbe

Tartalom jegyzék 1 BEVEZETŐ SZOFTVER ÉS HARDVER KÖVETELMÉNYEK 2 2 TELEPÍTÉS 2 3 KEZELÉS 5

Web-fejlesztés NGM_IN002_1

Java Web technológiák

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet

Interfészek. PPT 2007/2008 tavasz.

XML Webszolgáltatás alapú osztott alkalmazás fejlesztése Johanyák Zsolt Csaba 1

Fejlesztési tapasztalatok multifunkciós tananyagok előállításával kapcsolatban Nagy Sándor

MVC desktop alkalmazás esetén. MVC Model-View-Controller. eredete: Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások

JavaScript Web AppBuilder használata

Kompozit alkalmazások fejlesztése. IBM WebSphere Portal Server

JSF alkalmazások teljesítményhangolása JMeter és dynatrace segítségével

Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet Copyright 2008 Johanyák Zsolt Csaba

Internet programozása. 1. előadás

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

Johanyák Zsolt Csaba: Grafikus felület programozása. Copyright 2008 Johanyák Zsolt Csaba

Webes alkalmazások fejlesztése. 9. előadás Bevezetés az ASP.NET MVC keretrendszerbe

Élő webes alkalmazások rendszerfelügyelete cím- és tartalomteszteléssel

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group

Telepítési Kézikönyv

JavaServer Pages (JSP) (folytatás)

Szerver oldali technológiák Szerver oldali script nyelvek PHP

KnowledgeTree dokumentumkezelő rendszer

Java és web programozás

MVC. Model View Controller

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

OOP és UML Áttekintés

API tervezése mobil környezetbe. gyakorlat

Webes alkalmazások fejlesztése 6. előadás. Weblapok fejlesztése és architektúrája (ASP.NET)

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

és az instanceof operátor

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 5. óra. Kocsis Gergely, Supák Zoltán

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Kezdő lépések Microsoft Outlook

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

12.óra jquery Framework #1. Gyimesi Ákos

beállítása Outlook kliensen. Magyar verzió 1.0

Használati alapú és modell alapú tesztelés kombinálása szolgáltatásorientált architektúrák teszteléséhez az ipari gyakorlatban

Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, Quantum GIS program alkalmazásával Útmutató 2010.

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović

E-Freight beállítási segédlet

Entity Framework alapú adatbáziselérés

Access adatbázis elérése OLE DB-n keresztül

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

1. ábra Mester oldal alapján különböző témákkal létrehozott webhely oldalai

1. Origin telepítése. A telepítő első képernyőjén kattintson a Next gombra:

BME MOGI Gépészeti informatika 7.

7. Előadás. Makrók alkalmazása. Salamon Júlia. Előadás I. éves mérnök hallgatók számára

Flex: csak rugalmasan!

Üdvözli Önöket A PGY3 tantárgy! Bakay Árpád dr. NETvisor kft (30) arpad.bakay@netvisor.hu

PolyVision illesztőprogram Kibocsátási megjegyzések 2.2. változat

A webhelyhez kötődő szoftverek architektúrája

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

BME MOGI Gépészeti informatika 6.

Útmutató az OKM 2007 FIT-jelentés telepítéséhez

Eseményvezérelt és objektumorientált programozás

Átírás:

ASP.NET 1 / 33

Áttekintés Bevezetés Alapok Szerver-oldali vezérlők (kontrolok) ASP.NET oldal életciklusa, eseménymodell 2 / 33

Áttekintés Bevezetés Alapok Szerver-oldali vezérlők (kontrolok) ASP.NET oldal életciklusa, eseménymodell 3 / 33

Áttekintés Bevezetés Alapok Szerver-oldali vezérlők (kontrolok) ASP.NET oldal életciklusa, eseménymodell 4 / 33

Áttekintés Bevezetés Alapok Szerver-oldali vezérlők (kontrolok) ASP.NET oldal életciklusa, eseménymodell 5 / 33

ASP vs. ASP.NET ASP - Active Server Pages a Microsoft által kifejlesztett szerver-oldali script nyelv a klasszikus ASP (utolsó verziója ASP 3.0) egy ASP állomány értelmezett, kiterjesztése:.asp ASP.NET az ASP.NET a klasszikus ASP továbbfejlesztett változata, de NEM (teljesen) kompatibilis vele A Microsoft.NET platformjának része web alkalmazások készítését lehetővé tevő keretrendszer egy ASP.NET állomány lefordított, kiterjesztése:.aspx Mindkettő az IIS (Internet Information Services) szerveren fut 6 / 33

ASP.NET előnyök (ASP-hez képest) Több programozási nyelvet támogat Programozható kontrolok Eseményvezérelt programozás XML alapú komponensek Felhasználó azonosítás (felhasználói fiókok, szerepek) Jobb skálázhatóság Hatékonyság (lefordított kód) Egyszerűbb konfigurálás és telepítés 7 / 33

Fejlesztési-/futtatási környezet IIS szerver (Add/Remove Windows components).net keretrendszer.net fejlesztői környezet (Visual Studio... kereskedelmi vagy ingyenes verzió, Visual Web Developer (integrált szerver: ASP.NET Developement Server), WebMatrix) hivatalos weboldal: http://www.asp.net dokumentáció: Dokumentáció a Microsoft oldalán Tutorialok 8 / 33

Webalkalmazás készítését illetően az alábbi háromféle megközeĺıtést támogatja: Web Pages gyors és egyszerű módja annak, hogy a szerver oldali kódot a HTML elemekkel vegyítve dinamikus tartalmat hozzunk létre Web Forms eseményvezérelt weboldal-készítés ASP.NET MVC komplexebb webalkalmazások fejlesztésére alkalmas keretrendszer, mely különböző tervezési minták betartására ösztönöz 9 / 33

ASP.NET oldalak jellemzői Az ASP.NET oldalak (.aspx állomány) dinamikus tartalom létrehozását teszik lehetővé ASP.NET web oldal feldolgozásának lépései: oldal (első) lekérése (GET metódus): az oldal először fut a szerveren a dinamikusan generált tartalom vissza lesz küldve és megjelenik a kliens böngészőjében a felhasználó pl. információt ír be/kiválaszt vmilyen opciókat..., majd megnyom egy gombot (ha egy másik oldalra mutató hivatkozásra kattint - az oldal feldolgozása ezzel véget ér) a form-adatok a szerverre lesznek visszapostázva (postback), POST metódussal -tipikusan- ugyanahhoz az oldalhoz a szerveren ismét ugyanaz az ASP.NET oldal fut le a küldött információ hozzáférhető szerver oldalon a szerveren történt feldolgozást követően a generált tartalom visszamegy és meg lesz jelenítve (rendering) a böngészőben 10 / 33

ASP.NET web oldalak jellemzői (folyt.) Ez a ciklus ismétlődik mindaddig, amíg a felhasználó az adott oldallal dolgozik. Egy ilyen ciklus neve: Round trip ( körutazás ) Lehetőség van arra is, hogy a kérés paramétereket egy másik oldallal dolgoztassuk fel (cross-page posting) oldal élettartama Minden egyes kérés egy újabb oldal (egyúttal egy új Page instancia) létrehozását eredményezi (a cache-eléstől eltekintve) 11 / 33

ASP.NET oldal felépítése: A felhasználói interfész tervezésére az ASP.NET kétféle modellt kínál: Single-File Page Model vizuális elemek, illetve esménykezelők vagy egyéb kód ugyanazon.aspx állományban Code-Behind Page Model különválasztja a vizuális elemeket, és az ezeket kezelő logikát Egy ASP.NET oldal az alábbiakat tartalmazhatja: statikus HTML/XHTML ASP.NET direktívák (pl. < %@ Page... % >) egyetlen form elem (ha vannak szerver kontrolok) ASP.NET szerver-oldali vezérlők (server controls) szerver oldali megjegyzés < % megjegyzes % > a Single-File Page Model használata esetén: script blokk script elembe (runat = server attribútummal) ágyazott kód alprogram megadása, pl. eseménykezelő 12 / 33

Példa ASP.NET oldal <%@ Page Language="C#" %> <html> <script runat="server"> void Button1 Click(object sender, System.EventArgs e) { Label1.Text = ("Üdvözöllek, " + TextBox1.Text); } </script> <head><title>asp.net példa</title></head> <body> <form runat="server"> <p>neved:</p><p> <asp:textbox id="textbox1" runat="server" /> <asp:button id="button1" runat="server" Text="Katt" OnClick="Button1 Click" /> </p><p> <asp:label id="label1" runat="server"></asp:label> </p> </form></body></html> 13 / 33

ASP.NET alapok - Code-Behind Page Model két részre osztott felhasználói interfész (Code-Behind Page Model): vizuális elemek: ASP.NET dokumentum (markup file) logika: hozzá tartozó háttérkód (code-behinde file) C#, VB.NET, stb. az ASP.NET dokumentum a használt.net programozási nyelvnek megfelelő osztállyá lesz fordítva (a háttérkóddal együtt) a lefordított kód egy összeálĺıtásban (assembly) szerepel, mely a szerverre telepítve futtatható Az ASP.NET dokumentumból generált osztály (document class) a System.Web.UI.Page osztály leszármazottja (lásd diagram ) a Page osztálytól örökölt fontosabb adattagok: Request, Response objektumok (lásd még: belső objektumok) az oldalon található HTML-, illetve webkontroloknak megfelelő HTMLControls, WebControls osztályok IsPostBack tulajdonság 14 / 33

Öröklődési modell Single Page Model: Code Behind Model: 15 / 33

ASP.NET dokumentum háttérkódjának megadása ASP.NET web oldal projekt esetén: <%@ Page Language="..." CodeFile="allomanynev.aspx.cs" Inherits="allomanynev" %> telepíthetjük a web oldal forráskódját a szerverre ezek automatikusan le lesznek fordítva az első (bármelyik oldalra vonatkozó) kérés érkezésekor nem kötelező, de végezhető előfordítás is (hogy a legelső hozzáférés se legyen lassú) ASP.NET web alkalmazás projekt esetén: <%@ Page Language="..." CodeBehind="allomanynev.aspx.cs" Inherits="allomanynev" %> a web oldalakat explicit módon le kell fordítani telepítés előtt (így tesztelhető is telepítés előtt) egy vagy több összeálĺıtást (assembly-t) telepíthetünk. 16 / 33

Direktívák A direktívák az oldal feldolgozására vonatkozó információt szolgáltatnak (nem lesznek megjelenítve) a @ Page direktíva segítségével megadható: a programozási nyelv, melyen az oldalhoz tartozó kód íródott a háttérkód elérhetősége (Code-Behind Page Model esetén) debug opciók van-e az oldalhoz rendelt ún mester-oldal (Master Page) más direktívák: @ Import használni kívánt névterek importálása @ OutputCache oldal cache-elésére vonatkozó információk @ Implements valamilyen.net interfész implementálása esetén @ Register újabb vezérlők (pl. felhasználó által definiált vezérlők) regisztrálása az oldalon való használat érdekében 17 / 33

Egyszerű pl.: visszaszamlal a.aspx, visszaszamlal b.aspx háttérkóddal: visszaszamlal c.aspx, visszaszamlal c.aspx.cs 18 / 33

ASP.NET szerver-oldali kontrolok/vezérlők Az ASP.NET az alábbi kategóriákba sorolt vezérlőket kínálja fel: HTML kontrolok (HTML controls) szerver-oldalon programozhatóvá tett (X)HTML elemek web kontrolok (web controls) a HTML vezérlőknél komplexebb funkcionalitású kontrolok validációs/érvényesség-vizsgáló kontrolok (validation controls) lehetővé teszik különböző form-elemekbe bevitt értékek megadott kritériumok szerinti ellenőrzését felhasználói vezérlők (user controls) a felhasználó által készített, újrafelhasználható elemek készítését teszik lehetővé Az ASP.NET oldalon szereplő vezérlők az oldalnak megfelelő osztályon belül egy fastruktúrában helyezkednek el. 19 / 33

HTML szerver-oldali vezérlők az egyszerű (X)HTML elemeket az ASP.NET egyszerű szövegként kezeli bármelyik HTML elem szerver oldalon hozzáférhetővé/ programozhatóvá tehető a runat = "server" attribútum hozzáadásával a HTML vezérlők a megfelelő (X)HTML elemhez hasonló módon lesznek megjelenítve az id attribútumban megadott néven érhető el a megfelelő objektum a HTML vezérlő minden egyes attribútuma elérhető a szerver-oldali objektum tulajdonságaként pl. HTMLControlsPl.aspx HTML vezérlők Referencia 20 / 33

Web kontrolok nem feltétlenül feleltethetőek meg egy az egyben egy (X)HTML elemnek komplexebb funkcionalitást biztosítanak a HTML vezérlőkhöz képest a megjelenítésük függhet a böngésző típusától vagy a tulajdonságok beálĺıtásától szintaxis: <asp:ctrlname attributes runat="server" id="uniqueid" /> <asp:textbox runat="server" id="name" /> hivatkozás a beírt szövegre: name.text Pl. WebControlsPl.aspx web kontrolok Referencia 21 / 33

Néhány gyakran használt web kontrol: web kontrol típusa Neki megfeleltethető (X)HTML elem(ek) AdRotator <img> és <link> Button <input type = "button submit reset" /> Calendar nincs Checkbox <input type = "checkbox" /> CheckBoxList nincs DropDownList <select> Image <img> ImageButton nincs ImageMap nincs Label nincs Panel <div> RadioButton <input type = "radio" /> RadioButtonList nincs Table <table> TableCell <th>, <td> TableRow <tr> TextBox <input type = "text" /> 22 / 33

Megjegyzés: Egyes vezérlők (pl. CheckBox, CheckBoxList, DropDownList, TextBox) rendelkeznek egy AutoPostBack tulajdonsággal. Ha ez be van álĺıtva, a vezérlő értékének módosítása automatikusan postback-et generál. Pl. lásd (később) SessionHandlingPl.aspx 23 / 33

Vezérlők állapotának megőrzése - ViewState segítségével View state: az ASP.NET implicit megoldást kínál a vezérlők állapotának (NEM a form elemek értékének) két postback közötti megőrzésére egyéb oldal-specifikus adatok ideiglenes lementésére is használhatjuk a dokumentum osztály rendelkezik egy ViewState nevű StateBag típusú adattaggal, melybe a vezérlők állapota le lesz mentve a válasz generálása során a ViewState szerializálva lesz, illetve el lesz küldve a kliens böngészőre egy VIEWSTATE nevű hidden mezőként a view state használata kikapcsolható, ha szükséges ViewStateMode = Disabled vagy EnableViewState= false oldal szinten (a @ Page direktívában) vezérlő szinten 24 / 33

view state ASP.NET dokumentum életciklusa: Pl. lásd: ViewStatePl.aspx 25 / 33

Érvényesség-vizsgáló kontrolok a felhasználó által bevitt adatok ellenőrzését teszik lehetővé hiba esetén a megfelelő hibaüzenet megjelenítése testreszabható HTML- illetve web kontrolokkal egyaránt használhatóak Különböző típusú érvényesség-vizsgáló vezérlők: RequiredFieldValidator biztosítja, hogy a kötelező bemenetet mindenképpen kitöltse a felhasználó CompareValidator összehasonĺıtást végez egy adott értékkel RangeValidator megvizsgálja, hogy az érték egy megadott intervallumban van RegularExpressionValidator megvizsgálja, hogy a érték megfelel-e egy megadott reguláris kifejezésnek (pl. e-mailcím, telefonszám ellenőrzése) CustomValidator felhasználó által definiált funkcionalitás az ellenőrzés végezhető kliens és/vagy szerver oldalon 26 / 33

ValidationSummary az érvényesség-vizsgálat során észlelt hibák összesítésére ad lehetőséget Megjegyzés: Az ASP.NET automatikusan ellenőrzi az esetlegesen rosszindulatú bemenetet (pl. HTML elemek, script kód), akkor is, ha nem használunk külön érvényesség-vizsgáló vezérlőket Pl. ErvenyessegEllenorzesPl.aspx Validation controls Referencia 27 / 33

ASP.NET oldal életciklusa Egy ASP.NET oldal életciklusa során különböző fázisokon megy keresztül: inicializálás, vezérlők példányosítása, állapot megőrzés/visszaálĺıtás, eseménykezelők futtatása, kimenet generálása (rendering) Fázisok: Kérés érkezik Az ASP.NET eldönti, hogy szükség van-e az oldal feldolgozására vagy visszaküldhető a cache-ben tárolt változat Start Request, Response, IsPostBack, illetve UICulture beálĺıtása Inicializálás az oldalon szereplő vezérlők elérhetővé válnak (de az állapotuk még nincs a view state alapján beálĺıtva) Load postback kérés esetén a vezérlők állapota inicializálva lesz a view state alapján folyt.... 28 / 33

ASP.NET oldal életciklusa (folyt.) Fázisok (folyt.) Postback esemény-kezelés postback esetén meghívódnak a vezérlők megfelelő eseménykezelői, majd az érvényesség-vizsgáló vezérlők érvényességvizsgáló metódusai (megj. az érvényességvizsgálatot kiváltó esemény eseménykezelője csak ezt követően lesz meghívva) Kimenetgenerálás (rendering) előtte az összes vezérlő esetén le lesz mentve a view state. Meghívódik rekurzívan a vezérlők Render metódusa Unload miután a válasz el lett küldve a kliensnek, a már nem szükséges adatstruktúrák törlésére kerül sor 29 / 33

ASP.NET szerver-oldali vezérlők esemény modellje esemény-modell: az ASP.NET egy esemény-alapú modellt kínál a dokumentumok szerver-oldali programozására az esemény kliens oldalon váltódik ki az esemény kezelése szerver-oldalon történik a különböző vezérlőkhöz kapcsolódó, szerver-oldalon kezelhető tipikus események: kattintás automatikus postback módosítás (csak egyes vezérlőknél) hatásuk a következő postback-ig késleltetve van/ vagy azonnali postback (lásd: AutoPostBack tulajdonság) a vezérlők és maga az oldal is generálhat ún. életciklus-eseményeket: Init, Load, PreRender 30 / 33

Eseménykezelés Eseménykezelők két paraméter: az eseményt generáló objektum (sender), esemény objektum (az eseménnyel kapcsolatos információk e)) oldalhoz kapcsolódó események esetén automatikus esemény-eseménykezelő hozzárendelés (a @ Page direktíva AutoEventWireup attribútuma be kell legyen álĺıtva) névkonvenció alapján: Page esemény vezérlőhöz kapcsolódó eseménykezelő megadása (pl.): <asp:textbox ID="textbox1" Runat="server" eseménykezelő: OnTextChanged="NameChange" /> protected void NameChange(object sender, EventArgs e) { //...kód } 31 / 33

Eseménykezelés Események sorrendje postback-et követően: a Page inicializáló eseményei: Page Init (view state belötlése) Page Load vezérlők által generált események a Page PreRender eseménye a view state mentése kimenet generálása (rendering) Unload bővebben: lásd: PageLifeCycle.png 32 / 33

Belső objektumok Az ASP.NET az alábbi belső objektumokat (intrinsic objects) bocsátja rendelkezésre: Objektum Response Request Context Server Application Session ASP.NET osztály HttpResponse HttpResponse HttpContext HttpServerUtility HttpApplicationState HttpSessionState szessziókövetés pl. SessionHandlingPl.aspx 33 / 33