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

Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés - 119 Intézete1. oldal FM116/01 Internetes alkalmazásfejlesztés Endrődi Tamás.

Hasonló előadás


Az előadások a következő témára: "Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés - 119 Intézete1. oldal FM116/01 Internetes alkalmazásfejlesztés Endrődi Tamás."— Előadás másolata:

1 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete1. oldal FM116/01 Internetes alkalmazásfejlesztés Endrődi Tamás

2 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete2. oldal FM116/01 HTML alapok

3 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete3. oldal FM116/01 Alap HTML tagok (1) •HTML konténer tagok •Karakter formázó HTML tagok •Sorformázó HTML tagok –P –H1, H2, stb. –BR, NOBR –PRE –CENTER

4 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete4. oldal FM116/01 Alap HTML tagok (2) •Kép (IMG) •Hiperhivatkozás (A) –A HREF attribútum megadásának lehetőségei •Listák létrehozása –Rendezetlen lista (UL) –Rendezett, sorszámozott lista (OL) –Lista elemek (LI)

5 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete5. oldal FM116/01 HTML tábla •TABLE elem –Táblasorok (TR) –Táblacellák (TD) •Táblázatok formázásának attribútumai –BORDER –CELLSPACING, CELLPADING –BGCOLOR, BACKGROUND –COLSPAN, ROWSPAN •HTML táblák egymásba ágyazása –Összetett Web lap megjelenítése táblaként

6 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete6. oldal FM116/01 HTML keret (Frame) •Frame és Frameset szerepe •COLS attribútum •In-line keretek alkalmazása (IFRAME) •Frameset-ek egymásba ágyazása •Navigálás a keretek között –TARGET attribútum

7 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete7. oldal FM116/01 További HTML elemek •COMMENT •FIELDSET és LEGEND •MAP •SPAN és DIV •XMP •A karakter egyedek használata

8 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete8. oldal FM116/01 Cascading Style Sheet

9 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete9. oldal FM116/01 A CSS előnyei •A tartalom szétválasztható a formától •Önállóan tervezhető és újrafelhasználható •A régi technikában számos szöveg grafikaként jelent meg, ami lassú •A CSS csak egyszer megy le a kliens gépre, és nem laponként külön-külön •Egységes megjelenés •Külön CSS lehet a képernyőre, és külön a nyomtatóra.

10 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete10. oldal FM116/01 CSS vezérlés •Láthatóság (visibility) •Megjelenítés (Display) –pl. reflow (maradjon-e üres hely, vagy az alatta lévők feljebb kússzanak) •Z-sorrend (Z order) –Az adott elem relatív mélysége •Web Embedding Font Tool (WEFT) –Csak az IE használja

11 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete11. oldal FM116/01 CSS szabályok definiálása •Szintaktika: –szabályhatáskör {attr:érték;attr:érték;…} •Tag példa: –body {font-family:ariel;font-size:10;} •Osztály példa: –.error {font-color:red} •A pont (.) jelenti azt, hogy ez egy osztályszabály

12 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete12. oldal FM116/01 CSS használata •Magába a tagba is rakható stílus információ –Kivételes körülmények között •Stíluslap szintaktikája •Globális stíluslap a /HEAD szekcióban •HTML LINK tag használata –Az elsődlegeshez ezt célszerű használni •Osztályok –Stílus osztályok –Globális osztályok –Pszeudoosztályok

13 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete13. oldal FM116/01

14 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete14. oldal FM116/01 DHTML alapok

15 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete15. oldal FM116/01 A DHTML komponensei (1) •Document Object Model –Objektumok, tulajdonságok, metódusok, események •Dynamic Styles –Dinamikus stílus beállítás lehetősége –A stílus élesen elválik a tartalomtól •Dynamic Positioning –A betöltést követő helyváltoztatás lehetőségét nyújtja. –Animáció készítésének lehetősége.

16 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete16. oldal FM116/01 A DHTML komponensei (2) •Dynamic Contect –A tartalom dinamikus változtathatósága –Elemek beillesztése, illetve törlése –Szöveg és egyéb attribútumok módosítása •Data binding –Adathordozó vezérlőelemek beépíthetősége

17 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete17. oldal FM116/01

18 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete18. oldal FM116/01 Kliensoldali script alkalmazása •HTML komment technikát kell használni – –Ha a böngésző nem ért VB-ül, akkor ignorálja, mert kommentnek tekinti

19 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete19. oldal FM116/01 VBScript szabályok •VBScript-nél csak Variant adattípus van. –A típust a VarType fg-vel lehet lekérdezni. •Nem lehet konstans deklarálni. •Automation objektumok: •Dictionary, Err, FileSystemObject, TextStream •Szerveroldali VBScript-ben tilosak: •InputBox, MsgBox, GetObject függvények

20 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete20. oldal FM116/01 Jscript szabályok •Java-tól függetlenül jött létre •Pontosvessző az utasítások végén – Nem kötelező használni! •Kommentjelek ( //, illetve /*…..*/ ) •Változódeklaráció –var Kakukk •Érzékeny a kisbetű-nagybetű különbségre! •A deklaráció nem kötelező.

21 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete21. oldal FM116/01 Jscript műveletek •Boole algebrai műveletek: •&&AND •| |OR •!NOT •Matematikai műveletek: –A Math objektum metódusai: •x = Math.PI •y = Math.LN10 •z = Math.max(num1, num2) •String változók objektumként működnek

22 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete22. oldal FM116/01 Jscript vezérlőszerkezetek if (feltétel { // igaz ág } else { // hamis ág } For (x=1;x<=10;x++) { // ciklusmag }

23 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete23. oldal FM116/01 Kliensoldali programozás elemei •Az IIS simán leküldi a böngészőnek •Tipikusan UI elemek •ActiveX control és Java applet •ActiveX control –ToolBox-ból kényelmesen felrakható –Bármit megtehet a user gépén •A VBScript és a Jscript nem tudott a file rendszerbe belenyúlni –Certificate és Authenticode mechanizmus •Eldöntheti a user, hogy letölti vagy sem.

24 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete24. oldal FM116/01 ActiveX control •Szintaktika: • ….. •A classid egy Global Unique Identifier (GUID) –az időből (msec), és –az aktuális gép infoból csinál egy hexa számot •A PARAM tagban lehet serverscript is, pl: – ….. •CodeBase tulajdonság adja meg a control URL-jét –Akkor kell, ha le kellene tölteni, mert nincs a user gépén.

25 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete25. oldal FM116/01 Java appletek •Szintaktika: • /APPLET> •Toolbox-ra felrakható, és újrafelhasználható •A class file gépfüggetlen byte kódból áll. –.java file-ból generálja a Java compiler –Egy applet több.class-ból is állhat. •Intranet=ActiveX, Internet=Applet –A legjobb a sima HTML(?!)

26 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete26. oldal FM116/01 window objektum •Metódusok –open, showModelDialog, showModelessDialog, close, navigate •Tulajdonságok –document, event, history, location, navigator •Események –onload, onbeforeunload, onunload, onfocus, onblur •Kollekció –frames

27 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete27. oldal FM116/01 document objektum •Metódusok –open, write, close, createElement, insertAdjacentElement, insertBefore •Tulajdonságok –body, cookie, title •Események –onclick, onpropertychange, onmousexxx, onkeyxxx, ondragxxx •Kollekciók –all, frames, forms 5.4

28 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete28. oldal FM116/01 További DHTML objektumok •navigator objektum –Csak tulajdonságadatai vannak •event objektum –srcElement, type, propertyName, fromElement, toElement, returnValue tulajdonságok –A cancelBubble szerepe •form objektum –A document.forms kollekcióból származtatható

29 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete29. oldal FM116/01 Behavior •Script encapsulation (component) •Szintaktikai alakja: –{behavior:string}, ahol a string lehet: •"url(a1.htc) url(a2.htc)…" •"url(#objID)" •"url(#default# név)" –Dinamikus hozzárendelés is használható: •addBehavior(), removeBehavior() •Elkészítés eszköze: –VBScript, Jscript, Windows Scripting Components (WSC) vagy C++

30 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete30. oldal FM116/01 HTC referencia (1) •ATTACH (eseménykezelő hozzárendelése) • •METHOD (dokumentumból hívható) • •PROPERTY (dokumentumban használható) •

31 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete31. oldal FM116/01 HTC referencia (2) •EVENT (a dokumentumnál lép fel) • •COMPONENT (a legkülső konténer) • …. •element objektum –A komponensen belül az elem elérésére szolgál •createEventObject és fire metódusok

32 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete32. oldal FM116/01 HTC referencia (3) •Speciális behavior események –ondocumentready •Amikor a dokumentum ellenőrzött (parsed) –oncontentready •Az adott elem ellenőrzött (parsed) –ondetach •Amikor az elemről leszedtük a behavior-t (pl. egy removeBehavior metódussal vagy az ablak bezárásával)

33 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete33. oldal FM116/01 HTC referencia (4) •Fontos tulajdonságadatok –style.behavior •Így lehet hozzáférni a behavior-hoz. –behaviorUrns •Az adott elemhez rendelt behavior-ok URN-jeinek kollekciója –document.all.urns("x") •Azokat az elemeket adja vissza, amelyekhez az adott behavior-t rendeltük. –scopeName •A namespace-t adja vissza (XMLNS:név) –tagURN •A namespace helyettesítő értékét adja vissza (XMLNS:név="http:…")

34 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete34. oldal FM116/01 Default Behavior elemek •Multimédia elemek –img, anim, animation, audio, video, media, seq, time, par •clientCaps (információ a böngészőről) •download (egy letöltés végigvitele) –startDownload metódussal •anchor, httpFolder (folder nézet megjelenítése)

35 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete35. oldal FM116/01 Perzisztencia •Előnyei •Keresésnél megmarad a régi keresőkifejezés •A fastruktúra úgy jön be, ahogy hagytuk •Űrlap adatokat nem kell ide-oda cipelni, amíg nincs minden kitöltve •Vásárlókosárnál az eddig bejelöltek megmaradnak. •userData •Jobb, mint a cookie, mivel session-ök közt is működik (64K/lap) •save és load metódus •Tárolás: XML Store •saveFavorite, saveHistory, saveSnapshot

36 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete36. oldal FM116/01 Custom Tag használata •Példa: all {SAJAT\: IGAZIT { text-align:justify; width:500} } … …. ….

37 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete37. oldal FM116/01 Dinamikus tulajdonságok •Sok helyen a scriptek helyett elég egy képlet –Excel-szerű táblázat automatikusan frissülő összesen cellával. –Elem pozíciója az egértől függ. (drag & drop) –Időzített elemmozgatás valósítható meg •Metódusok –object.setExpression(sProperty,sKif,sNyelv) –bSiker=object.removeExpression(sProperty) –document.recalc()implicit függőségeknél –vKif=object.getExpression(sProperty)

38 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete38. oldal FM116/01 Dinamikus tartalom •sajatH1.innerText = "Új szöveg" •sajatH1.innerHTML = "Új szöveg " •sajatH1.outerText = "Valami" •sajatH1.outerHTML=".. " •Ez lecseréli a tagot -re •Figyelem! Csak a window.onload után!

39 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete39. oldal FM116/01 Mouse Capture •Adott objektumhoz rendelhetjük az egéresemények kezelését –object.setCapture •Ha pl. az object egy DIV, akkor a benne lévő összes elemnél a DIV-beli eseménykezelés él. –object.releaseCapture •Megszüntetés (fellép az onlosecapture esemény) •Példa: –Dinamikus pop-up menü készíthető, ami mindig az aktuális objektum tulajdonságadatait mutatja –Kétszintű lebomló menü is előállítható

40 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete40. oldal FM116/01 Adatkezelés a DHTML segítségével

41 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete41. oldal FM116/01 DHTML adatbázis komponensek •Data Source Objects –Az adatot biztosítja a Web lap számára •Data Consumers –Az adat megjelenítéséről gondoskodik •Binding Agent –A szinkronizálásért felelős •Table repetition agent –A szinkronizálásért felelős

42 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete42. oldal FM116/01 DHTML adat architektúra

43 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete43. oldal FM116/01 DSO objektumok •Tabular Data Control (TDC) •Remote Data Services (RDS) –Régebben ADC volt a neve) •JDBC applet •XML adatforrás objektum •MSHTML adatforrás objektum

44 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete44. oldal FM116/01 A DSO feladatai és működése •Feladatok: –Meghatározza hogyan néz ki az adat –Lehozza az adatot a Web lapra –Manipulál az adattal –Visszajuttatja a módosításokat a szerverre. •Aszinkron vagy szinkron transzport. –Az aszinkron a javasolt. •OLE DB API-t kell tudni az adatszolgáltatónak.

45 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete45. oldal FM116/01 Tabular Data Control (TDC) •ActiveX control az IE 4.0-ban •Mezőszeparátorokkal elválasztott mezők és sorszeparátorokkal elválasztott sorok. –A legtöbb adatbázis-kezelő képes ilyet előállítani. •UseHeader=True –Az első sor a mezőinfot tartalmazza

46 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete46. oldal FM116/01 A TDC tulajdonságai és metódusai •Tulajdonságok –DataURL Az adatfile URL címe. –FieldDelim A vessző az alapértelmezés. –RowDelim Az NL az alapértelmezés. –Sort Pontosvesszőkkel elválasztott mezőlista. A mezőnév előtt + vagy - állhat. –Filter Szűrőfeltétel. •Metódusok –Reset Végrehajtja a rendezést és a szűrést.

47 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete47. oldal FM116/01 Remote Data Service (RDS) •Komplexebb és robosztusabb, mint a TDC. •Data-marshalling (Spec. MIME formátum) •Kétirányú kapcsolat az adatbáziskezelőkkel. •Komponensek –RDS.DataControl (kliensoldalon) –RDS.DataFactory (szerveroldalon) •SubmitChanges (RDS.DataControl metódusa) •A módosítások élesítése. •Csak a módosított rekordok mennek át a szerverre.

48 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete48. oldal FM116/01 Remote Data Service (2) •A kliensoldalon a következő szükséges: •Protokollok: •HTTP •HTTPS •DCOM •in-process COM

49 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete49. oldal FM116/01 XML adatforrás objektum •XML = Extensible Markup Language •Az adatformátum leírását tartalmazza. •Bármilyen TAG használható, nemcsak a normál HTML tagok. •XML Parser kell az értelmezéshez. –(XMLDSO.class nevű JAVA)

50 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete50. oldal FM116/01 Data Consumers •Adatfogyasztó elemek •Normál HTML elemek •ActiveX-ek •Java appletek •Attribútumok –DATASRC Az adatelem (pl. TDC) ID-je –DATAFLD Melyik mezőhöz kapcsoljuk az adott HTML elemet. –DATAFORMATAS "text" vagy "html" lehet. –DATAPAGESIZE Hány sor jelenjen meg egyszerre.

51 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete51. oldal FM116/01 Adatfogyasztó HTML elemek

52 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete52. oldal FM116/01 Szinkronizálás •Binding agent –Az MSHTML.DLL-ben van (Ez a HTML Viewer) –Scriptekkel felfogható eseményeket tüzel ki, melyek a DSO és a Consumer közötti szinkront teremtik meg (Notify mechanizmus) •Table repetition agent –Ez biztosítja, hogy HTML TABLE-ként jelenjenek meg a táblázatos adatok.

53 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete53. oldal FM116/01 XML alapok

54 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete54. oldal FM116/01 XML (Extensible Markup Language) •Az SGML (Standard Generalized Markup Language) subset-je •Platform-független adatátadás –Bármilyen dokumentum –Adatrekord –Objektum adatokkal és metódusokkal –Grafikai UI elem –Séma információ –Meta elem (pl. Channel Definition Format)

55 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete55. oldal FM116/01 XML példa Matrix Keanu Reeves Laurence Fishburne Csinibaba Gálvölgyi János Tímár Péter

56 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete56. oldal FM116/01 Az XML előnyei (1) •Keresések értelmesebbek lehetnek: –Könyvkeresésnél pl. ma a "Bill Gates"a róla szóló és az általa írt könyveket is kihozza –Az egymással inkompatibilis adatbázisokban való kombinált keresés megoldható •Az adat a séma révén az értelmezési és validálási infot is hordozza •Egy XML a szervertől függetlenül is kezelhető, sőt módosítható is. •Granuláris update: nem kell az egész lapot letölteni, ha csak egy adatsor változott

57 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete57. oldal FM116/01 XML előnyei (2) •Független a UI-től, ezért a user ízlésének megfelelő prezentációt lehet hozzá csatolni –Hasonló a mail-merge-höz •Jól tömöríthető az adatátadásnál –A tagok szabályos ismétlődő szerkezete jól fekszik a tömörítő eljárásoknak –A HTTP 1.1 szerverek és kliensek már ki is használják ezt.

58 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete58. oldal FM116/01 Namespaces •A különböző XML dokumentumok összekapcsolásakor a tagok megkülönböztetése miatt kell •Példa: • Nagy Pál

59 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete59. oldal FM116/01 Adat és prezentáció szétválasztása •HTML –A Web lap "szöveges", nem változó része •CSS –A HTML rész stílus információi •XML –A Web lap "adat" része. (Minden, ami változhat) •XSL (Extensible StyleSheet Language) –Az "adat" rész stílusinformációi

60 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete60. oldal FM116/01 XML dokumentum szabályok •Kezdő és záró tag mindig kell (well-formed document) •Rövidítés lehetséges, pl.: •Kisbetű/nagybetű különbségre érzékeny! •Az XML dokumentum gyökéreleme egyedi •Unicode-os karakterkészletet használ (1 karakter=16 bit) •Az attribútumok megadásakor idézőjelek használata

61 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete61. oldal FM116/01 XML Data Island •Az adatsziget egy XML a HTML lap belsejében –Inline megadás • Matrix –SRC hivatkozás • –Script tag • … stb.

62 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete62. oldal FM116/01 XML ágak elérése a DOM-ból •Valami.documentElement •A komplett gyökér elemet éri el •Valami.documentElement.childNodes •A gyökér alatti ágak kollekcióját éri el •Valami.documentElement.childNodes.item(0). nodeName •A gyökér alatti első ág nevét adja vissza •nodeName helyett a text a tartalmat adná vissza •nodeName helyett a childNodes.item(0).text eggyel beljebb menne a hierarchiában.

63 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete63. oldal FM116/01 XML attribútumok elérése •Valami.documentElement.childNodes.item(n). attributes.item(z).nodeName •Az első szinten található n-edik ág z-edik attribútumának a neve •Valami.documentElement.childNodes.item(n). getAttribute("nyelv") •Az első szinten található n-edik ág "nyelv" nevű attribútumának az értéke

64 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete64. oldal FM116/01 További elemek az XMLDOM-ban •Data Island elemeinek elérése •Valami.XMLDocument.documentElement.stb. •Namespace elemek elérése –xmlns:partner="//www.et.hu/x" esetén: •nodeName a teljes nevet adja vissza prefix-szel együtt •namespaceURI az URI nevet vagy ""-t ad vissza •prefix a példában "partner" •baseName a prefix nélküli nevet adja vissza •adottTag.xml –A teljes XML string-et adja vissza

65 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete65. oldal FM116/01 XMLDOMDocument •Kétféle interfész létezik: –XMLDOM Interface (COM prog. Interface) –XMLDOM Objects (ActiveX interface) •XMLDOMDocument objektum létrehozása –VBScript •Set xmldok = CreateObject("Microsoft.XMLDOM") –Jscript •Var xmldok = new ActiveXObject("Microsoft.XMLDOM") –Visual Basic •Dim xmldok = New DOMDocument

66 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete66. oldal FM116/01 XML file betöltése •xmldok.load("//et/kakukk.xml") •xmldok.loadXML(" …. ") •Aszinkron (default) és szinkron betöltés •xmldok.async = false (még a load előtt) •xmldok.abort-ra az aszinkron betöltés leállítható •Az értelmezés elhalasztható xmldok.validateOnParse = false (ezt is a load előtt) •Hiba esetén a parseError ad információt •Mentés •xmldok.save(Server.MapPath("Minta.xml"))

67 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete67. oldal FM116/01 Dokumentumágak elérése •Set root = xmldok.documentElement For Each gyerek In root.childNodes MsgBox gyerek.text Next •Set yNode=xmldok.documentElement. nodeFromID("xxxyyzz") •Set yNodeList=xmldok.documentElement. getElementsByTagName("film") vagy Set yNodeList=xmldok.documentElement. selectNodes("film/cím")

68 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete68. oldal FM116/01 Új ágak beépítése •createNode(típus,név,namespaceURI) •Az egyes típusokra külön createTípus metódusok léteznek •createElement példa: •Set ujElem = xmldok.createElement("film") ujElem.setAttribute("nyelv","német") ujElem.text = "akármi" xmldok.documentElement.childNodes.item(3). appendChild ujElem •Egyéb lehetőségek •replaceChild, removeChild, insertBefore

69 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete69. oldal FM116/01 XMLDOMNode (1) •Információ a Node-ról •hasChildNodes() igaz vagy hamis •nodeName prefix:név formában •nodeType és nodeTypeString NODE_ELEMENT1 NODE_ATTRIBUTE2 NODE_TEXT3 NODE_CDATA_SECTION4 stb. •parsedlogikai iagz, ha ellenőrzött •specifiedattribútumoknál, ha van default vagy meg van adva •Xmlaz adott node xml string-ként

70 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete70. oldal FM116/01 XMLDOMNode (2) •Adat olvasása és írása •nodeValue •nodeTypedValue •Text •Navigálás az adott Node-ból •parentNode, firstChild, lastChild, previousSibling, nextSibling, ownerDocument tulajdonságok •childNodes kollekció •attributes kollekció révén jutunk el az attribútumokhoz •definition visz el a sémához

71 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete71. oldal FM116/01 XSL •Extensible Stylesheet Language –Olyan, mint a mail-merge, ahol az XSL a template, és az XML az adat –Hasonlít az ASP ciklushoz és a Tabular Data Control-hoz –Kétféle modell ötvözhető •Template-driven model •Data-driven model

72 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete72. oldal FM116/01 Egyszerű XML-XSL-HTML példa OTP Bank Rt. OTP … …

73 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete73. oldal FM116/01 HTML template Jel Név Árfolyam …

74 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete74. oldal FM116/01 A template "feltöltése" (1) Jel Név Árfolyam

75 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete75. oldal FM116/01 A template "feltöltése" (2)

76 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete76. oldal FM116/01 XSL alapszabályok • tag adja meg az elemhalmazt • –Az elemhalmazon belül egy gyereket azonosít –A select adja meg az XSL pattern-t •A file-könyvtár struktúrához hasonlít, de sima perjellel •Az elért adat (attribútum, érték) kerül a hívás helyére •A navigáció az aktuális node-nál indul

77 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete77. oldal FM116/01 HTML template szabályok •Well-formed HTML (nyitó és záró tagok) •Kisbetű/nagybetű a tagokban fontos –Legyenek nagybetűsek! •Minden attribútum idézőjelek vagy aposztrófok között legyen •HTML és HEAD tag sem maradhat ki •Csak a következő karakter egyedek vannak –< > & " ' •A scriptek belsejében sem lehetnek más jelek –

78 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete78. oldal FM116/01 HTML tag új attribútuma adatai a -ról származnak … Csak akkor lehet "TITLE"-t adni, ha még nincs neki. A tag előtt kell lennie, hogy a -re vonatkozzon

79 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete79. oldal FM116/01 Feltételes template-ek • * • color: red green

80 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete80. oldal FM116/01 "for-each" rendezése • •Lehet csökkenő is •order-by = "-árf" •Több szempont is megadható •order-by = "mező1; -mező2" •order-by = "date(mező1);-number(mező2)" •Ha a select-beli adatra akarunk rendezni: •

81 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete81. oldal FM116/01 XSL pattern •Egy egyszerű query nyelvhez hasonlít •portfolio/részvényaz összes ilyen node •portfolio/*/névpélda a joker használatára •portfolio/részvény/*3 részvény esetén 9 elemet ad •portfolio/részvény[jel]/névcsak azok, amelyeknek van "jel" node-juk •portfolio/részvény[jel='OTP']/árfcsak az 'OTP' jelű részvények árfolyama jön le a BSE-n lévő részvények jönnek le csak az attribútum értékpár jön vissza

82 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete82. oldal FM116/01 Internetes alkalmazás rétegei

83 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete83. oldal FM116/01 Háromrétegű Web architektúra

84 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete84. oldal FM116/01 Többrétegű architektúra példa

85 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete85. oldal FM116/01 Thin/Thick-client •Vékony kliens (Thin-client) –Böngésző-független –Sok forduló a Web szerver és a kliens gép között •Vastag kliens (Thick-client) –Böngésző-függő –Látványos Web-lapok –Gyors interaktív funkciók

86 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete86. oldal FM116/01 Alkalmazásfejlesztési csapat tagjai •Web fejlesztő •Programozó •HTML szerző •Grafikus •Web adminisztrátor •Adatbázis adminisztrátor

87 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete87. oldal FM116/01 Active Server Pages alapfogalmak

88 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete88. oldal FM116/01 ASP környezet •IIS 3.0-tól felfele létezik az ASP. •Állapotkezelés –A stateless HTTP-vel szemben biztosítja a userenkénti, alkalmazásonkénti, illetve szerverenkénti állapotkezelést. •MS ActiveX Data Objects (ADO) –Adatbáziskezelés megvalósítása •ASP komponensek is használhatók •Nyelvek: VBScript, JScript, Perl

89 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete89. oldal FM116/01 ASP file tartalma és nyelve •Az ASP file tartalma: –Sima szöveg –HTML –Script •Kliens oldali •Szerver oldali ( ) •Script nyelvek –VBScript –Jscript –Perl

90 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete90. oldal FM116/01 ASP szintaktikai elemek •Határolójelek – a HTML határolójelei – az ASP Script határolójelei –Response.Write helyett sima egyenlőségjel •Példa: Ez a lap -kor lett frissítve. –Script példa: • …… itt van maga a script

91 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete91. oldal FM116/01 Scriptek és HTML vegyítése •Példa: Good Morning Good Afternoon

92 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete92. oldal FM116/01 Beépített (built-in) objektumok •Request •Response •Application •Session •Server

93 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete93. oldal FM116/01 Request objektum •A böngésző által küldött információ visszanyerésére szolgál. •Gyűjtemények –QueryStringA kérdőjel utáni paraméterek –FormA kérdőjel utáni paraméterek –CookiesAdott változó tartalma •Példa: Request.Cookies("Dolgozo")("Nev") –ClientCertificate (Kulcs[almező]) •Secure Sockets Layer (SSL) használatakor https lesz a sima http helyett

94 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete94. oldal FM116/01 HTML Form készítése •3 lehetőség van –Statikus.HTM egy formCX-szel adatot ad át egy.ASP-nek –.ASP küld adatot egy másik.ASP-nek –.ASP küld adatot önmagának (self-posting) •Megvalósítás: – •Begyűjti az adatokat és a SUBMIT gombra elküldi a kakukk.asp-nek.

95 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete95. oldal FM116/01 Az átküldött adatok elérése •Példák –X = Request.Form("mezőnév") –X = Request.Form("mezőnév")(n) •Ha ugyanazzal a mezőnévvel több textbox is van •Az index nélkül vesszőkkel elválasztott string jön –Request.Form("mezőnév").Count •Ezzel lehet megtudni, hogy hány azonos nevű van –IsEmpty(Request("mezőnév") •Ez dönti el, hogy van-e adat a mezőben. •Self-posting-nál így dönthető el, hogy első hívás vagy önhívás történt-e

96 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete96. oldal FM116/01 QueryString gyűjtemény •QUERY_STRING szerver változóba kerül a kérdőjelet követő rész –Request.QueryString("mezőnév") •A sima Request helyett akkor kell, ha nem form-ból jött ide a felhasználó –pl. •REQUEST_METHOD nevű szerver változó –X=Request.ServerVariables ("REQUEST_METHOD") •"POST" vagy "GET" lesz az X értéke

97 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete97. oldal FM116/01 Response objektum (1) •Információ küldése a böngészőnek •Tulajdonságadatok –Buffer •True esetén visszatartja a küldést, amíg az ASP le nem fut. –Expires •Meddig érvényes a lap a Cache-ben percekben. –ExpiresAbsolute •Meddig érvényes a lap abszolút időben mérve.

98 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete98. oldal FM116/01 Response objektum (2) •Metódusok –Write •Sima egyenlőségjellel helyettesíthető –Redirect •Buffer=True esetén átszállhatunk egy másik ASP-re •Response.Redirect "http://www.x.y/h.asp" –End •Pufferezett esetben ekkor küldi el a böngészőnek –Clear •Ha mégse küldjük el, akkor az End helyett ez jön.

99 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete99. oldal FM116/01 Response objektum (3) •Cookies gyűjtemény –Cookie: a felhasználó gépén tárolt adat. –A böngészőben értesítés kérhető, sőt le is tiltható a használata. –Példa: •Response.Cookies("Kakukk") = "Valami" Response.Cookies("Dolgozo")("Nev") = "Kovács" –Tulajdonságok •Secure •Haskeys (True vagy False)

100 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete100. oldal FM116/01 Application objektum •Metódusok •Lock és Unlock az objektum zárolására •Események •Application_OnStart és Application_OnEnd •A Global.Asa-ban kell ezeket deklarálni •Változók •Application("Macska") = "Nokedli" X = Application("Macska") •Gyűjtemények •ContentsAz összes változó •StaticObjects -en belüli obj-ok

101 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete101. oldal FM116/01 Session objektum •Az állapot nélküli HTTP feloldására •"Vásárlókosár" jellegű alkalmazás készíthető •A Global.Asa kezeli •Példa: •Session("KakukkValt") = érték X = Session("KakukkValt") •Tulajdonságok •SessionID (long) és TimeOut (percek) •Metódus •AbandonKierőszakolja a Session végét.

102 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete102. oldal FM116/01 Események •Application_OnStart •Akkor, amikor az első user az első session-t nyitja. •Application_OnEnd •Akkor, amikor leállítják a Web szervert. •Session_OnStart •Minden usernél egyszer az elején fellép (Form_Load szerű). Itt lehet számolni a látogatókat. •Session_OnEnd •Amikor egy adott user elmegy.

103 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete103. oldal FM116/01 Változók hatáskörei •Dim Kakukk –Az adat elvész, amikor a user lemegy a lapról. •Session("Kakukk") –Annyi példány lesz, ahány user éppen benn van •Application("Kakukk") –Egy közös példány lesz. (Variant) –Ha többen akarják egyszerre módosítani: •Application.Lock Application("Adat") = Application("Adat") + 1 Application.Unlock

104 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete104. oldal FM116/01 Server objektum •A Web szerverrel való kapcsolattartásra •Tulajdonság –ScriptTimeout •Metódusok –CreateObject •Ezzel lehet az ActiveX komponenseket a szerveroldalon felhasználni. (ProgID-t kell átadni.) –HTMLEncode –MapPath –URLEncode

105 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete105. oldal FM116/01 Request.ServerVariables •A szerverről, illetve a böngészőről ad infot. –QUERY_STRING –REMOTE_ADDR •A request-et kiadó host gép IP-címe. –SERVER_PORT •Az a port szám, ahova a request-et küldtük. –SERVER_SOFTWARE •Név és verzió –URL •Az URL cím alaprésze

106 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete106. oldal FM116/01 ActiveX szerver komponensek •COM-ot tudó OLE Automation szerverek •Elérik a file rendszert és a szerver hálózatot is (A VBScript és a Jscript nem éri el!) •DLL-ként vagy EXE-ként működnek •VB, C, C++, Cobol, Pascal, Java, stb. •Jobb, mint a CGI –Egy példány szolgálhatja ki az összes felhasználót

107 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete107. oldal FM116/01 Szerveroldali komponensek •ADO Command, Connection, Recordset •Ad Rotator •Browser Capabilities •Content Linking •Index Server •Dictionary •Filesystem Object

108 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete108. oldal FM116/01 Web alkalmazás •Az adott Web site-on található.asp,.htm és egyéb file-ok összessége. •A virtuális gyökérben kell egy Global.Asa •Analógia: –.EXE===>.ASA.DLL===>.ASP és.HTM –.ASP és.HTM több alkalmazás része is lehet •Application objektum =globális tárolóhely –Alkalmazások közötti adatcserére nem jó.

109 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete109. oldal FM116/01 Az ASP.NET alapjai

110 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete110. oldal FM116/01 A.NET keretrendszer •Nyelvfüggetlen futtatórendszer (Common Language Runtime – CLR) •Alaposztályok és könyvtárak •Adatkezelés (ADO.NET) •Felhasználói interfész –Web Forms –Windows Forms •Web szolgáltatások

111 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete111. oldal FM116/01 Az ASP.NET újításai (1) •Sokféle nyelvet támogat, nemcsak script nyelveket •Lefordított kódot használ •A teljes keretrendszer elérhető •Intelligens szerver vezérlőelemeket tartalmaz •Web szolgáltatások építhetők •Kibővített engedélyezési rendszer működik benne

112 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete112. oldal FM116/01 Az ASP.NET újításai (2) •Többrétegű skálázhatóság •Munkamenet (session) kezelés sütik (cookies) nélküli böngészőknél •Sokféle konfigurálási lehetőség •Egyszerű telepítés

113 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete113. oldal FM116/01 Web űrlap (Web Form) •.ASPX kiterjesztésű file direktívát tartalmaz: • •Szerveroldali űrlappal rendelkezik: • •Egy ASPX lap a System.Web.UI.Page osztályból öröklődő dinamikus osztály •Az ASPX lapon lévő vezérlőelemek objektumok

114 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete114. oldal FM116/01 Szerver vezérlőelemek •A szerver oldalon programozható objektumok •Tulajdonságok, metódusok, események •Az események a kliensen következnek be, de a szerveren fut le az eseményvezérlő metódus •Runat=„server” attribútummal rendelkeznek •Böngészőfüggő HTML-t küldenek •Típusai: –Szerveroldali HTML vezérlőelemek –Web vezérlőelemek

115 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete115. oldal FM116/01 Szerveroldali HTML vezérlőelem •Megegyezik a megfelelő HTML elemmel •Runat=„server” attribútumot tartalmaz •Egyedi „ID” tag van benne •A System.Web.UI.HtmlControls névteret használja •Well-formed XML szintaktikát kell használni • …. vagy •

116 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete116. oldal FM116/01 Web vezérlőelem •Intelligens komponensként funkcionálnak •Az „asp” névtérben működő tagok • •A System.Web.UI.Webcontrols névteret használja •Ez van leképezve az „asp:” tagprefixre •Négyféle típusba sorolható: •Belső (beépített, intrinsic) •Gazdag (rich) •Ellenőrzés (validation) •Lista

117 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete117. oldal FM116/01 Hogyan működik egy Web űrlap? •Method=„post” Action=„ugyanez a lap” •Az űrlap egyedi „id” és „name” attribútumot kap •Mindegyik vezérlőelemhez hozzárendelődik egy „value” tag •Rejtett vezérlőelem gondoskodik az állapot megőrzéséről (_VIEWSTATE néven) •Kikapcsolható az enableviewstate=„false” megadásával bármelyik vezérlőelemnél

118 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete118. oldal FM116/01 Eseményvezérlő eljárás írása •Kód deklarációs blokk vagy mögöttes kód • Sub Valami(s As Object, e As EventArgs) …. End Sub •Code-behind class file •Összekapcsolás a szerver vezérlőelemnél: • •A metódus nevét kell leírni, és nem egy függvényhívást, mint az ASP-nél.

119 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete119. oldal FM116/01 Page események sorrendje •Page_Init •Page_Load •Ahányszor csak meghívják az ASPX lapot •Change típusú események •AutoPostBack nélkül •Click esemény és az AutoPostback-es Change események •Vagyis az az esemény, amitől az űrlap elindult •Page_Unload

120 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete120. oldal FM116/01 Page.IsPostback •Ezzel tesztelhető, hogy első meghívás vagy újrahívás történt: •If Not Page.IsPostBack Then ‘ Első meghívás Else ‘ Újrahívás End If

121 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete121. oldal FM116/01 Belső (instrinsic) Web vezérlőelem •Az eredeti HTML vezérlőelemek helyett •Standard névkonvenciót használnak • helyett •Közös tulajdonsághalmaz •Pl. Text, BackColor, ForeColor mindegyiknél •A Windows-nál megszokott specifikus nevek •Pl. Checked az asp:Checkbox-nál •SelectedItem az asp:ListBox-nál •Böngészőfüggő kódot generál

122 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete122. oldal FM116/01 A Web vezérlőelemek típusai … … …

123 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete123. oldal FM116/01 Web vezérlőelemek eseménykezelése •Csak szerveroldali eseményekre reagál •Click-típusú események •Listadobozoknál Change-típusúak (pl. SelectionChanged) •esemény=„metódusnév” •Pl. onclick=„valami” •Itt az onclick jelenti azt, amit a HTML vezérlőelemnél az onserverclick jelentett •autoPostBack tulajdonság •Ha true, akkor egy change típusú esemény is azonnal a szerverhez fordul

124 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete124. oldal FM116/01 Adatellenőrző vezérlőelemek •Típusok: –RequiredFieldValidator –CompareValidator –RangeValidator –RegularExpressionValidator –CustomValidator •Ellenőrzés helye –Kliens (Javascript kezelő böngészőknél) –Szerver (a többi böngészőnél)

125 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete125. oldal FM116/01 Közös tulajdonságok •controlToValidate="Ellenőrzendő control ID-je" •errormessage="Hibaüzenet szövege" •display="dynamic" vagy "static" vagy "none" –static=fix helyet foglal el a képernyőn –dynamic=ha nincs hiba, akkor nem foglal el helyet •enableClientScript="true" vagy "false"

126 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete126. oldal FM116/01 CompareValidator •Összehasonlítás egy konstanssal vagy egy másik vezérlőelem értékével –ValueToCompare="konstans" vagy ControlToCompare="másik vezérlőelem ID-je" –Type="String" | "Integer" | "Date" | "Double" | "Currency" –Operator="Equal" | "NotEqual" | "GreaterThan" | "GreaterThanEqual" |LessThan" | "LessThanEqual" | "DataTypeCheck"

127 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete127. oldal FM116/01 RangeValidator •Értéktartomány ellenőrzés –MinimumValue="konstans" –MaximumValue="konstans" –Type="String" | "Integer" | "Date" | "Double" | "Currency"

128 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete128. oldal FM116/01 ValidationSummary •Page.isValid="true" esetén jelenik meg •Az adott lap összes hibáját kiírja •Az eredeti ellenőrző vezérlőelemek helyén ilyenkor "*" jel íratható ki – *

129 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete129. oldal FM116/01 RegularExpressionValidator •Minta alapján történő ellenőrzés –ValidationExpression="formátum" –Példa adószámra: •ValidationExpression="[0-9]{8}-[0-9]-[0-9]{2}"

130 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete130. oldal FM116/01 Az ADO.NET alapjai

131 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete131. oldal FM116/01 ADO.NET

132 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete132. oldal FM116/01 Connection objektum •Kétféle típusa van: •SQLConnection (SQLServer 7.0, 2000) •OLEDBConnection (a többi esetén) •ConnectionString (SQLConnectionnél) •Data Source=.. vagy Server=.. ; Initial Catalog=.. vagy Database=.. ; Integrated Security= vagy Trusted_Connection=sspi; vagy User ID=.. Pwd=.. •Connection String (OLEDBConnectionnél) •Provider=..; a többi ugyanaz •ODBC-t nem támogat (külön ODBC.NET provider kell)

133 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete133. oldal FM116/01 Connection példa Dim conDB = new SQLConnection() conDB.ConnectionString="Integrated Security=SSPI;Initial Catalog=northwind" conDB.open() •Az open nem kötelező Dataset esetén

134 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete134. oldal FM116/01 Command objektum •Kétféle típusa van: •SQLCommand (SQLConnection-nél) •OLEDBCommand (OLEDBConnection-nél) •Konstruktor paraméterek •CommandText (Maga az SQL mondat) •Connection (Az xxxConnection objektum) •Transaction (A Transaction objektum) •Egyéb tulajdonság •CommandType=CommandType.StoredProcedure |.TableDirect |.Text (default) •Parameters

135 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete135. oldal FM116/01 Command objektum metódusai •ExecuteScalar •Az eredményhalmaz első sorának első oszlopát adja •ExecuteReader •DataReader (Sql vagy OleDb) objektumot szolgáltat •ExecuteXmlReader •XmlReader objektumot szolgáltat •ExecuteNonQuery •Végrehajtja a megadott DDL vagy DML utasítást •Visszaadja az érintett sorok számát •Output paraméterek feltöltődnek

136 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete136. oldal FM116/01 SqlParameter objektum •Konstruktor paraméterek: •ParameterName (pl. •SqlDbType (pl. SqlDbType.Int) •Size (a méret byte-ban, pl. 4) •Egyéb tulajdonságok •Direction = ParameterDirection.Input | Output | InputOutput | ReturnValue •Value (A paraméter értéke írható és olvasható) •SourceColumn (Dataset-nél az eredeti oszlop neve)

137 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete137. oldal FM116/01 SqlCommand paraméterei •Paraméter hozzáadása SQLCommand-hoz –cmdSqlCom.Parameters.Add(Para1) •ahol Para1 egy SqlParameter objektum •Paraméterérték írása, olvasása: –Az Executexxx után output paraméterre is •A visszaadott érték átvétele Value

138 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete138. oldal FM116/01 DataReader objektum •Két típusa van: •SqlDataReader •OleDbDataReader •Az xxCommand.ExecuteReader hozza létre •Saját konstruktorral nem lehet létrehozni! •Csak előrefele olvasható adathalmaz •Nyitott xxConnection kell hozzá •A végén le kell zárni a Readert és a Connection-t •Memóriakímélő

139 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete139. oldal FM116/01 DataReader tulajdonságok és metódusok •Read metódus •A következő sor beolvasása •"False"-t ad vissza, ha nincs több rekord (EOF) •Item (default property) •dr.Item("SzlaSzam").Value vagy dr(1).Value •Object-et ad vissza, ezért gyakran CType kell •GetValues (tömböt vár és tölt fel) •GetOrdinal("SzlaSzam") •IsDbNull(i) •"true", ha az oszlop DbNull

140 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete140. oldal FM116/01 DataReader példa Dim cmdPartner As SqlCommand=new SqlCommand( "SELECT PartAzon,PartNev FROM Partner",conDB) conDB.open() Dim rdrPartner As SqlDataReader rdrPartner=cmdPartner.ExecuteReader() Do While rdrPartner.Read() ListBox1.Items.Add(rdrPartner.GetInt16(0) & vbTab & _ rdrPartner.getString(1)) Loop rdrPartner.Close() I = rdrPartner.RecordsAffected ' -1-et ad, mert SELECT conDb.Close()

141 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete141. oldal FM116/01 Több Recordset kezelése •Tárolt eljárás több eredményhalmazt is adhat vissza, ha több SELECT van benne •rdrPartner.NextResult() megy rá a következő rekordhalmazra •A RecordsAffected összeadja az INSERT, UPDATE, DELETE által érintett rekordokat

142 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete142. oldal FM116/01 Tranzakciókezelés ADO.NET-ben •SqlConnection.BeginTransaction adja vissza az SqlTransaction objektumot. •A tranzakció hatálya alá tartozó Command objektumoknál •cmdPartner.TransAction = tranObj •tranObj.IsolationLevel = IsolationLevel.Serializable •Tranzakció metódusai •tranObj.Commit() •tranObj.Save() •tranObj.Rollback()

143 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete143. oldal FM116/01 Dataset •Memóriában tárolt relációs adathalmaz •Adatbázis kapcsolat nélkül működik •Alaposztályok –System.Data.DataSet –System.Data.DataTable –System.Data.DataColumn –System.Data.Constraint –System.Data.DatRelation –System.Data.DataRow –System.Data.DataView

144 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete144. oldal FM116/01 A DataSet osztály objektummodellje

145 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete145. oldal FM116/01 DataSet létrehozása és feltöltése 1.Programozott módon 2.A Visual Studio.NET grafikus eszközeivel 3.XML segítségével 4.DataAdapter használatával

146 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete146. oldal FM116/01 DataSet programozott létrehozása •Új DataSet objektum létrehozása –Dim dsSzamla As New DataSet("Szla") •Új DataTable objektum létrehozása és hozzákapcsolása a DataSet objektumhoz –Dim dtPartner As New DataTable = dsSzamla.Tables.Add("Partner") •Ha nem adunk meg táblanevet, akkor "Table0,1,2" nevet ad •Új DataColumn objektum hozzáadása a táblához –Dim colPartAzon As New DataColumn = dtPartner.Columns.Add("PartAzon", GetType(System.Int32))

147 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete147. oldal FM116/01 DataTable tulajdonságok •Columns •A tábla oszlopainak kollekciója (DataColumnCollection) •Constraints •A tábla Constrainst kollekciója (ConstraintCollection) •ForeignKeyConstraint vagy UniqueKeyConstraint osztály •PrimaryKey •DataColumn() tömbként kell megadni •dtPartner.PrimaryKey=New DataColumn() _ {dtPartner.Column("PartAzon")} •Rows •Az adatsorok kollekciója

148 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete148. oldal FM116/01 DataColumn tulajdonságok •AllowDbNull •NULL constraints alkalmazása •Unique •UNIQUE constraints alkalmazása •AutoIncrement •colPartAzon.AutoIncrement = True colPartAzon.AutoIncrementSeed = 1000 'Innen indul colPartAzon.AutoIncrementStep = 1' Egyesével megy •SqlTypes.SqlGuid alkalmazása biztonságosabb, ha adatbázishoz nem kapcsolt környezetet használunk •Expression •Számított kifejezés használata

149 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete149. oldal FM116/01 DataRelation objektum •Két DataTable összekapcsolása DataColumn objektumok mentén •Rel1 = dsSzamla.Relations.Add("FK_Szamla_Partner", _dtPartner.Columns("PartAzon"), _dtSzamla.Columns("PartAzon"),True) •"True" jelentése: constraint-ek felépítését kérjük •A kapcsolt táblák elősegítik a navigálást •DataRow.GetChildRows metódus pl. az adott partnerhez tartozó számlasorokat adja vissza DataRow() tömbként •Törlési szabály beállítása •Rel1.DeleteRule = Rule.Cascade | Rule.SetNull | Rule.SetDefault | Rule.None

150 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete150. oldal FM116/01 DataException események •ConstraintException •Kísérlet egy éles constraint megsértésére •DuplicateNameException •Valamelyik Add metódus duplikált elemet hozna létre •InvalidConstraintException •Rossz reláció létrehozása vagy elérése •NoNullAllowedException •Egy AllowDbNull=False mezőben NULL-t akarunk írni

151 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete151. oldal FM116/01 Új sorok beillesztése a táblába •DataRow objektum létrehozása •drPartner = dtPartner.NewRow() •DataRow objektum feltöltése adatokkal •drPartner("PartNev") = "Kakukk Kft." drPartner("PartVaros") = "Budapest" …. vagy •drPartner.ItemArray = new Object() {"Kakukk Kft.","Bp"…} •DataRow hozzáadása a DataTable objektumhoz •dtPartner.Rows.Add(drPartner)

152 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete152. oldal FM116/01 Adott sor megkeresése a táblában •A DataTable.Rows kollekció segítségével •DataRowCollection típusú objektumot ad vissza •Item tulajdonság •dtPartner.Rows(3) a negyedik sort adja vissza •Count tulajdonság a sorok számát adja •A Find metódus az elsődleges kulcs alapján keres •Dim Kulcs As Object Dim Sor As DataRow Kulcs = 214 Sor = dtPartner.Find(Kulcs) If Sor Is Nothing Then ' Nincs meg a keresett rekord

153 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete153. oldal FM116/01 Meglévő sorok módosítása a táblában •DataRow.BeginEdit metódussal kezdődik •Kikapcsolja a constraint események kezelését •DataRow.EndEdit vagy.CancelEdit metódussal zárjuk le a módosítást •Visszakapcsolja az eseménykezelést •Mintapélda: •' Behozzuk a keresett sort, például: drPartner = dtPartner.Rows(7) drPartner.BeginEdit() drPartner("PartNev") = "Teszt Kft." drPartner.EndEdit()

154 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete154. oldal FM116/01 Sorok törlése a táblából •Fizikai törlés •dtPartner.Rows.RemoveAt(5) 'Törli a 6. sort •drPartner = dtPartner.Rows(5) dtPartner.Rows.Remove(drPartner) ' Ez is törli a 6. sort •Logikai törlés •drPartner.Delete •A drPartner.RowState értékét RowState.Deleted-re állítja

155 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete155. oldal FM116/01 Adatellenőrzés menete •DataTable események •ColumnChanging (oszlop módosítása előtt) •ColumnChanged (oszlop módosítását követően) •RowChanging (minden oszlop módosítását követően) •RowChanged (minden RowChanging után) •RowDeleting (akkor, amikor törlésre jelölünk egy sort) •RowDeleted (a sor törlését követően ) •BeginEdit, EndEdit esetén •Csak egyszer lép fel a RowChanging és a RowChanged •Az események kezeléséhez •WithEvents opcióval kell deklarálni a DataTable-t •Throw-val lehet megakadályozni a módosítást

156 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete156. oldal FM116/01 RowState és RowVersion •DataRow.RowState lehetséges értékei: •Deleted = a sort törölték DataRow.Delete-tel •Modified = módosították, de AcceptChanges még nem volt •Added = új sort vettek fel, de AcceptChanges még nem volt •Unchanged = a legutolsó AcceptChanges óta nem módosult •Detached = a DataRow nincs DataTable-hez kapcsolva •DataRow.RowVersion lehetséges értékei: •Current = az éppen aktuális értékek •Default = az alapértelmezett értékek •Original = az eredeti (módosítás előtti) értékek •Proposed = módosítás közbeni (még nem elfogadott) értékek •DataRow("PartAzon",DataRowVersion.Original) •DataRow.HasVersion-nel lekérdezhető, hogy van-e olyan verzió

157 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete157. oldal FM116/01 A módosítások véglegesítése •AcceptChanges metódus •DataRow, DataTable vagy DataSet szinten is kiadható •Az "Original" értékek felveszik a "Current" értékeket •A RowState értéke Unchanged lesz •A RowError információk törlődnek •A DataTable.HasErrors értéke false lesz •RejectChanges metódus

158 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete158. oldal FM116/01 DataView objektum •Az SQL View szerepét tölti be DataSet-nél, DE!: •A DataView nem tekinthető DataTable-nek •Csak egy DataTable-re alapulhat (join-ok nem lehetnek) •Nem hagyhatók ki oszlopok az eredményből •Tipikusan rendezésre és szűrésre alkalmas •Dim dv As New DataView(dsSzamla.Tables("Partner")) dv.Sort = "PartNev" dv.Filter = "Irszam = '5600'" •A felhasználói interfészen használjuk •Így pl. több vezérlőelemet is hozzákapcsolhatunk ugyanahhoz a DataTable objektumhoz. •DataTable.DefaultView használata

159 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete159. oldal FM116/01 DataAdapter objektum •Kétféle formája van: –SqlDataAdapter –OleDbDataAdapter •Hídnak tekinthető az adatbázis és a DataSet egy adott DataTable objektuma között –Fill metódus tölti fel a DataTable-t az adatbázisból –Update metódus viszi vissza a módosításokat a DataTable-ből az adatbázisba •Mire alkalmas, és mire nem –Jó: Tábla másolata egy közbenső rétegben –Rossz: Kereső funkció eredménye egy Web site-on

160 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete160. oldal FM116/01 DataAdapter létrehozása •Két módszer kínálkozik •Data Adapter Configuration Wizard használata •Saját kód készítése •DataAdapter felépítése – egyelőre csak olvasásra •Dim daPartner As SqlDataAdapter Dim cnSzamla As SqlConnection("connection string adatok") Dim cmdPartner As New SqlCommand( _ "SELECT * FROM Partner",cnSzamla) daPartner.SelectCommand = cmdPartner •DataSet feltöltése DataAdapter-rel •intSorok = daPartner.Fill(dsSzamla | dtPartner | dsSzamla, "Partner")

161 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete161. oldal FM116/01 Módosítások visszaírása az adatbázisba •DataAdapter.Update(Para1) metódus meghívása •A Para1 lehet DataSet, DataTable vagy DataRow() tömb •A megfelelő SQL parancsok végrehajtása –InsertCommand –UpdateCommand –DeleteCommand •A kapcsolatot a DataTable-vel a megfelelő SQLParameter objektumok hozzák létre

162 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete162. oldal FM116/01 Mintapélda módosításra Dim cmdModos As New SqlCommand("UPDATE Partner SET" & _ WHERE _ cnSzamla) cmdModos.Parameters.Add(New _ SqlDbType.Int32, 4, ParameterDirection.Input, False, _ 0, 0, "PartAzon", DataRowVersion.Current, Nothing)) cmdModos.Parameters.Add(New _ SqlDbType.Char, 30, ParameterDirection.Input, False, _ 0, 0, "PartNev", DataRowVersion.Current, Nothing)) cmdModos.Parameters.Add(New _ SqlDbType.Int32, 4, ParameterDirection.Input, False, _ 0, 0, "PartAzon", DataRowVersion.Original, Nothing))

163 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete163. oldal FM116/01 DataSet módosítások kezelése •DataTable.GetChanges metódus •Előállít egy újabb DataTable-t, amibe csak az adott módosítások (pl. csak a törlések) kerülnek •DataSet.GetChanges is hasonlóan működik •DataTable.Select metódus •Szűrő, rendezés és RowState alapján kijelölt sorokat egy DataRow() tömbbe rakja •Nem másolás(!), hanem pointerek kialakítása •DataSet.Merge metódus •Az adott DataSet-hez hozzárakja egy másik DataSet vagy DataTable tartalmát

164 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete164. oldal FM116/01 Konfliktusok kezelése •Az optimista zárolás miatt konfliktusok keletkezhetnek •Konfliktusok detektálása •Konfliktusok feloldása 1."Az utolsó győz" elv alapján 2.A konfliktust okozó adatok a DataSet-ben maradnak 3.A helyi DataSet-ben visszaállunk az eredeti adatra 4.A helyi DataSet-be betöltjük a legutolsó adatokat

165 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete165. oldal FM116/01 DataSet és az XML •XSD Schema –Az XML dokumentum struktúráját írja le –Az adatbázis szerkezeti leírásához hasonló •Adattáblák és a táblák közötti kapcsolatok •Adatmezők neve és adattípusa •Kényszerek (pl. elsődleges kulcs, egyedi kulcs, stb.) •Erős típusú DataSet –Sémainformációval rendelkező DataSet –A séma segíti az adatellenőrzést –Hatékonyabb az adatimport és az adatexport

166 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete166. oldal FM116/01 XSD séma alapelemei: element • –Egyszerű vagy komplex adat leírására –Kisbetű-nagybetű megadására érzékeny –Primitív XML adattípusok •string, Boolean, float, double, decimal, dateTime, time, date, anyURI –Származtatott XML adattípusok •integer, long, short, int, byte, positiveInteger, unsignedLong –Példa adatfeltöltésre • 2547 ' Jó példa • XC35 ' Rossz példa

167 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete167. oldal FM116/01 XSD séma alapelemei: attribute • –Csak egyszerű adat leírására jó –Alapértelmezésbeli érték megadható –Az attribútumok sorrendje tetszőleges, míg az elemek sorrendje a séma szerinti kell hogy legyen

168 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete168. oldal FM116/01 XSD séma alapelemei: simpleType •Létrehozás: – •Felhasználás: – •Tipikus facet elemek: –length, maxLength, minLength, maxExclusive, pattern

169 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete169. oldal FM116/01 XSD séma alapelemei: complexType •Létrehozás: – •Felhasználás: – •A komplex típusok egymásba ágyazhatók

170 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete170. oldal FM116/01 XSD séma alapelemei: group •Példa: • •Csoportok típusai: •sequencekötött sorrendben minden elem kötelező •choicea felsoroltak közül csak az egyik kell •allnulla vagy több elem bármilyen sorrendben

171 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete171. oldal FM116/01 XSD séma adatkiegészítése •A névtartományt meg kell adni: •xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" •Elsődleges kulcs megadása • •Egyedi kulcs megadása • ….stb. •Idegen kulcs megadása • … stb.

172 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete172. oldal FM116/01 XSD betöltése egy DataSet-be •Mintapélda: •DS1 = new DataSet() DS1.ReadXmlSchema("C:\Proba\Kakukk.Xsd") •Közvetlen filenév helyett használható: –StreamReader, TextReader, XmlReader objektum is •Metaadatok lekérdezhetők ezután: •Ds.Tables tulajdonság, Ds.Relations tulajdonság •Tables(index vagy név).Columns(index).ColumnName •Tables(index vagy név).Columns(index).DataType •Az InferSchema metódussal XML-ből is felépíti az adatszerkezetet

173 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete173. oldal FM116/01 XML adatok betöltése a DataSet-be •Ds.ReadXml(XmlObjektum,XmlReadMode) –Az XmlObjektum filenév, stream, text vagy Xmlreader –Az XmlReadMode lehetséges értékei: •ReadSchemaAz inline séma és az adatok együttesen •IgnoreSchemaInline séma nélkül csak az adatok •InferSchemaAz adatok alapján épül fel a séma is •DiffGramBerakja a DiffGram-ot a DataSet-be •FragmentSQLServer-ből generált XML-nél •A sémának nem megfelelő adatok kimaradnak

174 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete174. oldal FM116/01 XML írása DataSet-ből •Ds.WriteXmlSchema(XmlObjektum) •Csak a sémainformációt írja ki egy file-ba vagy reader-re •Ds.GetXmlSchema() •String-ként írja ki a sémainformációt •Ds.WriteXml(XmlObjektum,XmlWriteMode) •IgnoreSchemaCsak az adatokat írja ki az XML-be •WriteSchemaInline sémát és az adatokat írja ki •DiffGramDiffgram-ot ír eredeti és aktuális adattal

175 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete175. oldal FM116/01 DiffGram •Csak a DataSet változásait írja ki •Disconnected DataSet esetén pont ez kell •DiffGram névtér: •xmlns:diffgr="urn:schemas-microsoft-com:xml:diffgram-v1" •Három részre osztható: •Aktuális adat a sémának megfelelő elemekkel, majd ezután • elemben az eredeti tartalom • elemben a fellépett hibák •DiffGram attribútumok (annotációk) •diffgr:hasChanges="modified | inserted | descent" •diffgr:id = sorok egyedi azonosítása az összekapcsolás miatt

176 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete176. oldal FM116/01 Adatok megjelenítése a Web űrlapon

177 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete177. oldal FM116/01 Adatok vezérlőelemhez kapcsolása •Szintaktikai alakja 1. runat="server"> 2.sima szöveg •A DataBind() metódus hozza létre a kapcsolatot –Page.DataBind() •Az adott lap összes adatkötését élesíti –ctlValami.DataBind() •Csak az adott vezérlőelem adatkötéseire vonatkozik

178 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete178. oldal FM116/01 Adatkötési kifejezés lehetséges formái •Template vezérlőelemeknél (DataGrid, DataList, Repeater) –Container.DataItem("mezőnév") •Csak akkor egyszerű, ha a mező string-et ad, egyébként a String.Format segítségével át kell alakítani –DataBinder.Eval(Container.DataItem,"mezőnév", "formátum") •Futáskori kötéssel működik •Szerver vezérlőelemek között –Az adott vezérlőelem valamelyik tulajdonsága • runat="server">

179 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete179. oldal FM116/01 DataGrid vezérlőelem •Táblázatos adat megjelenítése •Rendezhető, editálható elemek •Bármelyik Collection osztály, ami IEnumerable •System.Data.DataView, System.Collections.ArrayList, stb. •A vezérlőelem létrehozása • •Hozzákapcsolás egy adatforráshoz •dgPartner.DataSource=ds.Tables("Partner").Default View dgPartner.DataBind()

180 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete180. oldal FM116/01 DataGrid oszlopok típusai •AutoGenerateColumns=true az alapértelmezés • …. között •asp:BoundColumnAdatmegjelenítő oszlop •asp:ButtonColumnNyomógombot tartalmazó oszlop •asp:EditCommandColumn Edit nyomógombot tartalmaz •asp:HyperLinkColumn Adatmegjelenítés hyperlink- ként •asp:TemplateColumnSaját template adható ezen belül

181 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete181. oldal FM116/01 DataGrid oszlopok tulajdonságai •HeaderText, FooterText •HeaderImageUrl •HeaderStyle, FooterStyle, ItemStyle •SortExpression •Az OnSortCommand metódusnak átadott mező neve •ReadOnly (csak a BoundColumn-nál) •ButtonType (ButtonColumn, EditCommandCol.) •ButtonColumnType.LinkButton vagy.PushButton •CancelText, EditText, UpdateText •EditCommandColumn esetén vagy az EditText vagy az UpdateText/CancelText kombináció látszik

182 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete182. oldal FM116/01 Adathoz kapcsolható tulajdonságok •BoundColumn esetén •DataField a megjelenített és editálható mező neve •ButtonColumn esetén •DataTextField adja a Text-hez kapcsolt mező nevét •DataTextFormatString írja elő a megjelenítési formátumot •HyperLinkColumn esetén •DataTextField adja a Text-hez kapcsolt mező nevét •DataTextFormatString írja elő a megjelenítési formátumot •DataNavigateUrlField adja az URL-t hordozó mező nevét, ami a NavigateUrl tulajdonságba kerül •DataNavigateUrlFormatString írja elő a megjelenítési formátumot

183 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete183. oldal FM116/01 Template elemek használata •TableRow-hoz vagy TableCell-hez rendelhető •Hierarchikus sorrend –EditItemStyle –SelectedItemStyle –AlternatingItemStyle –ItemStyle –ControlStyle •Egyéb stíluselemek –HeaderStyle, FooterStyle –PagerStyle

184 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete184. oldal FM116/01 DataGrid példa

185 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete185. oldal FM116/01 Repeater vezérlőelem •A megadott template alapján ismétli az adatokat •Ez az egyetlen olyan elem, ahol a HTML tagok szétbonthatók, például: •A nyitó a -be kerül •A az -be •A záró pedig a -be •Adathordozó template elemek: •ItemTemplate és AlternatingItemTemplate •Az ItemTemplate az egyetlen kötelező elem •Nem adathordozó template elemek: •HeaderTemplate, FooterTemplate, SeparatorTemplate

186 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete186. oldal FM116/01 Repeater példa Partnerek neve és címe: ( ), Tabla1.DataSource = ds' Ez egy feltöltött DataSet Tabla1.DataMember = "Partner" Tabla1.DataBind()

187 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete187. oldal FM116/01 DataList vezérlőelem •A Repeater-hez hasonló template-ek •EditItemTemplate és SelectedItemTemplate is létezik •Ennek megfelelően editálható (a DataGrid-hez hasonlóan) •Az ItemTemplate az egyetlen kötelező elem •A DataGrid-hez hasonló stílusok •Minden template-hez stílus is tartozhat, pl. ItemStyle •Tulajdonságok –RepeatLayout = Table vagy Flow –RepeatColumns = Hány oszlopba rendezze az adatokat –RepeatDirection = Horizontal vagy Vertical

188 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete188. oldal FM116/01 Felhasználói vezérlőelemek és komponensek készítése

189 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete189. oldal FM116/01 Code-behind Page  A Page direktíva kapcsolja össze a két file-t  Eljáráshívás a Code-Behind Page alapján Page Inherits="Lap1" Src="Minta.vb"%> Page Inherits="Lap1" Src="Minta.vb"%> ds = Adat1() Imports System Imports System.Web Public Class Lap1 Inherits System.Web.Ui.Page Public Function Adat1() … End Function End Class Imports System Imports System.Web Public Class Lap1 Inherits System.Web.Ui.Page Public Function Adat1() … End Function End Class

190 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete190. oldal FM116/01 Vezérlőelemek elérése a kódból •A névtartományokat célszerű importálni •Imports System.Web.UI.WebControls Imports System.Web.UI.HTMLControls •A vezérlőelemeket azonos névvel Public- ként deklarálni kell •Public lblPartNev As Label Public txtVaros As TextBox •Eseményvezérlő eljárásokat kell írni •Public Sub btnKuld_Click(s as Object, e as EventArgs) lblPartNev.Text = "Kakukk Kft." End Sub

191 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete191. oldal FM116/01 User Control •Felhasználói szerver vezérlőelem (.ascx file) •Az Include helyett használható •Tipikus alkalmazás: fejléc, navigációs gombsor •, és nem lehet benne helyett direktívát használjuk • •Információátadás a controlt tartalmazó lapnak •Public Property pAdat As Integer Get Return Cint(txtAdat.Text) End Get End Property

192 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete192. oldal FM116/01 User Control beépítése •Regisztrálni kell az adott ASP.NET lapon • •A TagPrefix adja az egyedi névteret •A TagName adja a user control egyedi nevét •Szerver vezérlőelemként építjük be a lapra: • FoNev:AlNev id="Vez2" runat="server"> •Információátadás a lap és a control között •lblSzam = Vez1.pAdat' A Public Property Get-je alapján Vez1.pAdat = 23 ' A Public Property Set-je alapján

193 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete193. oldal FM116/01.NET komponensek •A.NET komponensek előnyei a COM-hoz képest a telepítés szempontjából –Nincs szükség regisztrációra –Az alkalmazás/bin könyvtárba kell bemásolni –Nincs névtartomány ütközés –Nem kell a Web szervert újraindítani •Minimum egy névtér és egy osztály •Namespace EtKomp Public Class Szamla … End Class End Namespace

194 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete194. oldal FM116/01 Komponensek felhasználása •Az alkalmazás indításakor a /bin könyvtárból a komponensek betöltődnek •A Web.Config-ban beállítható, hogy melyek kellenek •A komponens elérése az ASP.NET lapról 1. Dim x As New Szamla 2.Import nélkül: Dim x As New projektnév.ETKomp.Szamla

195 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete195. oldal FM116/01 Web szolgáltatás Web Service

196 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete196. oldal FM116/01 Web szolgáltatás működési modellje

197 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete197. oldal FM116/01 Web szolgáltatások jellemzői •Alkalmazások közötti információátadás –Nyílt Internet protokollt használ (nem DCOM!) –Lehetséges protokollok: •HTTP GET, HTTP POST •XML és SOAP (Simple Open Access Protocol) •WSDL (Web Services Description Language) által leírt üzenetek •Nyilvános használatra szánt szolgáltatásoknál –Discovery információ kialakítása –UDDI (Universal Discovery Description and Integration)

198 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete198. oldal FM116/01 Web szolgáltatás létrehozása •Egy.asmx és egy.asmx.vb file-ból áll –Az.asmx file tartalma: • –Az.asmx.vb file tartalma: • Public Class Szemely Inherits System.Web.Services.WebServices' Nem kell Public Function FelvSzemely(strNev As String) As String … End Function End Class

199 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete199. oldal FM116/01 Nyilvánosságra hozatal (discovery) •Manuális discovery dokumentum • •Dinamikus discovery dokumentum •A VS.NET automatikusan létrehozza.vsdisco kiterjesztéssel • … •A tényleges discovery dokumentum futásidőben jön létre akkor, amikor a kliens alkalmazás rákérdez erre az info-ra

200 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete200. oldal FM116/01 Web szolgáltatás elérése •HTML leíró lap –//et/projektnév/Szamla.asmx hatására jelenik meg •Az elérhető metódusok és argumentumok •Egyszerű tesztelési célú szervizprogram •Leírás a Description paraméterek tartalma alapján •WSDL dokumentum –//et/projektnév/Szamla.asmx?WSDL hatására jelenik meg •XML formátumú leírás (szerződés)

201 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete201. oldal FM116/01 Web szolgáltatás meghívása •Böngészőprogramból –//et/Szamla.asmx/FelvSzemely?strNev=Kakukk –XML-ként adja vissza a felvett személy kódját • –A HTTP-GET protokollt használja •Kliens alkalmazásból –Web References hozzáadásával a VS.NET létrehoz egy proxy osztályt korai kötéssel –Ezután úgy hivatkozunk, mint egy lokális komponensre •Dim x As New Szamla.Szemely UjKod = x.FelvSzemely("Kakukk")

202 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete202. oldal FM116/01 A Visual Studio.NET vizuális eszközei

203 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete203. oldal FM116/01 Solution Explorer

204 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete204. oldal FM116/01 IDE ToolBox-ok •Típusok –General –Data –Components –XML Schema –Web Forms –HTML –Clipboard Ring –Windows Forms

205 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete205. oldal FM116/01 További ablakok •Class View •Properties Window •Server Explorer •Object Browser •Resource View •Task List •Output Window •Command Window •Document Outline

206 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete206. oldal FM116/01 Projekt szemlélet •File-ok gyűjteménye •Több projekt is megnyitható egyszerre –A projekt megnyitása az éles Web site-ot jelenti •Projekt nélkül is megnyitható egy file –File menü Open File parancs •Solution (.SLN) –Projekt-konténer –1:N kapcsolat van a solution és a projekt között

207 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete207. oldal FM116/01 Server Explorer •Adatbázisok kezelése •SQLServer •Message Queues •Crystal Services •Event Logs

208 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete208. oldal FM116/01 ASP.NET Web alkalmazás telepítése és konfigurálása

209 Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés Intézete209. oldal FM116/01 Konfigurációs file szekciói

… …

Letölteni ppt "Informatikai AlkalmazásokInternet alapú alkalmazásfejlesztés - 119 Intézete1. oldal FM116/01 Internetes alkalmazásfejlesztés Endrődi Tamás."

Hasonló előadás


Google Hirdetések