Internetes alkalmazásfejlesztés Endrődi Tamás
|
|
- Endre Biró
- 8 évvel ezelőtt
- Látták:
Á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 < > & " ' 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 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észletesebbenBevezeté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észletesebbenEsemé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észletesebbenInternet 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észletesebbenMié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észletesebbenWebshop 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észletesebbenAdatbá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észletesebbenASP-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észletesebbenBevezeté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észletesebbenCOMET 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észletesebbenGeorge 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észletesebbenNONPROFIT É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észletesebbenEddig 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észletesebbenA.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észletesebbenAdabá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észletesebbenAdatbá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észletesebbenWEBFEJLESZTÉ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észletesebbenAdatbá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észletesebbenA 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észletesebbenAdatbá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észletesebbenASP.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észletesebbenWCF, 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észletesebbenAdatbá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észletesebbenSZÁ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észletesebbenPHP 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észletesebbenHTML, 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észletesebbenWeb-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észletesebbenGrafikus 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észletesebbenWWW 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észletesebbenWeb 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észletesebben1. 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észletesebbenMultimédia 2017/2018 II.
Multimédia 2017/2018 II. 1. gyakorlat HTML5, CSS3 alapok Alapvető HTML5 elemek Egyszerű HTML dokumentum Oldal cime
RészletesebbenAdatbá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észletesebbenAdatbá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észletesebbenAdatbá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észletesebbenI. 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észletesebbenAccess 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észletesebben7. 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észletesebbenSzé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észletesebbenElemi 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észletesebbenEsemé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észletesebbenSQL 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észletesebbenFlash é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észletesebbenJavaServer 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észletesebbenWebes 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észletesebbenJAVA 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észletesebbenAdatbá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észletesebbenJava 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észletesebbenAdatbá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észletesebbenSQL*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észletesebbenExcel 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észletesebbenASP.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észletesebbenesemé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észletesebben12.ó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észletesebbenADATBÁ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észletesebbenWebes 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észletesebbenMVC. 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észletesebbenProgramozá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észletesebbenOOP é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észletesebbenWeb 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észletesebbenVizuá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észletesebbenA 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észletesebbenA 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észletesebbenJava 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észletesebbenGoogle 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észletesebbenXML (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észletesebbenSzabadkai 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észletesebbenAJAX 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észletesebbenInternet 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észletesebbenXML 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észletesebbenAPI 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észletesebbenJava 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észletesebbenKé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észletesebben1. 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észletesebbenWebszolgá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észletesebbenBevezeté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észletesebbenWeb-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észletesebbenA 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észletesebbenFicsor 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észletesebbenOOP #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észletesebbenA 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észletesebbenWebes ű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észletesebbenBASH 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észletesebbenAz 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észletesebbenWindows 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észletesebbenKilencedik 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észletesebbenA 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észletesebbenAz 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észletesebbenA 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észletesebben8. 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észletesebbenWebes 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észletesebbenTartalomjegyzé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észletesebbenC#, 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észletesebbenSZÁ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 Bevezető - platform- és nyelvfüggetlen programozási interfész - tartalom-, szerkezet- és stílus-elérés/módosítás
RészletesebbenSymfony 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észletesebbenPHP. 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észletesebbenJava. 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észletesebbenAWK 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észletesebbenMultimé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