Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Alkalmazásfejlesztés gyakorlat

Hasonló előadás


Az előadások a következő témára: "Alkalmazásfejlesztés gyakorlat"— Előadás másolata:

1 Alkalmazásfejlesztés gyakorlat
ASP.NET

2 Alapfogalmak Statikus tartalom HTML fájl Dinamikus tartalom
Generált HTML fájl A generálás módjára több megoldás létezik. Java: Servlet, JSP, JSF, Struts, stb.. .NET (C#, VB, …): ASP.NET Hatókörök Request/Response Adott HTTP kérést és választ reprezentáló objektumok Pl.: Adat egy oldal instance változójában, csak a kérés megválaszalásának idejére létezik Application Az alkalmazás teljes futása alatt elérhető scope, hatókör Pl.: Adat egy statikus változóban, tárolás valamilyen alkalmazás szintű objektumban Session Adott user globális objektuma Ahány user annyi session objektum Érvényes: rendszerint timeout feltétel, pl. 10 percig érvényes

3 Statikus ↔ dinamikus tartalom
Statikus tartalom A HTML a szerveren is egy fizikai fájl, egyszerűen visszakapja a kliens Dinamikus tartalom Generált HTML fájl, fizikailag nem létezik Valamilyen szkript motor generálja

4 Session Igény A HTTP állapotmentes
Egy appban szükséges a munkamenet (session) során átmeneti adatok tárolása. A HTTP állapotmentes Minden HTTP request-response külön kérés Közöttük a HTTP nem tart meg adatot Így magával a HTTP-vel nem tudunk átmeneti adatokat tárolni

5 Session Megoldás: Session id küldése többféle lehet
Adatok tárolása szerver oldalon pl. memóriában egy kulccsal, a session id-vel A session id küldözgetése HTTP kérés-válaszok során Session id küldése többféle lehet Cookie URL átírás Rejtett input field Stb…

6 Session / cookie Cookie
HTTP válaszban lehet küldeni rövid szöveges adatokat A böngésző az oldal domain-jéhez eltárolja Minden kérésben küldi az aktuális domain cookie-jait Session id tárolás: Session id-t tartalmazó cookie küldése böngészőnek Böngészőtől érkező, session id-t tartalmazó cookie olvasása web szerverben

7 Session / cookie

8 Session / URL átírás URL átírás
URL: schema:…:schema://part.part…part/dir/dir/file?param=value… Pl.: Pl.: jdbc:sqlite://c:\db\bookshop.db A fontos a ? utáni rész, melynek neve query string Benne paraméterek adhatóak meg, melyet az oldal opcionálisan feldolgoz URL átírás során a session id-t itt tároljuk Pl.: Ezt a web szerver olvassa és kikeresi a user sessionjét.

9 Sessions / ASP.NET ASP.NET Sessions
MSDN: Érdemes átolvasni Általános ismeretek is vannak benne Pl: „SessionID values are sent in clear text, …. A malicious user could get access to the session of another user by obtaining the SessionID value and including it in requests to the server. If you are storing sensitive information ...”

10 Active Server Pages Webböngészőben megjeleníthető lapok .aspx
2 fő rész Design (felület) Codebehind (felület logikája) E két komponens kódjából a keretrendszer összeállítja a böngészők számára értelmezhető HTML kódot

11 Design Felépítése: ASP konténerek, vezérlők
tartalmazhat HTML elemeket, szerveren futó ASP konténereket, vezérlőket, vagy mindkettőt ASP konténerek, vezérlők az asztali alkalmazásban megismert komponensek átiratai

12 Codebehind Programkód (esetünkben Visual C#), mely közvetlenül képes kommunikálni a felület komponenseivel, illetve a középső réteggel Az oldalhoz rendelt osztály található itt, mely a System.Web.UI.Page-ből származik További támogatott nyelvek: Visual Basic Visual J# JScript .NET

13 Eseménykezelés A desktop alkalmazásokban megismert technológia segítségével Fontos különbség: a generált események csak a tartalmazó konténer (form) szerverre történő visszaküldése (postback) esetén futnak le (pl. OK gomb lenyomása). Lehet szabályozni Pl. ComboBox, TextBox esetén AutoPostBack=true Ekkor azonnal végrehajtódik a komponens által generált esemény

14 ASP.NET projekt megnyitása
Visual Studio indítása File -> Open -> Project BookShopWeb.sln-nel egyből indítható Új project: File -> New -> Project A megjelenő ablakban ASP.NET web application-t kell kiválasztani

15 Controller réteg beállítása referenciaként
Visual Studioban Jobb gomb a BookShop solutionre, Add -> Existing Project…; A megjelenő ablakban keressük ki a BookShopCore projektet Jobb gomb a Web projektre -> Add -> Reference…; A megjelenő ablakban a Solution fül alatt válasszuk ki a BookShopCore-t Ezzel a BookShopCore projekt osztályait (mögöttes logika) elérhetővé tettük a webes alkalmazás számára

16 Book Shop Web Könyvesbolt webes alkalmazás
Ügyfelek felvétele, listázása, stb. Könyvek beszerzése, listázása, stb. Könyvek eladása, eladások listázása, stb. Az órai példa az asztali alkalmazás átírása webesre, felhasználva annak control és model rétegét.

17 Projekt felépítése Lapok MasterPage
.aspx kiterjesztésű fájlok (design, markup): ezt fordítja be a keretrendszer a html kódba *.designer.cs: mögöttes kód számára szükséges osztály generálása, ugyanúgy, mint a desktop alkalmazásban .cs: codebehind MasterPage az oldalak sablonja (nem kötelező): közös tulajdonságok definiálását teszi lehetővé (pl. megjelenés, menü)

18 Feladat „Buy Book” menüpont megvalósítása
Ügyfelek felvételéhez analóg módon Következő attribútumokat lehet megadni: Author (TextBox)  szerző Title (TextBox)  könyv címe Year (TextBox)  kiadás éve Category (ComboBox)  műfaj Price (TextBox)  ár Piece (TextBox)  készlet, darabszám Készítsünk ASPX lapot a beszerzéshez (leírás a .doc fájlban)

19 Feladat „List Books” menüpont megvalósítása
Hozzunk létre egy lapot, mely a „Default” leszármazottja, továbbá a MyMasterPage.master szolgáltatja a megjelenítés alapját Design nézetben adjunk hozzá egy GridView vezérlőt Az oldal Page_Load függvényében töltsük fel a GridView-t a ListCustomers.aspx–ben található példa mintájára.

20 Házi feladat Sell Book menüpont kifejlesztése
A Controller réteg már megvalósított funkcióját felhasználva 1-1 ComboBoxban listázzuk ki az adatbázisban lévő könyvek címeit ill. ügyfelek neveit Az ügyfél adatai bal, a kiválasztott könyv adatai jobb oldalt jelenjenek meg nem szerkeszthető módon Alul OK és Cancel gombok + eseménykezelés hozzá Debugoljuk az alkalmazást, figyeljük meg az események bekövetkezési sorrendjét! (Page_Load, BtnOk_Click)

21 Linkek System.Web.UI névtér bemutatása:
Ha elakadunk (rengeteg problémára segítség, példaprogramok):


Letölteni ppt "Alkalmazásfejlesztés gyakorlat"

Hasonló előadás


Google Hirdetések