Internetes alkalmazásfejlesztés Endrődi Tamás

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Internetes alkalmazásfejlesztés Endrődi Tamás"

Átírás

1 Internetes alkalmazásfejlesztés Endrődi Tamás

2 Internetes alkalmazás rétegei

3 Háromrétegű Web architektúra Internetes alkalmazásfejlesztés 3

4 Többrétegű architektúra példa Internetes alkalmazásfejlesztés 4

5 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 Internetes alkalmazásfejlesztés 5

6 Technológiai eligazodás Windows Forms Windows Presentation Foundation (WPF) WPF with Explorer (XBAP) WPF/E (Silverlight) ASP.NET ASP.NET with AJAX Internetes alkalmazásfejlesztés 6

7 Alkalmazásfejlesztési csapat tagjai Web fejlesztő Programozó HTML szerző Grafikus Web adminisztrátor Adatbázis adminisztrátor Internetes alkalmazásfejlesztés 7

8 HTML alapok összefoglalása

9 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 Internetes alkalmazásfejlesztés 9

10 Kép (IMG) Hiperhivatkozás (A) Alap HTML tagok (2) 1.7 A HREF attribútum megadásának lehetőségei Listák létrehozása Rendezetlen lista (UL) 1.8 Rendezett, sorszámozott lista (OL) Lista elemek (LI) 1.9 Internetes alkalmazásfejlesztés 10

11 HTML tábla TABLE elem Táblasorok (TR) Táblacellák (TD) 1.10 Táblázatok formázásának attribútumai BORDER CELLSPACING, CELLPADING BGCOLOR, BACKGROUND COLSPAN, ROWSPAN HTML táblák egymásba ágyazása 1.11 Összetett Web lap megjelenítése táblaként 1.14 Internetes alkalmazásfejlesztés 11

12 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 Internetes alkalmazásfejlesztés 12

13 További HTML elemek COMMENT FIELDSET és LEGEND MAP SPAN és DIV XMP A karakter egyedek használata 1.23 Internetes alkalmazásfejlesztés 13

14 Cascading Style Sheet

15 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. Internetes alkalmazásfejlesztés 15

16 Láthatóság (visibility) Megjelenítés (Display) CSS vezérlés 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 Internetes alkalmazásfejlesztés 16

17 Szintaktika: CSS szabályok definiálása 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 Elem példa: #elem {font-color:green} Internetes alkalmazásfejlesztés 17

18 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 2.2 Globális stíluslap a /HEAD szekcióban HTML LINK tag használata 7.6 Az elsődlegeshez ezt célszerű használni Osztályok Stílus osztályok 2.4 Globális osztályok 2.5 Pszeudoosztályok Internetes alkalmazásfejlesztés 18

19 Internetes alkalmazásfejlesztés 19

20 DHTML alapok

21 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. Internetes alkalmazásfejlesztés 21

22 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 Internetes alkalmazásfejlesztés 22

23 Internetes alkalmazásfejlesztés 23

24 Kliensoldali script alkalmazása HTML komment technikát lehet használni <SCRIPT Language=JScript> <!-- function Valami() {.. } --> </SCRIPT> Internetes alkalmazásfejlesztés 24

25 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 Internetes alkalmazásfejlesztés 25

26 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ő. Internetes alkalmazásfejlesztés 26

27 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 Internetes alkalmazásfejlesztés 27

28 Jscript vezérlőszerkezetek if (feltétel { // igaz ág } else { // hamis ág } for (x=1;x<=10;x++) { // ciklusmag } Internetes alkalmazásfejlesztés 28

29 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. Internetes alkalmazásfejlesztés 29

30 Szintaktika: ActiveX control <OBJECT classid="clsid:registryszám" id=név <PARAM NAME="Year" VALUE="1999">.. </OBJECT> 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: <PARAM NAME <%=változó%>.. CodeBase tulajdonság adja meg a control URL-jét Akkor kell, ha le kellene tölteni, mert nincs a user gépén. Internetes alkalmazásfejlesztés 30

31 Java appletek Szintaktika: <APPLET code=valami.class id=kutya <PARAM NAME=Ez VALUE="Az"> /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(?!) Internetes alkalmazásfejlesztés 31

32 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 Internetes alkalmazásfejlesztés 32

33 document objektum Metódusok open, write, close, createelement, insertadjacentelement, insertbefore Tulajdonságok body, cookie, title Események onclick, onpropertychange, onmousexxx, onkeyxxx, ondragxxx Kollekciók 5.4 all, frames, forms Internetes alkalmazásfejlesztés 33

34 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ó Internetes alkalmazásfejlesztés 34

35 XML alapok

36 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) Internetes alkalmazásfejlesztés 36

37 XML példa <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="konyv.xsl"?> <!DOCTYPE filmek SYSTEM "filmek.dtd"> <filmek> <film nyelv="angol"> <cím>matrix</cím> <szereplő>keanu Reeves</szereplő> <szereplő>laurence Fishburne</szereplő> </film> <film nyelv="magyar"> <cím>csinibaba</cím> <szereplő>gálvölgyi János</szereplő> <rendező>tímár Péter</rendező> </film> </filmek> Internetes alkalmazásfejlesztés 37

38 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 Internetes alkalmazásfejlesztés 38

39 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. Internetes alkalmazásfejlesztés 39

40 Névterek (Namespaces) A különböző XML dokumentumok összekapcsolásakor a tagok megkülönböztetése miatt kell Példa: <Rendelesek xmlns:partner="// xmlns:dsig="//dsig.org"> <partner:nev> <partner:vezeteknev>nagy</partner:vezeteknev> <partner:keresztnev>pál</partner:keresztnev> </partner:nev> <dsig:digalair> </dsig:digalair> </Rendelesek> Internetes alkalmazásfejlesztés 40

41 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 Internetes alkalmazásfejlesztés 41

42 XML dokumentum szabályok Kezdő és záró tag mindig kell (well-formed document) Rövidítés lehetséges, pl.: <Kutya/> 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 Internetes alkalmazásfejlesztés 42

43 XML Data Island Az adatsziget egy XML a HTML lap belsejében Inline megadás <XML ID="Valami"> <film> <cím>matrix</cím> </film> </XML> SRC hivatkozás <XML ID="Valami" SRC="film.xml"</XML> Script tag <SCRIPT LANGUAGE="xml" ID="Valami"> <film> stb. </SCRIPT> Internetes alkalmazásfejlesztés 43

44 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. Internetes alkalmazásfejlesztés 44

45 XML attribútumok elérése Valami.documentElement.childNodes.item(n).attri butes.item(z).nodename Az első szinten található n-edik ág z-edik attribútumának a neve Valami.documentElement.childNodes.item(n).get Attribute("nyelv") Az első szinten található n-edik ág "nyelv" nevű attribútumának az értéke Internetes alkalmazásfejlesztés 45

46 További elemek az XMLDOM-ban Data Island elemeinek elérése Valami.XMLDocument.documentElement.stb. Namespace elemek elérése xmlns:partner="// 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 Internetes alkalmazásfejlesztés 46

47 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 Internetes alkalmazásfejlesztés 47

48 XML file betöltése xmldok.load("//et/kakukk.xml") xmldok.loadxml("<vevő>.</vevő>") Aszinkron (default) és szinkron betöltés Menté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 xmldok.save(server.mappath("minta.xml")) Internetes alkalmazásfejlesztés 48

49 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") Internetes alkalmazásfejlesztés 49

50 Ú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 Internetes alkalmazásfejlesztés 50

51 XMLDOMNode (1) Információ a Node-ról haschildnodes() igaz vagy hamis nodename prefix:név formában nodetype és nodetypestring NODE_ELEMENT 1 NODE_ATTRIBUTE 2 NODE_TEXT 3 NODE_CDATA_SECTION 4 stb. parsed specified Xml logikai iagz, ha ellenőrzött attribútumoknál, ha van default vagy meg van adva az adott node xml string-ként Internetes alkalmazásfejlesztés 51

52 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 Internetes alkalmazásfejlesztés 52

53 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 Controlhoz Kétféle modell ötvözhető Template-driven model Data-driven model Internetes alkalmazásfejlesztés 53

54 Egyszerű XML-XSL-HTML példa <?xml version="1.0"?> <portfolio xmlns:dt="urn:schemas-microsoftcom:datatypes"> <részvény tőzsde="bse"> <név>otp Bank Rt.</név> <jel>otp</jel> <árf dt:dt="number">16000</árf> </részvény> <részvény tőzsde="nasdaq"> <név> </név> </részvény> </portfolio> Internetes alkalmazásfejlesztés 54

55 HTML template <HTML> <BODY> <TABLE Border="2"> <TR> <TD>Jel</TD> <TD>Név</TD> <TD>Árfolyam</TD> </TR> <TR> <TD> </TD> <TD> </TD> <TD> </TD> </TR> </TABLE> </BODY> </HTML> Internetes alkalmazásfejlesztés 55

56 A template "feltöltése" (1) <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="// <xsl:template match="/"> <HTML> <BODY> <TABLE Border="2"> <TR> <TD>Jel</TD> <TD>Név</TD> <TD>Árfolyam</TD> </TR> Internetes alkalmazásfejlesztés 56

57 A template "feltöltése" (2) <xsl:for-each select="portfolio/részvény"> <TR> <TD><xsl:value-of select="jel"/></td> <TD><xsl:value-of select="név"/></td> <TD><xsl:value-of select="árf"/></td> </TR> </xsl:for-each> </TABLE> </BODY> </HTML> </xsl:template> </xsl:stylesheet> Internetes alkalmazásfejlesztés 57

58 XSL alapszabályok <xsl:for-each> tag adja meg az elemhalmazt <xsl:value-of select="minta"> 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 Internetes alkalmazásfejlesztés 58

59 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 < > & " &apos; A scriptek belsejében sem lehetnek más jelek <SCRIPT><![CDATA[ ide jön a script ] ] ></SCRIPT> Internetes alkalmazásfejlesztés 59

60 <TR> HTML tag új attribútuma <xsl:attribute name="title"> <xsl:value-of select="jel"/> adatai a <xsl:value-of select="@tőzsde"/>-ról származnak </xsl:attribute> <TD> Csak akkor lehet "TITLE"-t adni, ha még nincs neki. A <TD> tag előtt kell lennie, hogy a <TR>-re vonatkozzon Internetes alkalmazásfejlesztés 60

61 Feltételes template-ek <TD> <xsl:value-of select="jel"/> <xsl:if </xsl:if> </TD> <xsl:attribute name="style">color: <xsl:choose> <xsl:when test="price[. $le$ 25]">red </xsl:when> <xsl:otherwise>green</xsl:otherwise> </xsl:choose> </xsl:attribute> Internetes alkalmazásfejlesztés 61

62 "for-each" rendezése <xsl:for-each select="portfolio/részvény" order-by="árf"> 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: <xsl:for-each select="portfolio/részvény/név" order-by="-." Internetes alkalmazásfejlesztés 62

63 XSL pattern Egy egyszerű query nyelvhez hasonlít portfolio/részvény portfolio/*/név az összes ilyen node pé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év csak azok, amelyeknek van "jel" node-juk portfolio/részvény[jel='otp']/árf részvények árfolyama jön le portfolio/részvény[@tőzsde="bse"] lévő részvények jönnek le portfolio/részvény/@tőzsde vissza csak az 'OTP' jelű csak a BSE-n csak az attribútum értékpár jön Internetes alkalmazásfejlesztés 63

64 Active Server Pages alapfogalmak (Egy kis történelem)

65 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 Internetes alkalmazásfejlesztés 65

66 ASP file tartalma és nyelve Az ASP file tartalma: Sima szöveg HTML Script Kliens oldali Szerver oldali (<%.%>) Script nyelvek VBScript Jscript Perl Internetes alkalmazásfejlesztés 66

67 Határolójelek ASP szintaktikai elemek <.> a HTML határolójelei <%..%> az ASP Script határolójelei Response.Write helyett sima egyenlőségjel Példa: Ez a lap <% =Now %> -kor lett frissítve. Script példa: <SCRIPT RUNAT=Server Client LANGUAGE=VBScript JavaScript> itt van maga a script </SCRIPT> Internetes alkalmazásfejlesztés 67

68 Példa: Scriptek és HTML vegyítése <% If Time < #12:00:00PM# Then %> Good Morning <% Else %> Good Afternoon <% Endif %> Internetes alkalmazásfejlesztés 68

69 Beépített (built-in) objektumok Request Response Application Session Server Internetes alkalmazásfejlesztés 69

70 Request objektum A böngésző által küldött információ Browser A böngészőt adja vissza LogonUserIdentity WindowsIdentity objektumot ad Gyűjtemények QueryString A kérdőjel utáni paraméterek Cookies Adott változó tartalma Példa: Request.Cookies("Dolgozo")("Nev") ClientCertificate (Kulcs[almező]) Secure Sockets Layer (SSL) használatakor https lesz a sima http helyett Files Az upload-dal feljött fájlok Internetes alkalmazásfejlesztés 70

71 3 lehetőség van HTML Form készítése Statikus.HTM egy formcx-szel adatot ad át egy.aspnek.asp küld adatot egy másik.asp-nek.asp küld adatot önmagának (self-posting) Megvalósítás: <Form Method=Post Action=kakukk.asp> Begyűjti az adatokat és a SUBMIT gombra elküldi a kakukk.asp-nek. Internetes alkalmazásfejlesztés 71

72 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 Internetes alkalmazásfejlesztés 72

73 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 formbó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 Internetes alkalmazásfejlesztés 73

74 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. Internetes alkalmazásfejlesztés 74

75 Metódusok Write Response objektum (2) Sima egyenlőségjellel helyettesíthető Redirect End Buffer=True esetén átszállhatunk egy másik ASP-re Response.Redirect " 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. Internetes alkalmazásfejlesztés 75

76 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) Internetes alkalmazásfejlesztés 76

77 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 Contents StaticObjects Az összes változó <OBJECT>-en belüli obj-ok Internetes alkalmazásfejlesztés 77

78 Session objektum Az állapot nélküli HTTP feloldására Példa: "Vásárlókosár" jellegű alkalmazás készíthető A Global.Asa kezeli Session("KakukkValt") = érték X = Session("KakukkValt") Tulajdonságok Metódus SessionID (long) és TimeOut (percek) Abandon Kierőszakolja a Session végét. Internetes alkalmazásfejlesztés 78

79 Application_OnStart Események 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. Internetes alkalmazásfejlesztés 79

80 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 Internetes alkalmazásfejlesztés 80

81 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, HTMLDecode MapPath UrlEncode, UrlDecode Internetes alkalmazásfejlesztés 81

82 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 Internetes alkalmazásfejlesztés 82

83 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 Internetes alkalmazásfejlesztés 83

84 Szerveroldali komponensek ADO Command, Connection, Recordset Ad Rotator Browser Capabilities Content Linking Index Server Dictionary Filesystem Object Internetes alkalmazásfejlesztés 84

85 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ó. Internetes alkalmazásfejlesztés 85

86 Web alkalmazás ASP.NET-ben Global.asax HttpApplication ősosztályból származik this.applicationinstance Egyszerre csak egy kérést szolgál ki Automatikus esemény feliratkozás Application_eseménynév Csak egyszer _Start, _End Minden kéréshez _BeginRequest, _AuthenticateRequest stb. Minden sessionhöz Session_Start, Session_End Internetes alkalmazásfejlesztés 86

87 Az ASP.NET alapjai

88 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 Egyebek Web szolgáltatások Internetes alkalmazásfejlesztés 88

89 Az ASP.NET jellegzetességei (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 Internetes alkalmazásfejlesztés 89

90 Az ASP.NET jellegzetességei (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 Internetes alkalmazásfejlesztés 90

91 ASP.NET verziók 1.0 (Visual Studio 2002) 1.1 (Visual Studio 2003) 2.0 (Visual Studio 2005) 3.0 és 3.5 (Visual Studio 2008) Ajax, WPF Silverlight Beta az SP1-ben Internetes alkalmazásfejlesztés 91

92 Mappa alapú fejlesztés Mappa határozza meg a web projektet Nincs projekt fájl Projekt beállítások.sln-ben %UserProfile% \ My Documents \ Visual Studio \ Projects \ <webprojektnév> \ <webprojektnév>.sln Célszerű előbb létrehozni a solutiont Minden fájl a projekthez tartozik Minden source control alá tehető Dokumentáció, grafikai forrás fájlok Temp fájlok rejtett mappák Megosztás, FTP vagy FPSE Internetes alkalmazásfejlesztés 92

93 Fejlesztő szerver Korábbi Cassini alapjain Alapértelmezett, ha nincs IIS Use default web server opció a projekt tulajdonságlapján Csak lokális kéréseket szolgál ki Véletlen portszámon fut Hibakeresést támogatja A fejlesztő nevében fut Manuálisan is indítható Internetes alkalmazásfejlesztés 93

94 Speciális könyvtárak App_Browsers Mappa neve Tartalma Böngésző definíciós állományok (.browser) App_Code Kód: segédosztályok, üzleti objektumok (.cs,.vb,.xsd) App_Data App_GlobalResources App_LocalResources App_Themes* App_WebReferences bin Adatfájlok, adatbázisok (.mdf,.mdb,.xml) Alkalmazás szintű erőforrások (.resx,.resources) Oldal- és vezérlőelem szintű erőforrások (.resx,.resources) Témák és bőrök (.skin,.css) Webszolgáltatásokra mutató hivatkozások, sémák (.wsdl,.xsd,.disco) Lefordított szerelvények (.dll) Internetes alkalmazásfejlesztés 94

95 Fordítási bajok 1.x-ben Két fordítási környezet volt az 1.x-ben Fordítási időben nyelvi fordítók Futási időben ASP.NET v.1.x Törékeny: ID egyezés az ASPX és a CS fájl között Lassú: az egész alkalmazást kellett fordítani Sok hiba csak futási időben derült ki ASPX kód, adatkötés,konfiguráció 2.0-tól kezdve Több ellenőrzés fordítási időben 100% kompatibilitás %FrameworkDir% \ %FrameworkVersion% \ Temporary ASP.NET Files Internetes alkalmazásfejlesztés 95

96 Mögöttes kódot tartalmazó fájl Fordítás Az osztály neve, amiből származtatni kell Page CodeFile= Liba.aspx.vb" Inherits= Liba"... %> public partial class Liba : System.Web.UI.Page {... } System.Web.UI.Page -.Liba Generált részleges osztály:.profile.applicationinstance.master Vezérlők deklarációja -.Liba Megírt részleges osztály: Page_Load() Eseménykezelők Saját mezők, tulajdonságok, metódusok ASP.Liba_aspx Dinamikus fordítás Internetes alkalmazásfejlesztés 96

97 Kódgenerálás fejlesztéskor Deklaratív leírás fordítható kód Windows\Microsoft.Net\Framework\verzió\Temporary ASP.NET Runtime.ccu (Code Compile Unit),.compiled (XML file compiler információkkal Build-re ezek helyett DLL lesz Részleges osztályok Speciális mappák Adatkötések ExpressionBuilders $AppSettings, $ConnectionStrings, $Resources <asp:label ID="lblVersion" runat="server" Text="<%$ AppSettings:AppVersion %>" /> BuildProviders VS05/VS08 is elvégzi IntelliSense Internetes alkalmazásfejlesztés 97

98 Web űrlap (Web Form).ASPX kiterjesztésű direktívát tartalmaz: Page Language=Vb %> Szerveroldali űrlappal rendelkezik: <Form runat= server > </Form> 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 AutoEventWireup= True False Page_Event formájú eljárások automatikus kapcsolása Internetes alkalmazásfejlesztés 98

99 BuildProviders Minden projekt típusban: XSD DataSet, WSDL proxy ASP.NET-ben kiterjeszthető Tetszőleges fájl formátumhoz Tetszőleges fordítás előtti feldolgozás és kód generálás (CodeDOM) Web.config kapcsolja össze <buildproviders> szekció Globális web.configban 11 előre definiált pl. IgnoreFileBuildProvider Internetes alkalmazásfejlesztés 99

100 Kinek a nevében fut IIS Windows XP: Gépnév\ASPNET Megváltoztatható machine.config-ban <processmodel username= password= /> Windows Server 2003: NT Authority\Network Service Megváltoztatható AppPoolonként az IIS6-ban Fejlesztői szerver Fejlesztői fiók nevében SQL Server A szolgáltatáshoz megadott fiók nevében SQL Server Express: user instance mode Saját példány a futtató fiók nevében A felhasználó SysAdmin jogokkal kapcsolódik hozzá Internetes alkalmazásfejlesztés 100

101 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 Internetes alkalmazásfejlesztés 101

102 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 <tag attr= érték runat= server >.</tag> vagy <tag attr= érték runat= server /> Property adatok Disabled, Visible, ID, Style, TagName, Attributes Rendereléskor a Name és az ID megegyezik Internetes alkalmazásfejlesztés 102

103 Web vezérlőelem Intelligens komponensként funkcionálnak Az asp névtérben működő tagok <asp:textbox id= kakukk runat= server /> 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 Dinamikus felrakás a Page_Init-ben történik Láthatóvá kell tenni (Visible=True) Hozzá kell adni a Form gyűjteményhez Form1.Controls.Add (újctl) Internetes alkalmazásfejlesztés 103

104 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 Internetes alkalmazásfejlesztés 104

105 Eseményvezérlő eljárás írása Kód deklarációs blokk vagy mögöttes kód <SCRIPT Language= VB Runat= server > Sub Valami(s As Object, e As EventArgs). End Sub </SCRIPT> Code-behind class file Összekapcsolás a szerver vezérlőelemnél: <tag runat= server onserverclick= Valami /> A metódus nevét kell leírni, és nem egy függvényhívást, mint az ASP-nél. Internetes alkalmazásfejlesztés 105

106 Page események sorrendje Init LoadControlState, LoadViewState, LoadPostData Load Ahányszor csak meghívják az ASPX lapot Change típusú események AutoPostBack nélkül (RaisePostDataChangeEvent) Click esemény és az AutoPostback-es Change események (RaisePostbackEvent) Vagyis az az esemény, amitől az űrlap elindult PreRender, SaveControlState, SaveViewState Render, Dispose, Unload Internetes alkalmazásfejlesztés 106

107 Internetes alkalmazásfejlesztés 107

108 Cache objektum Application-hoz hasonló, de több a lehetőség Példák: Cache( Macska )= Nokedli Cache.Insert( Macska, Nokedli ) Cache.Insert( conn, connstring, new CacheDependency (Server.MapPath( ~\config.xml ))) Cache.Remove( Macska ) Abszolút idő vagy TimeSpan is megadható, hogy meddig maradjon Callback metódussal értesítést is kaphatunk a törlésről

109 Deklaratív Page Output Cache Szintaktika: OutputCache Duration= 99 --másodperc Location=Server Client Any ServerandClient VaryByControl= cntida; cntidb; VaryByParam= qrystr; None * SqlDependency= adatbázis/tábla Cache típusok A lap nem, csak adott control-ok (VaryByControl) A teljes lap, kivéve néhány control (ASP.NET Substitution control használatával)

110 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 Aszinkron postback (AJAX) ScriptManager és UpdatePanel kell hozzá Internetes alkalmazásfejlesztés 110

111 Page_Error Hibakezelés Server.GetLastError().Message kiírható pl. Trace-be Server.ClearError() Application_Error Global.Asax-ban használható Pl. Server.Transfer-rel átirányítható egy standard hibakezelő lapra Internetes alkalmazásfejlesztés 111

112 Belső (instrinsic) Web vezérlőelem Az eredeti HTML vezérlőelemek helyett Standard névkonvenciót használnak <input type=xxx> 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 Internetes alkalmazásfejlesztés 112

113 A Web vezérlőelemek típusai <asp:textbox> <asp:button> <asp:imagebutton> <asp:checkbox> <asp:radiobutton> <asp:listbox> <asp:dropdownlist> <asp:hyperlink> <asp:image> <asp:label> <asp:panel> <asp:table> <input type=text> <input type=button> <input type=image> <input type=checkbox> <input type=radiobutton> <select size= 5 > </select> <select> </select> <a href=.. > </a> <img src= > <span> </span> <div> </div> <table> </table> Internetes alkalmazásfejlesztés 113

114 Web vezérlőelemek (1) Közös tulajdonságok AccessKey, Attributes, BackColor, CssClass, Enabled, ForeColor, SkinID, TabIndex, ToolTip, Height, Width, EnableViewState TextBox Text (HtmlEncode-dal kell feldolgozni, hogy ne trükközhessen a felhasználó) TextMode=SimpleLine MultiLine Button CommandName (A Command event-nél ebből tudjuk, hogy melyik gombot nyomták meg) Checkbox, RadioButton Checked=True False GroupName (csak a RadioButton-nál) Internetes alkalmazásfejlesztés 114

115 Web vezérlőelemek (2) Literal Sima szövegként renderelődik, és nem <span> tagként, mint a Label control Literal.Mode=Passthrough (a Text-et értelmezi) Encode (kiírja) Table, TabelRow, TableCell Jobb a HTMLTable-nél, de gyengébb a GridView-nál, mert a programból hozzáadott TableRow elvész a Postback-nél Image ImageUrl, AlternateText ImageButton Image-ből öröklődik Click és Command eseménykezelést tud Internetes alkalmazásfejlesztés 115

116 Web vezérlőelemek (3) ImageMap Ez is az Image-ből öröklődik imgmap.hotspots.add (hotspot) hotspot létrehozás: PolygonHotSpot, CircleHotSpot, RectangleHotSpot Calendar Naptárelem, HTML Table lesz belőle FileUpload Textbox és egy Browse gomb, azaz <input type= file > Nem csinál Postback-et. Kell tehát egy külön gomb. Page_Load csak akkor lesz, ha a file már felment a szerverre. Internetes alkalmazásfejlesztés 116

117 Web vezérlőelemek (4) Panel <div> lesz belőle. Együtt lehet eltüntetni a tartalmát MultiView és View Több View közül az ActiveViewIndex által megadott renderelődik Wizard View-ből áll WizardStep kollekció StepType=Start Step Finish Complete Internetes alkalmazásfejlesztés 117

118 Web vezérlőelemek (ListControls) ListBox, DropDownList, BulletedList, RadioButtonList, CheckBoxList Items kollekció elemei ListItem objektumok Text és Value tulajdonságadatokkal DataSource és DataMember (adatforrások) DataTextField, DataValueField (összekapcsolás) DataTextFormatString SelectedIndex, SelectedItem, SelectedValue SelectedIndexChanged esemény AppendDataBoundItems=true Az előtte felvettek benne maradnak, így lehet a (Mind)-et beilleszteni Internetes alkalmazásfejlesztés 118

119 Web vezérlőelemek (Navigáció) Hyperlink NavigateURL property Button PostBackUrl=másik lap is lehet Page.PreviousPage éri el a korábbi lapot, és prevpage.findcontrol( txtdata ) éri el a controlt <%@ PreviousPageType VirtualPath= x.aspx %> esetén a Public Property-k prevpage.prop1 módon is elérhetők SiteMapPath Web.sitemap file kell <sitemap xmlns <sitemapnode url= title= decription= /> Internetes alkalmazásfejlesztés 119

120 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 Internetes alkalmazásfejlesztés 120

121 Adatellenőrző vezérlőelemek Tipusok: 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) Internetes alkalmazásfejlesztés 121

122 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" Internetes alkalmazásfejlesztés 122

123 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" Internetes alkalmazásfejlesztés 123

124 RangeValidator Értéktartomány ellenőrzés MinimumValue="konstans" MaximumValue="konstans" Type="String" "Integer" "Date" "Double" "Currency" Internetes alkalmazásfejlesztés 124

125 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 <asp:xxvalidator >*</asp:xxvalidator> Internetes alkalmazásfejlesztés 125

126 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}" Internetes alkalmazásfejlesztés 126

127 Az ADO.NET alapjai

128 ADO.NET Internetes alkalmazásfejlesztés 128

129 Connection objektum Kétféle típusa van: SQLConnection (SQLServer 7.0, 2000) OLEDBConnection (a többi esetén) ConnectionString (SQLConnection-nél) Data Source=.. vagy Server=.. ; Initial Catalog=.. vagy Database=.. ; Integrated Security= vagy Trusted_Connection=sspi; vagy User ID=.. Pwd=.. Connection String (OLEDBConnection-nél) Provider=..; a többi ugyanaz ODBC-t nem támogat (külön ODBC.NET provider kell) Internetes alkalmazásfejlesztés 129

130 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 Internetes alkalmazásfejlesztés 130

131 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 Internetes alkalmazásfejlesztés 131

132 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 Internetes alkalmazásfejlesztés 132

133 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) Internetes alkalmazásfejlesztés 133

134 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 cmds.parameters("@return_value"). Value Internetes alkalmazásfejlesztés 134

135 Két típusa van: DataReader objektum 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ő Internetes alkalmazásfejlesztés 135

136 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 Internetes alkalmazásfejlesztés 136

137 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() Internetes alkalmazásfejlesztés 137

138 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 Internetes alkalmazásfejlesztés 138

139 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() Internetes alkalmazásfejlesztés 139

140 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 Internetes alkalmazásfejlesztés 140

141 A DataSet osztály objektummodellje Internetes alkalmazásfejlesztés 141

142 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 Internetes alkalmazásfejlesztés 142

143 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)) Internetes alkalmazásfejlesztés 143

144 Columns DataTable tulajdonságok A tábla oszlopainak kollekciója (DataColumnCollection) Constraints A tábla Constrainst kollekciója (ConstraintCollection) ForeignKeyConstraint vagy UniqueKeyConstraint osztály PrimaryKey Rows DataColumn() tömbként kell megadni dtpartner.primarykey=new DataColumn() _ {dtpartner.column("partazon")} Az adatsorok kollekciója Internetes alkalmazásfejlesztés 144

145 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 Internetes alkalmazásfejlesztés 145

146 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 Internetes alkalmazásfejlesztés 146

147 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 Internetes alkalmazásfejlesztés 147

148 Ú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) Internetes alkalmazásfejlesztés 148

149 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 Internetes alkalmazásfejlesztés 149

150 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() Internetes alkalmazásfejlesztés 150

151 Fizikai törlés Sorok törlése a táblából dtpartner.rows.removeat(5) 'Törli a 6. sort drpartner = dtpartner.rows(5) dtpartner.rows.remove(drpartner) Logikai törlés drpartner.delete ' Ez is törli a 6. sort A drpartner.rowstate értékét RowState.Deleted-re állítja Internetes alkalmazásfejlesztés 151

152 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 Internetes alkalmazásfejlesztés 152

153 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ó Internetes alkalmazásfejlesztés 153

154 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 Internetes alkalmazásfejlesztés 154

155 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 Internetes alkalmazásfejlesztés 155

156 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 Internetes alkalmazásfejlesztés 156

157 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") Internetes alkalmazásfejlesztés 157

158 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 Internetes alkalmazásfejlesztés 158

159 Mintapélda módosításra Dim cmdmodos As New SqlCommand("UPDATE Partner SET" & _ "PartAzon=@ID, PartNev=@Nev WHERE PartAzon=@EredID", _ cnszamla) cmdmodos.parameters.add(new SqlParameter("@ID", _ SqlDbType.Int32, 4, ParameterDirection.Input, False, _ 0, 0, "PartAzon", DataRowVersion.Current, Nothing)) cmdmodos.parameters.add(new SqlParameter("@Nev", _ SqlDbType.Char, 30, ParameterDirection.Input, False, _ 0, 0, "PartNev", DataRowVersion.Current, Nothing)) cmdmodos.parameters.add(new SqlParameter("@EredID", _ SqlDbType.Int32, 4, ParameterDirection.Input, False, _ 0, 0, "PartAzon", DataRowVersion.Original, Nothing)) Internetes alkalmazásfejlesztés 159

160 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 Internetes alkalmazásfejlesztés 160

161 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 Internetes alkalmazásfejlesztés 161

162 XSD Schema DataSet és az XML 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 Internetes alkalmazásfejlesztés 162

163 XSD séma alapelemei: element <xs:element name="partaz" type="xs:integer" /> 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 <PartAz>2547</PartAz> <PartAz>XC35</PartAz> ' Jó példa ' Rossz példa Internetes alkalmazásfejlesztés 163

164 XSD séma alapelemei: attribute <xs:attribute name="partpri" type="xs:number"/> 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 Internetes alkalmazásfejlesztés 164

165 XSD séma alapelemei: simpletype Létrehozás: <xs:simpletype name="ketjegyuszam"> <xs:restriction base="xs:positiveinteger"> <xs:maxinclusive value="99" /> </xs:restriction> </xs:simpletype> Felhasználás: <xs:element name="db" type="ketjegyuszam" /> Tipikus facet elemek: length, maxlength, minlength, maxexclusive, pattern Internetes alkalmazásfejlesztés 165

166 XSD séma alapelemei: complextype Létrehozás: <xs:complextype name="cim"> <xs:sequence> <xs:element name="varos" type="xs:string" /> <xs:element name="utcahsz" type="xs:string" /> <xs:element name="irsz" type="xs:string" /> </xs:sequence> </xs:complextype> Felhasználás: <xs:element name="szlacim" type="cim" /> A komplex típusok egymásba ágyazhatók Internetes alkalmazásfejlesztés 166

167 Példa: XSD séma alapelemei: group <xs:group name="rendfej"> <xs:sequence> <xs:element name="vevonev" type="xs:string" /> <xs:element name="rendszam" type="xs:number" /> <xs:element name="renddat" type="xs:date" /> </xs:sequence> </xs:group> Csoportok típusai: sequence choice all kötött sorrendben minden elem kötelező a felsoroltak közül csak az egyik kell nulla vagy több elem bármilyen sorrendben Internetes alkalmazásfejlesztés 167

168 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 <xs:key name="pkpartner" msdata:primarykey="true"> <xs:selector xpath=".//partner"/> <xs:field xpath="partazon"/> </xs:key> Egyedi kulcs megadása <xs:unique name="adoszam">.stb. Idegen kulcs megadása <xs:keyref name="fkrendpart" refer="pkpartner"> stb. Internetes alkalmazásfejlesztés 168

169 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 Internetes alkalmazásfejlesztés 169

170 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: ReadSchema Az inline séma és az adatok együttesen IgnoreSchema Inline séma nélkül csak az adatok InferSchema Az adatok alapján épül fel a séma is DiffGram Berakja a DiffGram-ot a DataSet-be Fragment SQLServer-ből generált XML-nél A sémának nem megfelelő adatok kimaradnak Internetes alkalmazásfejlesztés 170

171 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) IgnoreSchema Csak az adatokat írja ki az XML-be WriteSchema Inline sémát és az adatokat írja ki DiffGram Diffgram-ot ír eredeti és aktuális adattal Internetes alkalmazásfejlesztés 171

172 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 <diffgr:before> elemben az eredeti tartalom <diffgr:errors> 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 Internetes alkalmazásfejlesztés 172

173 Adatok megjelenítése a Web űrlapon

174 Adatok vezérlőelemhez kapcsolása Szintaktikai alakja 1. <tagprefix:tagnév attr1=<%# Adatkötési kifejezés %> runat="server"> 2. sima szöveg <%# Adatkötési kifejezés %> 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 Internetes alkalmazásfejlesztés 174

175 Adatkötési kifejezés lehetséges formái Template vezérlőelemeknél (GridView, 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 <asp:label text=<%# lstorszag.selecteditem.text %> runat="server"> Internetes alkalmazásfejlesztés 175

176 Egyirányú/kétirányú adatkötés Egyirányú (1.x-ben) <%# DataBinder.Eval(Container.DataItem, fieldname, formatstring) %> Egy és kétirányú (2.0-tól) <%# Eval(fieldName, formatstring) %> <%# Bind(fieldName, formatstring) %> Internetes alkalmazásfejlesztés 176

177 Adatkötési események Selecting Selected Inserting Inserted Updating Updated Deleting Deleted Filtering Databinding Databound Internetes alkalmazásfejlesztés 177

178 Adatelérési komponensek DataSource controls adatforrások Fizikai adatforrás eltakarása Data-bound controls vezérlők Leggyakoribb megjelenítési fajtákra komponensek DataBinding megfeleltetés Adatforrások vezérlőkkel történő összerendelése Konfigurációkezelés Internetes alkalmazásfejlesztés 178

179 Adatforrások (DataSource controls) VS2005 SqlDataSource ObjectDataSource XmlDataSource AccessDataSource SiteMapDatasource VS2008 LinqDataSource EntityDataSource Internetes alkalmazásfejlesztés 179

180 Vezérlők (Data-bound controls) VS DataList Repeater VS2005 GridView (DataGrid helyett) DetailsView FormView TreeView Menu VS2008 ListView Internetes alkalmazásfejlesztés 180

181 Konfiguráció kezelés <connectionstrings> <add name="pubs" ProviderName=" " connectionstring=" " /> </connectionstrings> <asp:sqldatasource ConnectionString="<%$ connectionstrings:pubs %>" SelectCommand="select au_id from authors" runat="server"/> Dim connectionstring as string = ConfigurationSettings.ConnectionStrings("pubs ) Internetes alkalmazásfejlesztés 181

182 GridView vezérlőelem Táblázatos adat megjelenítése Rendezhető, editálható elemek, de új sort nem lehet vele felvenni Bármelyik Collection osztály, ami IEnumerable System.Data.DataView, System.Collections.ArrayList, stb. A vezérlőelem létrehozása <asp:gridview id="dgpartner" runat="server"> Hozzákapcsolás egy adatforráshoz dgpartner.datasource=ds.tables("partner").defaultview dgpartner.databind() Internetes alkalmazásfejlesztés 182

183 GridView szerkezete Sor=GridViewRow objektum Van Cells kollekciója, melynek elemei DataControlFieldCell objektumok Oszlop=DataControlField objektum BoundField, TemplateField, ButtonField, CommandField, HyperlinkField, ImageField, CheckboxField A konkrét oszlopok a DataControlField-ből örökített osztályok, melyben felülírják az InitializeCell metódust Megjelenítés menete A grdx.initializerow sorban meghívja az egyes oszlopok InitializeCell metódusait, és így jön létre egy új sor Internetes alkalmazásfejlesztés 183

184 Adathoz kapcsolható tulajdonságok BoundField esetén DataField a megjelenített és editálható mező neve ButtonField esetén DataTextField adja a Text-hez kapcsolt mező nevét DataTextFormatString írja elő a megjelenítési formátumot HyperLinkField 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 Internetes alkalmazásfejlesztés 184

185 Template elemek használata TableRow-hoz vagy TableCell-hez rendelhető Hierarchikus sorrend RowStyle AlternatingRowStyle EditItemStyle ColumnStyle Egyéb stíluselemek HeaderStyle, FooterStyle PagerStyle RowDataBound eseménynél lehet programozottan stílust állítani Internetes alkalmazásfejlesztés 185

186 GridView példa <asp:gridview ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataSourceID="LinqDataSource1"> <Columns> <asp:boundfield DataField="ProductNumber" HeaderText="ProductNumber" ReadOnly="True" SortExpression="ProductNumber" /> <asp:checkboxfield DataField="MakeFlag" HeaderText="MakeFlag" ReadOnly="True" SortExpression="MakeFlag" /> <asp:checkboxfield DataField="FinishedGoodsFlag" HeaderText="FinishedGoodsFlag" ReadOnly="True" SortExpression="FinishedGoodsFlag" /> <asp:boundfield DataField="Color" HeaderText="Color" ReadOnly="True" SortExpression="Color" /> <asp:boundfield DataField="ListPrice" HeaderText="ListPrice" ReadOnly="True" SortExpression="ListPrice" /> </Columns> </asp:gridview> Internetes alkalmazásfejlesztés 186

187 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ó <table> a <HeaderTemplate>-be kerül A <tr> az <ItemTemplate>-be A záró </table> pedig a <FooterTemplate>-be Adathordozó template elemek: ItemTemplate és AlternatingItemTemplate Az ItemTemplate az egyetlen kötelező elem Nem adathordozó template elemek: HeaderTemplate, FooterTemplate, SeparatorTemplate Internetes alkalmazásfejlesztés 187

188 Repeater példa <asp:repeater id="tabla1" runat="server"> <HeaderTemplate> Partnerek neve és címe: </HeaderTemplate> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem, "PartNev") %> (<%# DataBinder.Eval(Container.DataItem, "PartCim") %>) </ItemTemplate> <SeparatorTemplate>, </SeparatorTemplate> </asp:repeater> Tabla1.DataSource = ds ' Ez egy feltöltött DataSet Tabla1.DataMember = "Partner" Tabla1.DataBind() Internetes alkalmazásfejlesztés 188

189 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 Internetes alkalmazásfejlesztés 189

190 DetailsView vezérlőelem Egy adatrekord kezelésére Megjelenítés,Feltöltés,Módosítás GridView komplementere, ez is <table> lesz Jól kiegészítik egymást, itt is van AllowPaging Internetes alkalmazásfejlesztés 190

191 FormView vezérlőelem DetailsView-hoz hasonló Mi magunk adjuk meg az egyes nézetek képeit Űrlap alapú adatkezelés, nagy markup lesz belőle Megjelenítés, Feltöltés, Módosítás Internetes alkalmazásfejlesztés 191

192 TreeView és Menu vezérlőelem TreeView:Hierarchikus adatok megjelenítésére TreeNode objektumokból áll, melyek Text-je jelenik meg, és Value-ja kapcsolódik az adatforráshoz Selection vagy Navigation módban használható Ha a NavigateURL meg van adva, akkor navigációs a mód Elemek kinyithatóak és becsukhatóak XML adatforrás jó párja <DataBindings><asp:TreeNodeBinding. Menu: Ez is hierarchikus adatokhoz való (főleg menü) Statikus: <Items><asp:MenuItem> Dinamikus: XMLDataSource vagy SiteMapDataSource Xpath= /root/* révén a gyökérelem kihagyható Kinyíló menüpontok Navigálás Internetes alkalmazásfejlesztés 192

193 Mesteroldalak, témák, bőrök

194 Mesteroldal (Master Page) Internetes alkalmazásfejlesztés 194

195 Mesteroldal működése Mester oldal tartalmazza a közös tartalmat és tartalom helyőrzőket (<asp:contentplaceholder>) Tartalom oldal hivatkozik a mesterre és kitölti a helyőrzőket (<asp:content>) Site.master default.aspx Content- PlaceHolder Content Internetes alkalmazásfejlesztés 195

196 Mesteroldal definiálása Master %> <html> <body> <!-- Banner shown on all pages that use this master --> <table width="100%"> <tr> <td bgcolor="darkblue" align="center"> <span style="font-size: 36pt; color: white"> Mintapélda címsora</span> </td> </tr> </table> <!-- Placeholder for content below banner --> <asp:contentplaceholder ID="Main" RunAt="server" /> </body> </html> Internetes alkalmazásfejlesztés 196

197 Mesteroldal alkalmazása Egy adott ASPX lapra Page MasterPageFile="~/Site.master" %> <asp:content ContentPlaceHolderID="Mester" RunAt="server"> Ez a szöveg jelenik meg a mester oldalon definiált "Mester" nevű kontrolban </asp:content> Egy egész webhelyre (web.config-ban) <system.web> <pages masterpagefile="~/site.master" /> </system.web> Internetes alkalmazásfejlesztés 197

198 Default tartalom Tartalom helyőrzőknek lehet saját tartalmuk (alapértelmezett tartalom) Ez csak akkor jelenik meg, ha a tartalom oldal nem tölti ezt ki <%@ Master %>... <asp:contentplaceholder ID= Mester" RunAt="server"> Ez lesz az alapértelmezett tartalom. De csak akkor jelenik meg, ha a Content lapon nincs megadva semmi sem. <asp:contentplaceholder> Internetes alkalmazásfejlesztés 198

199 Mesteroldal mesteroldala Mesteroldalak egymásba ágyazhatók Ha egy mesteroldalnak van mesteroldala, akkor az alsóbb mesteroldal Tölti ki a felsőbb helyőrzőit De neki is lehetnek saját helyőrzői VS2005-ben csak forrás nézetben (nincs design támogatás) <! Level1.Master --> <%@ Master MasterPageFile="~/Level0.Master" %> <asp:content ContentPlaceHolderID="..." RunAt="server"> <asp:contentplaceholder ID="..." RunAt="server">... </asp:contentplaceholder> <asp:content> Internetes alkalmazásfejlesztés 199

200 Mesteroldal elérése kódból Page.MasterPageFile Master beállítása futási időben Pre_Init fázisban vagy hamarabb Page.Master System.Web.UI.Page új tulajdonsága Referencia a mester oldalra NULL ha nincs mesteroldal A mester vezérlőinek elérése A mester public és protected metódusainak és tulajdonságainak elérése A mester és a tartalom oldalak kód szintű összekapcsolása Internetes alkalmazásfejlesztés 200

201 Témák és bőrök Webhely stílusinformációinak csoportokba gyűjtése Bőr = vezérlők vizuális jellemzője.skin fájlokban tárolva Alapértelmezett és névvel ellátott bőrök SkinID nélküli, illetve SkinID-val ellátott Téma = bőrök halmaza, gyűjteménye Themes alkönyvtárban Globális és lokális témák Internetes alkalmazásfejlesztés 201

202 Téma alkalmazása Egy alkalmazás minden lapjára <configuration> <system.web> <pages theme="basicblue" /> <!-- Case Sensitive!! --> </system.web> </configuration> Egy lap minden vezérlőjére Page Theme="BasicBlue"> Kódból void Page_PreInit (Object sender, EventArgs e) { Page.Theme = "BasicBlue"; } Internetes alkalmazásfejlesztés 202

203 Felhasználói vezérlőelemek és komponensek készítése

204 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 <Head>, <Body> és <Form> nem lehet helyett direktívát használjuk <%@ Control Language="vb" Inherits="Elem1" Src="UIElem.vb" %> Információátadás a controlt tartalmazó lapnak Public Property padat As Integer Get Return Cint(txtAdat.Text) End Get End Property Internetes alkalmazásfejlesztés 204

205 User Control beépítése Regisztrálni kell az adott ASP.NET lapon Drag & drop a Solution Explorer-ből <%@ Register TagPrefix="FoNev" TagName="AlNev" Src="Kakukk.ascx" %> 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="vez1" runat="server"> FoNev:AlNev id="vez2" runat="server"> Információátadás a lap és a control között lblszam = Vez1.pAdat Vez1.pAdat = 23 ' A Public Property Get-je alapján ' A Public Property Set-je alapján Internetes alkalmazásfejlesztés 205

206 .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 Internetes alkalmazásfejlesztés 206

207 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. <%@ Import Namespace="projektnév.EtKomp" %> Dim x As New Szamla 2. Import nélkül: Dim x As New projektnév.etkomp.szamla Internetes alkalmazásfejlesztés 207

208 ASP.NET Membership

209 Membership szolgáltatás Felhasználók kezelése és azonosítása Deklaratív elérés: Web Site Admin Tool Programozott elérés: Membership API Egyszerűsíti az űrlap alapú hitelesítést Logika a felhasználó nevének és jelszavának ellenőrzésére, létrehozására stb. Felhasználók bejelentkezési adatainak, címének stb. tárolása Provider-alapú Internetes alkalmazásfejlesztés 209

210 Membership felépítés Vezérlők Login LoginStatus LoginView stb. API Membership MembershipUser Providerek SqlMembershipProvider ActiveDirectory- MembershipProvider stb. Adatok SQL Server Active Directory stb. Internetes alkalmazásfejlesztés 210

211 Aspnet_regsql.Exe SqlMembershipProvider által használt adatbázis létrehozását segítő eszköz Internetes alkalmazásfejlesztés 211

212 Felhasználó ellenőrzése if( Membership.ValidateUser( UserName.Text, Password.Text ) ) { RedirectFromLoginPage(UserName.Text,RememberMe.Checked ); } else { // TODO: Nem sikerült belépni } Internetes alkalmazásfejlesztés 212

213 Új felhasználó létrehozása try { Membership.CreateUser( Józsi", hahó", jozsi@szamalk.hu"); } catch( MembershipCreateUserException e ) { // Miért nem sikerült létrehozni a felhasználót switch( e.statuscode ) { case MembershipCreateStatus.DuplicateUsername: case MembershipCreateStatus.Duplicate case MembershipCreateStatus.InvalidPassword: default: } } Internetes alkalmazásfejlesztés 213

214 Felhasználó kitiltása if( Membership.ValidateUser( UserName.Text, Password.Text ) ) { MembershipUser user = Membership.GetUser( UserName.Text ); user.comment = "0"; // Hibás próbálkozások törlése RedirectFromLoginPage( UserName.Text, RememberMe.Checked ); } else { MembershipUser user = Membership.GetUser( UserName.Text ); if( user!= null ) { // Hibás próbálkozások számának növelése string count = Convert.ToInt32( user.comment ) + 1; // Ha 4-nél több, akkor kitiltjuk if( count > 4 ) user.isapproved = false; } } // Hibás próbálkozások számának frissítése user.comment = count.tostring(); Internetes alkalmazásfejlesztés 214

215 System.Web.Security.Membership osztály CreateUser DeleteUser FindUserByName GetAllUsers GetNumberOfUsersOnline GetUser() MembershipUser objektumot ad vissza UpdateUser ValidateUser Internetes alkalmazásfejlesztés 215

216 Web.Security.MembershipUser osztály Regisztrált felhasználót reprezentáló osztály. Tulajdonságok a felhasználó adatainak elkérésére / beállítására. A Membership osztály metódusai ezt adják vissza (pl. GetUser()) Internetes alkalmazásfejlesztés 216

217 Login vezérlők Külön template attól függően, hogy autentikált-e a felhasználó A bejelentkezett felhasználó neve LoginName Bejelentkező control Login LoginStatus Kétféle link: Bejelentkezés vagy Kijelentkezés LoginView Tagság és szerepkör kezelés CreateUser- Wizard Change- Password Password- Recovery Regisztráció Jelszócsere t küld vagy kérdést tesz fel- Login-nel együtt használjuk Internetes alkalmazásfejlesztés 217

218 Role manager szolgáltatás Szerep alapú jogosultság kezelés készen Deklaratív elérés: Web Site Admin Tool Programozott elérés: Roles API Egyszerűbb szerep alapú jogosultság kezelés űrlap alapú hitelesítés esetén Minden kérésnél szerepekhez rendeli a felhasználót Tárolja a szerepkörök adatait Provider-alapú Internetes alkalmazásfejlesztés 218

219 Role manager séma Vezérlők Login LoginStatus LoginView stb. Role API Roles Providerek SqlRole- Provider AuthorizationStore- RoleProvider WindowsToken- RoleProvider stb. Adatok SQL Server Authorization Manager stb. Internetes alkalmazásfejlesztés 219

220 Role manager bekapcsolása Alapértelmezés szerint kikapcsolt Web.config: <configuration> <system.web> <rolemanager enabled="true" /> </system.web> </configuration> Internetes alkalmazásfejlesztés 220

221 Roles osztály System.Web.Security Átjáró a Role Management API-hoz Legfontosabb feladatokhoz statikus függvények Szerepek létrehozása / törlése Felhasználók szerephez rendelése Felhasználók eltávolítása egy szerepből Provider beállítások elérése Internetes alkalmazásfejlesztés 221

222 Roles osztály használata // Ha nem létezik a szerepkör, létrehozzuk if(!roles.roleexists( Raktaros" ) ) { Roles.CreateRole( Raktaros" ); } // Elkérjük az aktuális felhasználót string name = Membership.GetUser().Username; // Hozzáadjuk a szerepkörhöz Roles.AddUserToRole( name, Raktaros" ); Internetes alkalmazásfejlesztés 222

223 Profilok használata Felhasználói adatok perzisztens tárolása Erősen típusos elérés ( Session) Csoportosítás, struktúra használata Perzisztens ( Session) Bejelentkezett és névtelen felhasználóknak Saját típusok támogatása Elérés HttpProfileBase segítségével Provider-alapú Internetes alkalmazásfejlesztés 223

224 Profil séma Profilok ProfileBase ProfileCommon Profil providerek SqlProfileProvider stb. Profil adatok SQL Server SQL Server Express stb. 224 Internetes alkalmazásfejlesztés 224

225 Profil definiálása és elérése <profile> <poperties> <!-- String tulajdonságok --> <add name="title"/> <!-- Guid tulajdonság --> <add name="authorid" type="system.guid"/> <!-- Összetett tulajdonság --> <add name="photo" type="system.drawing.image" serializeas="binary"/> </properties> </profile> // Cím és téma beállítása Profile.Title = Raktári rendszer"; // Szerző azonosítójának beállítása Profile.AuthorID = new Guid(user.ProviderUserKey.ToString()); // Fénykép beállítása Profile.Photo = myphoto; Internetes alkalmazásfejlesztés 225

226 Web config

227 Web config felépítése <?xml version="1.0"?> <configuration xmlns=" <appsettings/> <connectionstrings/> <system.web> <compilation debug="false"/> <authentication mode="windows"/> <!-- <customerrors mode="remoteonly" defaultredirect="genericerrorpage.htm"> <error statuscode="403" redirect="noaccess.htm"/> <error statuscode="404" redirect="filenotfound.htm"/> </customerrors> --> </system.web> </configuration> Internetes alkalmazásfejlesztés 227

228 system.web fontosabb szekciói <system.web> <anonymousidentification> <authentication> <authorization> <browsercaps> <caching> <compilation> <customerrors> <deployment> <globalization> <httpcookies> <httphandlers> <httpmodules> <httpruntime> <identity> <machinekey> <membership> <pages> <processmodel> <profile> <rolemanager> <sessionstate> <trace> </system.web> Internetes alkalmazásfejlesztés 228

229 Web.config elérése kódból WebConfigurationManager.GetSection( ) xxxsection osztályú objektumot ad vissza, illetve erre castolható Mindegyik szekció a <system.web> alatt van.appsettings( ).ConnectionStrings( ).OpenWebConfiguration(Nothing) ad vissza egy Configuration osztályú objektumot, ha módosítani akarunk. Erre kell.getsection, majd.save-vel menteni A Nothing helyett a subfolder relatív címe kell, ha nem a gyökér web.config-et akarjuk módosítani Internetes alkalmazásfejlesztés 229

230 web.config titkosítása Bizalmas információ a web.config-ban Pl. Connectionstring aspnet_regiis titkosítja A.NET fel tudja olvasni, nekünk nincs dolgunk vele aspnet_regiis pef ConnectionStrings c:\myproject prov DataProtectionConfigurationProvider Internetes alkalmazásfejlesztés 230

231 Erőforrás-kezelés, lokalizáció, globalizáció

232 Kakukk.aspx.resx Implicit lokalizáció Kakukk.aspx.en-us.resx Kakukk.aspx.hu.resx Generate Local Resource meta:resourcekey elemek bekerülnek a webcontrolokhoz Alapértelmezésben a böngésző beállított nyelvét használja <%@ Page uiculture= es %> App_Localresources mappába kerülnek Internetes alkalmazásfejlesztés 232

233 Explicit lokalizáció Kozos.hu.resx App_Globalresources mappába kerül Felhasználás: <asp:label Text= <%$ Resources:filenév, tagnév% /> Label1.Text=Resources.Filenév.Tagnév (strong binding) GetLocalResourceObject( Button1.Text ) GetGlobalResourceObject( Filenév, Tagnév ) Internetes alkalmazásfejlesztés 233

234 Page.Culture= en-us Page.UiCulture= es Ez a neutrális kultúra Kultúra beállítása web.config-ban is beállítható <globalization uiculture= es direktívában is beállítható Internetes alkalmazásfejlesztés 234

235 Web szolgáltatás Web Service

236 Web szolgáltatás működési modellje Internetes alkalmazásfejlesztés 236

MDAC - Microsoft Data Access Components

MDAC - Microsoft Data Access Components MDAC - Microsoft Data Access Components 1 ODBC Open DataBase Connectivity ODBC software API adatbáziskezeléshez. Nyelvfüggetlen, Adatbázisfüggetlen Operációsrendszer-független Standard adathozzáférés SQL

Részletesebben

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

Bevezetés Alapok Kontrolok Életciklus ASP.NET 1 / 33 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

Részletesebben

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 12. előadás Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto A jegyzet az ELTE Informatikai Karának 2014.

Részletesebben

Internet alapú alkalmazásfejlesztés gyakorlat

Internet alapú alkalmazásfejlesztés gyakorlat Internet alapú alkalmazásfejlesztés gyakorlat 1 ASPX feladatok (adatkezelés nélkül) 1-1 Egyszerű HTML űrlap készítése Hozzunk létre egy egyszerű HTML file-t, melyen egy text és egy password típusú beviteli

Részletesebben

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

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 Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése Készítette: Simon Nándor Integrált fejlesztő környezet Egységes (vizuális) fejlesztési lehetőségek Bőséges segítség (help) Hibakeresési, nyomkövetési

Részletesebben

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

Webshop készítése ASP.NET 3.5 ben I. Webshop készítése ASP.NET 3.5 ben I. - Portál kialakíása - Mesteroldal létrehozása - Témák létrehozása Site létrehozása 1. File / New Web site 2. A Template k közül válasszuk az ASP.NEt et, nyelvnek (Language)

Részletesebben

Adatbázis kezelés alapjai I.

Adatbázis kezelés alapjai I. A gyakorlaton megoldandó feladat Egy leegyszerűsített online könyváruházat fogunk elkészíteni, amely két oldalból fog mindösszesen állni. Az egyik lapon kilistázzuk a legfrissebb 5 könyvet, míg a másikon

Részletesebben

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

ASP-s alkalmazás készítés Áttekintés Megismerjük az ASP-s alkalmazások készítésének alapjait a Visual Studio 2010 környezetben. Megfigyeljük egy egyszerű Solution felépítését, a Web Form-okat, a Web.Config fájlt Először hagyományos

Részletesebben

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

Bevezetés Működési elv AJAX keretrendszerek AJAX AJAX Áttekintés Bevezetés Működési elv AJAX-ot támogató keretrendszerek Áttekintés Bevezetés Működési elv AJAX-ot támogató keretrendszerek Áttekintés Bevezetés Működési elv AJAX-ot támogató keretrendszerek

Részletesebben

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

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group COMET webalkalmazás fejlesztés Tóth Ádám Jasmin Media Group Az előadás tartalmából Alapproblémák, fundamentális kérdések Az eseményvezérelt architektúra alapjai HTTP-streaming megoldások AJAX Polling COMET

Részletesebben

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

George Shepherd. 1. A webes alkalmazások alapjai 1 George Shepherd Köszönetnyilvánítás Bevezetés Az ASP.NET 2.0 fejlesztése A klasszikus ASP ASP.NET 1.0 és 1.1 ASP.NET 2.0 Néhány szó a.net-futtatórendszerről A könyv használatáról Kinek szól a könyv? A

Részletesebben

NONPROFIT ÉRDEKVÉDELMI SZERVEZETEK FEJLESZTÉSE (PL.3346) Java-script nyelv. programozás alapjai. Haramia László

NONPROFIT ÉRDEKVÉDELMI SZERVEZETEK FEJLESZTÉSE (PL.3346) Java-script nyelv. programozás alapjai. Haramia László NONPROFIT ÉRDEKVÉDELMI SZERVEZETEK FEJLESZTÉSE (PL.3346) Java-script nyelv programozás alapjai Haramia László JavaScript szerepe Netscape fejlesztette ki LiveScript Interaktív weboldalak dinamikus kezelhetősége

Részletesebben

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

Eddig még nem használt vezérlőket is megismerünk: PlaceHolder, RadioButtonList. Áttekintés Alapesetben az ASP.NET-ben az esemény bekövetkezésekor az oldalunk teljesen újratöltődik és nem tárolja el a kliens állapotát automatikusan. Ezért kell foglalkoznunk a Szerver vagy Kliens oldali

Részletesebben

A.NET keretrendszer (.NET Framework) három alapvetõ összetevõbõl áll:

A.NET keretrendszer (.NET Framework) három alapvetõ összetevõbõl áll: Bevezetés Üdvözöljük a C# adatbázis-programozás mesteri szinten tanfolyamán! Amint az Olvasó bizonyára tudja, a technológiai forradalom következõ lépcsõje elkerülhetetlenül a.net felület lesz. A.NET erõssége,

Részletesebben

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban Adabáziselérés ODBC-n keresztül utasításokkal C#-ban 1. Előkészítés Access adatbázis lemásolása, ODBC DSN létrehozása Másoljuk le az alábbiakat: Mit Honnan Hova list.mdb p:\johanyák Csaba\Vizualis programozas\data\

Részletesebben

Adatbázis kezelés Delphiben. SQL lekérdezések

Adatbázis kezelés Delphiben. SQL lekérdezések Adatbázis kezelés Delphiben. SQL lekérdezések Structured Query Language adatbázisok kezelésére szolgáló lekérdező nyelv Szabályok: Utasítások tetszés szerint tördelhetők Utasítások végét pontosvessző zárja

Részletesebben

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK Horváth Győző Egyetemi adjunktus 1117 Budapest, Pázmány Péter sétány 1/C, 2.420 Tel: (1) 372-2500/1816 2 Ismétlés Ismétlés 3 Fájl/Adatbázis 3 4 Szerver 2 CGI

Részletesebben

Adatbázisok I. Jánosi-Rancz Katalin Tünde 327A 1-1

Adatbázisok I. Jánosi-Rancz Katalin Tünde 327A 1-1 Adatbázisok I. 9 Jánosi-Rancz Katalin Tünde tsuto@ms.sapientia.ro 327A 1-1 Adatbáziskezelés C#-ban A.NET környezet lehetőséget biztosít számos adatbázis-típushoz való kapcsolódásra, ezekhez különböző motorokat

Részletesebben

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

A szerzõrõl... xi Bevezetés... xiii TARTALOMJEGYZÉK A szerzõrõl...................................................... xi Bevezetés...................................................... xiii I. rész A Visual Basic 2005 környezet 1. óra Irány

Részletesebben

Adatbázis-kezelés ODBC driverrel

Adatbázis-kezelés ODBC driverrel ADATBÁZIS-KEZELÉS ODBC DRIVERREL... 1 ODBC: OPEN DATABASE CONNECTIVITY (NYÍLT ADATBÁZIS KAPCSOLÁS)... 1 AZ ODBC FELÉPÍTÉSE... 2 ADATBÁZIS REGISZTRÁCIÓ... 2 PROJEKT LÉTREHOZÁSA... 3 A GENERÁLT PROJEKT FELÉPÍTÉSE...

Részletesebben

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

ASP.NET. ASP vs. ASP.NET. ASP.NET előnyök (ASP-hez képest) ASP - Active Server Pages ASP.NET Áttekintés ASP.NET Bevezetés Alapok Szerver-oldali vezérlők (kontrolok) ASP.NET oldal életciklusa, eseménymodell 1 / 30 2 / 30 ASP vs. ASP.NET ASP.NET előnyök (ASP-hez képest) ASP - Active Server Pages

Részletesebben

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

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens Hozzunk létre egy ASP.NET Empty Web Site projektet! A projekt neve legyen WCFAPP1. Ez

Részletesebben

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben Java GUI készítése, Oracle kapcsolódás JDBC-vel A jelen anyagban egy egyszerűsített megközelítéssel vizsgáljuk

Részletesebben

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS 2.ELŐADÁS A VB programozási nyelv Az Excel programozása 2 A VB programozási nyelv Adattípusok Adatok kezelése Vezérlőszerkezetek Adattípusok és műveletek Egész adattípusok

Részletesebben

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

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT alapjai, bevezetés Vincze Dávid Miskolci Egyetem, IIT vincze.david@iit.uni-miskolc.hu PHP Personal Home Page (Tools) Script nyelv -> interpretált Elsősorban weboldal (dinamikus) tartalmak előállítására

Részletesebben

HTML, XML szerkesztés

HTML, XML szerkesztés HTML, XML szerkesztés Vezető: Majzik Zsuzsa Előadó: Rigó Ernő http://gdf.tricon.hu/html Előzmények 1960-as évek: GML IBM SGML Standard Generalized Markup Language 1986-os

Részletesebben

Web-fejlesztés NGM_IN002_1

Web-fejlesztés NGM_IN002_1 Web-fejlesztés NGM_IN002_1 Rich Internet Applications RIA Vékony-kliens generált (statikus) HTML megjelenítése szerver oldali feldolgozással szinkron oldal megjelenítéssel RIA desktop alkalmazások funkcionalitása

Részletesebben

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

Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez Székely István Debreceni Egyetem, Informatikai Intézet A rendszer felépítése szerver a komponenseket szolgáltatja Java nyelvű implementáció

Részletesebben

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

WWW Kliens-szerver Alapfogalmak Technológiák Terv. Web programozás 1 / 31 Web programozás 2011 2012 1 / 31 Áttekintés Mi a web? / A web rövid története Kliens szerver architektúra Néhány alapfogalom Kliens- illetve szerver oldali technológiák áttekintése Miről lesz szó... (kurzus/labor/vizsga)

Részletesebben

Web programozás. 3. előadás

Web programozás. 3. előadás Web programozás 3. előadás Űrlapok form label for input type select, option value szöveges mező: text textarea jelszó: password rádiógomb: radio jelölőnégyzet: checkbox küldés gomb: submit Web programozás

Részletesebben

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

1. fejezet Bevezetés a web programozásába (Balássy György munkája)... 11 Az internet működése... 11 Tartalomjegyzék 1. fejezet Bevezetés a web programozásába (Balássy György munkája)... 11 Az internet működése... 11 Géptől gépig... 11 Számok a gépeknek... 13 Nevek az embereknek... 14 Programok egymás

Részletesebben

Multimédia 2017/2018 II.

Multimédia 2017/2018 II. Multimédia 2017/2018 II. 1. gyakorlat HTML5, CSS3 alapok Alapvető HTML5 elemek Egyszerű HTML dokumentum Oldal cime

Részletesebben

Adatbázis rendszerek II. Adatbázis elérése C# kliens programból ADO.NET API-n keresztül

Adatbázis rendszerek II. Adatbázis elérése C# kliens programból ADO.NET API-n keresztül Adatbázis rendszerek II. Adatbázis elérése C# kliens programból ADO.NET API-n keresztül Adatbázis elérés lehetőségei absztrakciós rétegen keresztül: - Open DataBase Connectivity (ODBC), közös függvényhalmaz,

Részletesebben

Adatbázis-kezelés. Harmadik előadás

Adatbázis-kezelés. Harmadik előadás Adatbázis-kezelés Harmadik előadás 39 Műveletek csoportosítása DDL adat definiálás Objektum létrehozás CREATE Objektum törlés DROP Objektum módosítás ALTER DML adat módosítás Rekord felvitel INSERT Rekord

Részletesebben

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

Adatbázis-lekérdezés. Az SQL nyelv. Makány György Adatbázis-lekérdezés Az SQL nyelv Makány György SQL (Structured Query Language=struktúrált lekérdező nyelv): relációs adatbázisok adatainak visszakeresésére, frissítésére, kezelésére szolgáló nyelv. Születési

Részletesebben

I. rész: A Microsoft Visual C# és a Microsoft Visual Studio 2005 bemutatása. 1. Üdvözöljük a C# világában! 3

I. rész: A Microsoft Visual C# és a Microsoft Visual Studio 2005 bemutatása. 1. Üdvözöljük a C# világában! 3 Köszönetnyilvánítás Bevezetés Honnan kezdjük a könyv olvasását? A könyvben használt konvenciók és egyéb jelölések Konvenciók Egyéb jelölések Online kiegészítő tartalom Technológiai frissítések Rendszerkövetelmények

Részletesebben

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

Access adatbázis elérése OLE DB-n keresztül Access adatbázis elérése OLE DB-n keresztül Készítsünk egy grafikus felülető alkalmazást, ami lehetıvé teszi egy Access adatbázisban tárolt hallgatói adatok (EHA, Név, e-mail cím) lekérdezését (összes

Részletesebben

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

7. Előadás. Makrók alkalmazása. Salamon Júlia. Előadás I. éves mérnök hallgatók számára 7. Előadás Makrók alkalmazása. Salamon Júlia Előadás I. éves mérnök hallgatók számára Feltételes ciklusok Ha a ciklusváltozó intervallumát, előre nem tudjuk mert például a program futása során megszerzett

Részletesebben

Széchenyi István Egyetem www.sze.hu/~herno

Széchenyi István Egyetem www.sze.hu/~herno Oldal: 1/6 A feladat során megismerkedünk a C# és a LabVIEW összekapcsolásának egy lehetőségével, pontosabban nagyon egyszerű C#- ban írt kódból fordítunk DLL-t, amit meghívunk LabVIEW-ból. Az eljárás

Részletesebben

Elemi alkalmazások fejlesztése IV. Adatbázis-kezelés ActiveX vezérlıkkel - 1

Elemi alkalmazások fejlesztése IV. Adatbázis-kezelés ActiveX vezérlıkkel - 1 ADATBÁZIS-KEZELÉS ACTIVEX VEZÉRLİK ALKALMAZÁSÁVAL I.... 1 ACTIVEX... 1 ACTIVEX CONTROL... 1 SAJÁT ACTIVEX VEZÉRLİ LÉTREHOZÁSA... 1 circctrl.cpp... 2 Háttérszín tulajdonság hozzárendelése a vezérlıhöz...

Részletesebben

Eseményvezérelt alkalmazások fejlesztése II 10. előadás. Objektumrelációs adatkezelés (Entity Framework) Cserép Máté

Eseményvezérelt alkalmazások fejlesztése II 10. előadás. Objektumrelációs adatkezelés (Entity Framework) Cserép Máté Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 10. előadás (Entity Framework) Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu Készült Giachetta Roberto

Részletesebben

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai SQL ALAPOK Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai BEVEZETÉS SQL: Structured Query Language Strukturált Lekérdező Nyelv Szabvány határozza meg, azonban számos nyelvjárása létezik

Részletesebben

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

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft Flash és PHP kommunikáció Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft A lehetőségek FlashVars External Interface Loadvars XML SOAP Socket AMF AMFphp PHPObject Flash Vars Flash verziótól függetlenül

Részletesebben

JavaServer Pages (JSP) (folytatás)

JavaServer Pages (JSP) (folytatás) JavaServer Pages (JSP) (folytatás) MVC architektúra a Java kiszolgálón Ügyfél (Böngésző) 5 View elküldi az oldal az ügyfélez View (JSP) Ügyfél üzenet küldése a vezérlőnek 1 3 4 Kérelem továbbítása a megjelenítőnek

Részletesebben

Webes alkalmazások fejlesztése

Webes alkalmazások fejlesztése Webes alkalmazások fejlesztése 3. gyakorlat Authentikáció, adatok feltöltése Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu Authentikáció Manapság már elvárás, hogy a felhasználó regisztrálni

Részletesebben

JAVA webes alkalmazások

JAVA webes alkalmazások JAVA webes alkalmazások Java Enterprise Edition a JEE-t egy specifikáció definiálja, ami de facto szabványnak tekinthető, egy ennek megfelelő Java EE alkalmazásszerver kezeli a telepített komponensek tranzakcióit,

Részletesebben

Adatbázisok* tulajdonságai

Adatbázisok* tulajdonságai Gazdasági folyamatok térbeli elemzése 4. előadás 2010. 10. 05. Adatbázisok* tulajdonságai Rendezett, logikailag összefüggő és meghatározott szempont szerint tárolt adatok és/vagy információk halmaza Az

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak

Részletesebben

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17 Adatbázisok 8. gyakorlat SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT 2015. október 26. 2015. október 26. Adatbázisok 1 / 17 SQL nyelv Structured Query Language Struktúrált lekérdez

Részletesebben

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) közönséges felhasználók SQL*Plus Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP dolgozó), DEPT osztály) "közönséges" felhasználók Adatszótár: metaadatokat tartalmazó, csak olvasható táblák táblanév-prefixek:

Részletesebben

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása DBMS spektrum Excel ODBC-ADO API Tevékenységpontok: - DBMS telepítés - ODBC driver telepítése - DSN létrehozatala -Excel-ben ADO bevonása - ADOConnection objektum létrehozatala - Open: kapcsolat felvétel

Részletesebben

ASP.NET 2.0 (Whidbey)

ASP.NET 2.0 (Whidbey) ASP.NET 2.0 (Whidbey) Mi várható a 2005. évi ASP.NET-ben? Client Callback (Ügyféloldali visszahívás) Kevéssé reklámozott, de nagyon hasznos és trükkös új szolgáltatás a Client Callback. Segítségével anélkül

Részletesebben

eseményvezérelt megoldások Vizuális programozás 5. előadás

eseményvezérelt megoldások Vizuális programozás 5. előadás Programozási architektúrák, eseményvezérelt megoldások Vizuális programozás 5. előadás Komponens-alapú programozás Kezdelteges formája, az első komponensek: DLL-ek Black box ujrahasznosítható kód Függvényeket

Részletesebben

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

12.óra jquery Framework #1. Gyimesi Ákos 12.óra jquery Framework #1 Gyimesi Ákos gyimesi.akos@gmail.com http://webprog.gy-i-m.com 12.óra jquery Framework #1 Miről lesz szó? JavaScript nyelv alapjai plusz: a JavaScript objektummodellje JavaScript

Részletesebben

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu Számonkérés 2 Papíros (90 perces) zh az utolsó gyakorlaton. Segédanyag nem használható Tematika 1. félév 3 Óra Dátum Gyakorlat 1. 2010.09.28.

Részletesebben

Webes alkalmazások fejlesztése 3. előadás. Objektumrelációs adatkezelés (Entity Framework) Cserép Máté

Webes alkalmazások fejlesztése 3. előadás. Objektumrelációs adatkezelés (Entity Framework) Cserép Máté Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 3. előadás Objektumrelációs adatkezelés (Entity Framework) Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu Microsoft

Részletesebben

MVC. Model View Controller

MVC. Model View Controller MVC Model View Controller Szoftver fejlesztés régen Console-based alkalmazások Pure HTML weboldalak Assembly, C Tipikusan kevés fejlesztő (Johm Carmack Wolfenstein, Doom, Quake..) Szűkös erőforrások optimális

Részletesebben

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010 Programozási technikák Pál László Sapientia EMTE, Csíkszereda, 2009/2010 12. ELŐADÁS Adatbázis-kezelés Delphiben 2 Adatmegjelenítés lekérdezés segítségével A táblákhoz hasonlóan a lekérdezések is az adatbázis

Részletesebben

OOP és UML Áttekintés

OOP és UML Áttekintés OOP és UML Áttekintés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) OOP és UML Áttekintés 2013 1 / 32 Tartalom jegyzék 1 OOP Osztály Öröklődés Interfész, Absztrakt Osztály Kivétel kezelés

Részletesebben

Web programoz as 2009 2010

Web programoz as 2009 2010 Web programozás 2009 2010 Áttekintés A web rövid története Kliens szerver architektúra Néhány alapfogalom Kliens- illetve szerver oldali technológiák áttekintése Áttekintés: miről lesz szó (kurzus/labor/vizsga)

Részletesebben

Vizuális programozás gyakorlat

Vizuális programozás gyakorlat Vizuális programozás gyakorlat A gyakorlat célja az entitás modell készítésének és az MS SQLEXPRESS használatának gyakorlása. A gyakorlat során egy könyvtári szoftver adatmodelljét tervezzük meg, valamint

Részletesebben

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai 8. gyakorlat Structured Query Language Struktúrált lekérdező nyelv A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai DDL (Data Definition Language) adatstruktúra definiáló

Részletesebben

A JavaServer Pages (JSP)

A JavaServer Pages (JSP) A JavaServer Pages (JSP) Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 03. 27. JSP Harmadik generáci ciós s WEB szerver A dinamikus lap a tipikus Dinamikus

Részletesebben

Java programozási nyelv 11. rész Adatbázis-programozás

Java programozási nyelv 11. rész Adatbázis-programozás Java programozási nyelv 11. rész Adatbázis-programozás Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/20 Tartalomjegyzék

Részletesebben

Google Web Toolkit. Elek Márton. Drótposta kft.

Google Web Toolkit. Elek Márton. Drótposta kft. Google Web Toolkit Elek Márton Drótposta kft. Tartalom A GWT általában Java forrás, Web mód, Hosted mód Speciális szolgáltatások History kezelés, távoli eljárás hívás, Külső függvénykönyvtárak GWT-Ext,

Részletesebben

XML (DTD) (XSD) DOM SAX XSL. XML feldolgozás

XML (DTD) (XSD) DOM SAX XSL. XML feldolgozás XML feldolgozás Áttekintés XML -bevezetés (XML érvényességének vizsgálata (DTD, XSD)) XML feldolgozók (DOM, SAX) XML transformációk (XSLT) Áttekintés XML -bevezetés (XML érvényességének vizsgálata (DTD,

Részletesebben

Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović chole@vts.su.ac.rs

Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović chole@vts.su.ac.rs Szabadkai Műszaki Szakfőiskola Web programozás dr Zlatko Čović chole@vts.su.ac.rs 1 DOM események (events) JavaScriptben interaktív programok készítésére az események által vezérelt programozási modellt

Részletesebben

AJAX Framework építés. Nagy Attila Gábor Wildom Kft. nagya@wildom.com

AJAX Framework építés. Nagy Attila Gábor Wildom Kft. nagya@wildom.com AJAX Framework építés Wildom Kft. nagya@wildom.com Mi az AJAX? Asynchronous JavaScript and XML Ennél azért kicsit több: Koncepció váltás a felhasználói interface tervezésben Standard kompatibilis HTML!

Részletesebben

Internet technológiák

Internet technológiák Szabadkai Műszaki Szakfőiskola Internet technológiák dr Zlatko Čović chole@vts.su.ac.rs 1 XHTML űrlapok 2 XHTML űrlapok Minden űrlap jelölőelem a: form{action, enctype, method} Űrlaptartalom /form jelölőelem

Részletesebben

XML alapú adatbázis-kezelés. (Katona Endre diái alapján)

XML alapú adatbázis-kezelés. (Katona Endre diái alapján) XML alapú adatbázis-kezelés Adatstruktúrák: Digitális kép, hang: teljesen strukturálatlan A web (linkek): részben strukturált Relációs: teljesen strukturált Motiváció: (Katona Endre diái alapján) Ismeretlen

Részletesebben

API tervezése mobil környezetbe. gyakorlat

API tervezése mobil környezetbe. gyakorlat API tervezése mobil környezetbe gyakorlat Feladat Szenzoradatokat gyűjtő rendszer Mobil klienssel Webes adminisztrációs felület API felhasználói Szenzor node Egyirányú adatküldés Kis számítási kapacitás

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java2 / 1 Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2009. 02. 09. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve

Részletesebben

Készítette: Gál Tamás. A tananyag programozott változata itt érhető el: Webfejlesztés

Készítette: Gál Tamás. A tananyag programozott változata itt érhető el: Webfejlesztés HLTML 5 formok gyorstalpaló Készítette: Gál Tamás A tananyag programozott változata itt érhető el: Webfejlesztés (http://webfejlesztes.gtportal.eu/) Creative Commons Nevezd meg!-ne add el!-így add tovább!

Részletesebben

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7 1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7 1.1. Új virtuális gép és Windows Server 2008 R2 Enterprise alap lemez létrehozása 1.2. A differenciális lemezek és a két új virtuális

Részletesebben

Webszolgáltatások készítése.net alapokon -

Webszolgáltatások készítése.net alapokon - Webszolgáltatások készítése.net alapokon - Egyszerűbb webszolgáltatások készítése Ha kérdése vagy észrevétele van csaba.biro.ekf@gmail.com A témakörhöz tartozó elődadás anyaga az alábbi helyről tölthető

Részletesebben

Bevezetés: az SQL-be

Bevezetés: az SQL-be Bevezetés: az SQL-be Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 2.3. Relációsémák definiálása SQL-ben, adattípusok, kulcsok megadása 02B_BevSQLsemak

Részletesebben

Web-technológia PHP-vel

Web-technológia PHP-vel Web-technológia PHP-vel A PHP programnyelv 2, futtatókörnyezet beálĺıtások Erős Bence February 26, 2013 Erős Bence () Web-technológia PHP-vel February 26, 2013 1 / 19 Szuperglobális változók $ GET : request

Részletesebben

A JavaServer Pages (JSP)

A JavaServer Pages (JSP) A JavaServer Pages (JSP) Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 03. 27. JSP Harmadik generáci ciós s WEB szerver A dinamikus lap a tipikus Dinamikus

Részletesebben

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

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem A Java EE 5 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 04. 17. A Java EE 5 platform A Java EE 5 plattform A J2EE 1.4 után következő verzió. Alapvető továbbfejlesztési

Részletesebben

OOP #14 (referencia-elv)

OOP #14 (referencia-elv) OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet

Részletesebben

A JavaScript főbb tulajdonságai

A JavaScript főbb tulajdonságai JavaScript alapok A JavaScript főbb tulajdonságai Script nyelv azaz futás közben értelmezett, interpretált nyelv Legfőbb alkalmazási területe: a HTML dokumentumok dinamikussá, interaktívvá tétele Gyengén

Részletesebben

Webes űrlapok és az XForms ajánlás

Webes űrlapok és az XForms ajánlás Debreceni Egyetem Informatikai Kar Webes űrlapok és az XForms ajánlás Témavezető: Dr. Adamkó Attila egyetemi adjunktus Készítette: Hetei György programtervező Informatikus Debrecen 2010 Bevezetés 3 A HTML

Részletesebben

BASH script programozás II. Vezérlési szerkezetek

BASH script programozás II. Vezérlési szerkezetek 06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van

Részletesebben

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama 10. évfolyam: 105 óra 11. évfolyam: 140 óra 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra 36 óra OOP 14 óra Programozási

Részletesebben

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 9. óra. Kocsis Gergely, Kelenföldi Szilárd

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 9. óra. Kocsis Gergely, Kelenföldi Szilárd Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása 9. óra Kocsis Gergely, Kelenföldi Szilárd 2015.04.30. PowerShell PowerShell alapok Bemutatás: 2006 PowerShell 1.0 Telepíthető

Részletesebben

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos PASzSz Kilencedik témakör: Lazarus-Firebird Készítette: Dr. Kotsis Domokos Az SQLdb fülön IBConnection Kapcsolat A Data Access fülön Az SQLdb fülön... Select 1. Az SQLQuery lezárása. (Active := false,

Részletesebben

A C# programozási nyelv alapjai

A C# programozási nyelv alapjai A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet

Részletesebben

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk. JSON tutorial Készítette: Cyber Zero Web: www.cyberzero.tk E-mail: cyberzero@freemail.hu Msn: cyberzero@mailpont.hu Skype: cyberzero_cz Fb: https://www.facebook.com/cyberzero.cz BEVEZETÉS: A JSON (JavaScript

Részletesebben

A JavaServer Pages (JSP)

A JavaServer Pages (JSP) A JavaServer Pages (JSP) Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem JSP WEB-es alkalmazások fejlődéstörténete A WEB-es alkalmazások fejlődését nyomon követve három nagy korszakot

Részletesebben

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai: 8. Gyakorlat SQL SQL: Structured Query Language; a relációs adatbáziskezelők szabványos, strukturált lekérdező nyelve SQL szabványok: SQL86, SQL89, SQL92, SQL99, SQL3 Az SQL utasításokat mindig pontosvessző

Részletesebben

Webes alapozás. url, http, szerver oldal

Webes alapozás. url, http, szerver oldal Webes alapozás url, http, szerver oldal http://localhost:8080/demo1/default.cshtml? name=vision%20-%20software;param2=value2#section1 URI, URL, URN "Egységes erőforrás-azonosító" schema name : schame specific

Részletesebben

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2 Tartalomjegyzék Tartalomjegyzék 1 Az SQL nyelv 1 Az SQL DDL alapjai 2 Adatbázis parancsok 2 Táblaparancsok 2 A táblázat létrehozása 2 A táblázat módosítása 3 A tábla törlése 3 Indextábla létrehozása 3

Részletesebben

C#, OOP. Osztályok tervezése C#-ban

C#, OOP. Osztályok tervezése C#-ban C#, OOP Osztályok tervezése C#-ban OOP Létrehozás (creating) Megszüntetés (destroying) Túlterhelés (overlading) Felsorolás típus (enumerated types) 2 Hajó osztály Sailboat class using System; class Sailboat

Részletesebben

SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő PHP folytatás JDBC, ODBC

SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő PHP folytatás JDBC, ODBC SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS A MySQL adatbáziskezelő PHP folytatás JDBC, ODBC ADATBÁZISOK Adatbázis = adott formátum és rendszer szerint tárolt adatok összessége. DBMS feladatai: adatstruktúra (adatbázisséma)

Részletesebben

"Egységes erdélyi felnőttképzés Kárpát-medencei hálózatban" JAVA ALAPÚ WEBPROGRAMOZÁS. M6 Modul: A DOM Modell

Egységes erdélyi felnőttképzés Kárpát-medencei hálózatban JAVA ALAPÚ WEBPROGRAMOZÁS. M6 Modul: A DOM Modell "Egységes erdélyi felnőttképzés Kárpát-medencei hálózatban" JAVA ALAPÚ WEBPROGRAMOZÁS M6 Modul: A DOM Modell Bevezető - platform- és nyelvfüggetlen programozási interfész - tartalom-, szerkezet- és stílus-elérés/módosítás

Részletesebben

Symfony kurzus 2014/2015 I. félév. Controller, Routing

Symfony kurzus 2014/2015 I. félév. Controller, Routing Symfony kurzus 2014/2015 I. félév Controller, Routing Request - Response GET / HTTP/1.1 Host: xkcd.com Accept: text/html User-Agent: Mozilla/5.0 (Macintosh) HTTP/1.1 200 OK Date: Sat, 02 Apr 2011 21:05:05

Részletesebben

PHP. Adatbázisok gyakorlat

PHP. Adatbázisok gyakorlat PHP Adatbázisok gyakorlat Mi a PHP? A PHP (PHP: Hypertext Preprocessor) egy nyílt forráskódú, számítógépes szkriptnyelv, legfőbb felhasználási területe a dinamikus weboldalak készítése. A PHP-kódunk általában

Részletesebben

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit. Sapientia - EMTE 2008 Az előadás célja JPA - - perzisztencia ORM - - Objektumrelációs leképzés - Entitásbabok Állandóság Mechanizmus amely során az alkalmazás adatai megőrzésre kerülnek valamely perzisztens

Részletesebben

AWK programozás, minták, vezérlési szerkezetek

AWK programozás, minták, vezérlési szerkezetek 10 AWK programozás, minták, vezérlési szerkezetek AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa

Részletesebben

Multimédiás adatbázisok

Multimédiás adatbázisok Multimédiás adatbázisok Multimédiás adatbázis kezelő Olyan adatbázis kezelő, mely támogatja multimédiás adatok (dokumentum, kép, hang, videó) tárolását, módosítását és visszakeresését Minimális elvárás

Részletesebben