Ajax selainpohjaisten sovellusten laatimisessa. Nico Hiort af Ornäs

Koko: px
Aloita esitys sivulta:

Download "Ajax selainpohjaisten sovellusten laatimisessa. Nico Hiort af Ornäs"

Transkriptio

1 TEKNILLINEN KORKEAKOULU Tietotekniikan osasto Tietotekniikan tutkinto-ohjelma Ajax selainpohjaisten sovellusten laatimisessa Kandidaatintyö Nico Hiort af Ornäs Ohjelmistotekniikan laboratorio Espoo 2008

2 TEKNILLINEN KORKEAKOULU Tietotekniikan osasto Tietotekniikan tutkinto-ohjelma Tekijä: Nico Hiort af Ornäs Työn nimi: Ajax selainpohjaisten sovellusten laatimisessa KANDIDAATINTYÖN TIIVISTELMÄ Päiväys: 6. huhtikuuta 2008 Sivumäärä: Pääaine: Ohjelmistotekniikka Koodi: T3001 Vastuuopettaja: Markus Koskela Työn ohjaaja: Esko Nuutila Selainpohjaiset sovellukset käyttävät hyväkseen Ajax-toimintamallia, joka koostuu useasta eri tekniikasta ja standardista. Tälläisiä tekniikoita ja standardeja ovat muun muassa HTML, CSS, JavaScript, DOM ja XMLHttpRequest. Näiden tarkoituksena on parantaa verkkosivujen asynkronista viestintää selaimen ja palvelimen välillä. Asynkroninen viestintä mahdollistaa keskustelun palvelimen kanssa taustalla, niin että tietty osa sivusta voidaan päivittää ilman että koko sivua tarvitsee ladata uudelleen. Yksi yleinen ongelma sovellusten kanssa, jotka käyttävät hyväkseen Ajaxtoimintamallia, on ollut se, että niiden kehittäminen on ollut hyvin vaikeaa. Useat selaimet toteuttavat Ajaxin käyttämiä tekniikoita eri tavoilla. Tämän takia on kehitetty useita eri Ajax-ohjelmistokehyksiä, jotka helpottavat kehittäjän työtä piilottamalla selaimien toteutuksien eroavaisuudet. Tässä työssä käsiteltiin Ajax-toimintamallia ja sen käyttämiä tekniikoita. Tämän jälkeen tutustuttiin kolmeen tunnettuun Ajaxohjelmistokehykseen, minkä jälkeen niitä vertailtiin keskenään. Työn tavoitteena oli tutkia, minkälaisiin selainpohjaisiin sovelluksiin mainitut Ajax-ohjelmistokehykset sopivat parhaiten. Vertailun jälkeen huomattiin, kuinka radikaalisesti Ajax-sovelluksien toteuttaminen tuli helpommaksi, kun apuna käytettiin Ajax-ohjelmistokehyksiä. Avainsanat: Ajax, Web 2.0, XMLHttpRequest, JavaScript-kirjasto Kieli: Suomi i

3 Alkulause Tämä kandidaatintyö on kirjoitettu lukuvuoden 2008 keväällä. Työ on laadittu Teknillisen korkeakoulun ohjelmistotekniikan laboratoriolle. Haluaisin erityisesti kiittää kandidaatintyöni ohjaajana toiminutta opett.tutk. Esko Nuutilaa, joka antoi hyödyllistä ja rakentavaa palautetta kandidaatintyöni kirjoituksen aikana. Espoossa 16. huhtikuuta 2008 Nico Hiort af Ornäs ii

4 Käytetyt lyhenteet AFL AJAX BSD CLA CSS DOM HTML HTTP MIT RIA W3C XHTML XML YUI Academic Free License Asynchronous JavaScript and XML Berkeley Software Distribution Contributor License Agreement Cascading Style Sheets Document Object Model Hypertext Markup Language Hypertext Transfer Protocol Massachusetts Institute of Technology Rich Internet Application World Wide Web Consortium extensible Hypertext Markup Language extensible Markup Language Yahoo! User Interface iii

5 Sisältö Alkulause Käytetyt lyhenteet 1 Johdanto 1 2 Ajax-toimintamalli Taustaa Historia Rich Internet Applications Käytetyt tekniikat XHTML ja CSS JavaScript XMLHttpRequest (XHR) DOM Tiedonsiirtoformaatit XML JSON Muut Haitat Ajax-ohjelmistokehykset Taustaa Valintakriteerit iv ii iii

6 3.3 Vertailukriteerit Prototype Ajax-ominaisuudet Koodauskäytännöt Lisäosat Selaintuki Dokumentaatio Yhteisö The Dojo Toolkit Ajax-ominaisuudet Koodauskäytännöt Lisäosat Selaintuki Dokumentaatio Yhteisö The Yahoo! User Interface Library (YUI) Ajax-ominaisuudet Koodauskäytännöt Lisäosat Selaintuki Dokumentaatio Yhteisö Ohjelmistokehyksien vertailu Yhteenveto 30 Kirjallisuutta 31 v

7 Luku 1 Johdanto Selainpohjaiset sovellukset ovat yleistyneet räjähdysmäisesti viimeisten kolmen vuoden aikana. Tämän buumin edelläkävijänä on ollut Google, joka on vuosien varrella kehittänyt useita selainpohjaisia sovelluksia. Näitten sovellusten joukkoon kuuluvat muun muassa Gmail ( Google Maps ( ja Google Docs ( Selainpohjaiset sovellukset käyttävät hyväkseen Ajax-toimintamallia, joka koostuu useasta eri tekniikasta ja standardista. Tämän toimintamallin avulla voidaan lähettää asynkronisia viestejä selaimelta palvelimelle. Käytännössä tämä tarkoittaa sitä, että osa WWW-sivusta voidaan päivittää ilman että koko sivua ladataan uudelleen. Tämänkaltainen toimintamalli tekee WWW-sivuista nopeampia ja käytettävämpiä. Selainpohjaiset sovellukset lisäävät tästä syystä vuorovaikutteisuutta käyttäjän ja palvelimen välillä. Eräs ongelma selainpohjaisten sovellusten kanssa on ollut se, että niiden kehittäminen on ollut hyvin haastavaa. Useat selaimet toteuttavat Ajaxin käyttämiä tekniikoita eri tavoilla. Tämän takia on kehitetty useita Ajax-ohjelmistokehyksiä, jotka helpottavat kehittäjän työtä piilottamalla selaimien toteutuksien eroavaisuudet. Ajax-ohjelmistokehyksiä on kehitetty viimeisten vuosien aikana erittäin paljon. Eri ohjelmistokehyksiä on olemassa satoja. Tässä työssä tarkastellaan pelkästään niitä Ajax-ohjelmistokehyksiä, jotka toimivat JavaScriptin avulla käyttäjän selaimessa. Tämänkaltaisia Ajax-ohjelmistokehyksiä kutsutaan myös JavaScriptkirjastoiksi. Tässä työssä tutustutaan kolmeen tunnettuun JavaScript-kirjastoon, minkä jälkeen niitä vertaillaan keskenään. Tämän työn tavoitteena on tutkia, minkälaisiin selainpohjaisiin sovelluksiin kyseiset JavaScript-kirjastot sopivat. 1

8 LUKU 1. JOHDANTO 2 Kandidaatintyön rakenne on seuraavanlainen: Luvussa 2 käsitellään Ajax-toimintamallia ja sen käyttämiä tekniikoita. Luvussa 3 tarkastellaan yleisesti Ajax-ohjelmistokehyksiä ja tutustutaan kolmeen tunnettuun Ajax-ohjelmistokehykseen. Luvussa 4 tehdään yhteenveto.

9 Luku 2 Ajax-toimintamalli Tämän luvun pääpaino on Ajaxissa ja sen käyttämissä tekniikoissa. Tässä luvussa esitellään myös erilaisia tiedonsiirtoformaatteja Ajaxille. XML on kehittynein tiedonsiirtoformaatti Ajaxia käytettäessä, mutta se ei ole suinkaan ainoa vaihtoehto. (Garrett, 2005) Luvun loppupuoli käsittelee Ajaxin haittoja ja hyötyjä. Tässä luvussa ei käsitellä Ajax-toteutuksia, eli erinlaisia kirjastoja ja työkaluja Ajaxille. Näitä käsitellään luvussa kolme. 2.1 Taustaa Ajax (Asynchronous JavaScript and XML) on termi, jonka Garrett (2005) keksi yli kolme vuotta sitten. Termi on suhteellisen uusi, mutta sen kattamat tekniikat eivät. Ajax ei ole tekniikka itsessään, vaan se on sekoitus HTML:ää, CSS:ää ja JavaScriptiä, joiden tarkoituksena on parantaa verkkosivujen asynkronista viestintää selaimen ja palvelimen välillä. Tämä tarkoittaa käytännössä sitä, että perinteisestä verkkosivusta on tulossa työpöytämäinen interaktiivinen verkkosovellus. (Garrett, 2005) Yksi esimerkki tällaisesta sovelluksesta on Googlen tarjoama Google Docs ( -palvelu, joka vastaa hyvin paljolti tavallista työpöytämäistä tekstinkäsittelyohjelmaa. Verkkosivujen asynkroninen viestintä selaimen ja palvelimen välillä ei ole myöskään mikään uusi keksintö. Tähän ovat pystyneet Flash-sovellukset ja Java-sovelmat jo aiemminkin. (Batra, 2007) Nämä tekniikat tarvitsevat kuitenkin asennettavan lisäosan selaimeen, toisin kuten Ajax, joka ei tällaista tarvitse. Ajaxin käyttämät tekniikat ovat jo sisäänrakennettuna käyttäjän selaimessa. Asynkroninen viestintä mahdollistaa keskustelun palvelimen kanssa taustalla, niin että tietty osa sivusta voidaan päivittää ilman että koko sivua tarvitsee 3

10 LUKU 2. AJAX-TOIMINTAMALLI 4 ladata uudelleen. Tämä tekee verkkosivuista nopeampia ja käytettävämpiä sekä lisää vuorovaikutteisuutta käyttäjän ja palvelimen välillä. (Roodt, 2006) Kuvasta 2.1 nähdään konkreettisesti mitä termillä asynkroninen viestintä tarkoitetaan. Tässä työssä tullaan käyttämään tätä termiä usein, joten on hyvä, että lukijalle ei jää epäselväksi, mitä termillä tarkoitetaan. Kuva 2.1: Garrett (2005) tekemä vertailu synkronisesta ja asynkronisesta viestinnästä selaimen ja palvelimen välillä. Ajax käyttää hyväkseen seuraavia tekniikoita: XHTML merkintäkielenä

11 LUKU 2. AJAX-TOIMINTAMALLI 5 CSS muotoilukielenä XML tiedonsiirtoformaattina DOM sisällön muokkaamiseen ja tallentamiseen XMLHttpRequest-luokkaa asynkronisen viestin lähetykseen JavaScript-kieltä sitomaan yhteen yllämainitut teknologiat 2.2 Historia Tim Berners-Lee kehitti vuonna 1990 WWW:n (World Wide Web). Hänen ideanaan oli yhtenäinen verkko, jossa dokumentit pystyisi linkittämään toisiinsa ja jokaisella dokumentilla olisi oma URI (Uniform Resource Identier). Ensimmäinen versio HTML-standardista oli tarkoitettu juuri tähän. Standardi sisälsi pääasiallisesti komentoja dokumenttien formatointiin ja linkittämiseen. Standardia ei ollut suunniteltu rikkaitten Internet-sovellusten laatimiseen, vaan enemmänkin tekstuaalisen informaation esittämiseen. (Zakas et al., 2007) 1990-luvulla suurin osa Internetin käyttäjistä selasi WWW:tä modeemiyhteyksien avulla. Dokumenttien selaus osoittautui kuitenkin erittäin hitaaksi, minkä jälkeen todettiin tarve nopeammille ratkaisuille. Dokumenttien latausajan minimointi oli yksi edistysaskel päin Ajax-sovelluksia. HTML 4.0 -standardissa esiteltiin muun muassa kehykset (engl. frames), joiden avulla voitiin jakaa dokumentti moneen osaan. Kehyksien avulla pystyttiin päivittämään haluttu kehys dokumentissa, jolloin muita kehyksiä ei tarvinnut päivittää lainkaan. Tämä lyhensi jo huomattavasti dokumenttien latausaikaa. Kehykset ja JavaScript loivat yhdessä uuden tavan lähettää asynkronisia viestejä selaimelta palvelimelle. Tämä tapa perustui yhden tai useamman piilotetun kehyksen käyttöön. Piilotetun kehyksen ainoa tarkoitus oli aloittaa kommunikaatio palvelimen kanssa. Sen sijaan, että päivitettäisiin näkyvä kehys, päivitettiin mieluummin piilotettu kehys. Piilotettu kehys sisälsi yleensä tavallisen HTMLlomakkeen, joka lähetettiin palvelimelle. Kun palvelin oli palauttanut vastauksen piilotetulle kehykselle, sisälsi se vastauksessaan JavaScript-koodia, jonka tehtävänä oli ilmoittaa näkyvälle kehykselle, että tietoa oli vastaanotettu. HTML-standardissa esiteltiin myös uusi elementti nimeltä iframe. Tämän elementin avulla pystyttiin sisällyttämään dokumentti suoraan toisen dokumentin sisään. DOM sai myös läpimurtonsa samoihin aikoihin useissa sen ajan selaimissa. Tämän ansiosta pystyttiin JavaScriptin avulla luomaan uusia iframe-elementtejä

12 LUKU 2. AJAX-TOIMINTAMALLI 6 dynaamisesti ilman tarvetta muokata dokumentin HTML-koodia. Tästä syntyi myös yleinen tapa tehdä asynkronisia kutsuja selaimelta palvelimelle. (Zakas et al., 2007) Tämän jälkeen alkoi XMLHttpRequest-objektin aikakausi. 2.3 Rich Internet Applications RIA (Rich Internet Applications) eli rikkaat Internet-sovellukset ovat Web 2.0 -ajan WWW-sovelluksia. On olemassa useita eri tapoja tehdä tällaisia sovelluksia, joista Ajax on yleisin. Tämä aliluku käsittelee lähinnä sitä, minkälaisia sovelluksia saadaan aikaan Ajaxilla ja mitä hyötyjä ja haittoja niistä on verrattuna tavallisiin työpöytäsovelluksiin ja perinteisiin verkkosivuihin. Rikkailla Internet-sovelluksilla on työpöytäsovelluksiin nähden monia eri etuja. Niitä ei tarvitse erikseen asentaa, ja niitä voi käyttää suoraan selaimen avulla melkein miltä tahansa koneelta. Tämän takia sovellus on erittäin helppo ja nopea saada käyttöön. Käyttäjän tarvitsee vain avata selain ja mennä tarvittavalle WWW-sivustolle. Näin ollen käyttäjä ei ole enää riippuvainen omasta koneestaan, vaan voi käyttää sovellusta jokaiselta koneelta, josta löytyy selain. Verkon välityksellä toimivat sovellukset ovat hyödyllisiä myös itse sovelluksien kehittäjille. Yksi olennainen hyöty on se, että sovelluksesta on aina käytössä vain yksi varsinainen kopio, joka on sijoitettu WWW-palvelimelle. Sovelluksen voi vastedes päivittää helposti päivittämällä vain tämän kopion sovelluksesta, minkä jälkeen kaikilla käyttäjillä on käytössään uusin versio sovelluksesta. Rikkaat Internet-sovellukset aloittavat toimintansa yleensä siten, että sovellus ladataan kokonaisuudessaan käyttäjän selaimeen. Tästä eteenpäin selaimen muistissa asuva Ajax-moottori (engl. Ajax engine), joka prosessoi osan datasta palvelimen sijasta, keskustelee käyttäjänsä kanssa, kunnes sovelluksen tarvitsee saada lisää dataa palvelimelta tai lähettää kysely palvelimelle. Tällä tavoin yritetään parantaa palvelimen suorituskykyä siirtämällä datan prosessointia palvelimelta selaimelle ja minimoimalla tiedonsiirtoa selaimen ja palvelimen välillä. (Bozzon et al., 2006) Tämän toimintamallin ja perinteisten verkkosivujen eroavaisuudet selvenevät hyvin kuvasta 2.2. Tässä kuvassa on myös mukana XML-palvelin, joka on sijoitettu kuvan oikeaan osaan, Ajax-toimintamalliin. Datan antaminen käyttäjän selaimelle suoraan XML-muodossa helpottaa palvelimen kuormitusta, koska palvelimen ei tarvitse enää tehdä datalle mitään toimenpiteitä. (Diehl, 2007)

13 LUKU 2. AJAX-TOIMINTAMALLI 7 Kuva 2.2: Garrett (2005) tekemä vertailu perinteisestä ja Ajax-pohjaisesta websovellus mallista. 2.4 Käytetyt tekniikat XHTML ja CSS XHTML on W3C:n standardoima WWW-sivujen merkintäkieli. Tämä kieli on HTML:n seuraaja. Näiden erona on se, että XHTML on muodoltaan XML:n näköistä. Molemmat kielet ovat hyvin yleisiä W3C:n standardoimia merkintäkieliä, joten ne soveltuvat hyvin myös Ajax-sovelluksiin. CSS on myös W3C:n standardoima kieli, joka on tarkoitettu (X)HTML-dokumenttien muotoilua ja tyylittelyä varten, mutta sillä voidaan myös tyylitellä muita XML-pohjaisia dokumentteja. CSS:n avulla voidaan vaivattomasti määritellä (X)HTML-dokumenttien ulkoasu käyttämällä erilaisia tyylimäärittelyitä. CSS:n avulla voidaan myös erotella dokumentin rakenne ja ulkoasu toisistaan. Tämänkaltainen erottelu tekee (X)HTML-dokumenteista luettavampia ja joustavampia. (Levering ja Cutler, 2006)

14 LUKU 2. AJAX-TOIMINTAMALLI JavaScript JavaScript on oliopohjainen skriptikieli, jonka avulla voidaan tehdä verkkosivuista enemmän dynaamisia. JavaScript pohjautuu ECMAScript-standardiin. Monet eri selaimet tukevat JavaScriptiä ja tämän takia se soveltuu hyvin Ajax-sovelluksien käyttöön. JavaScriptiä käytetään Ajaxissa pääpainoisesti palvelupyyntöjen lähettämiseen selaimelta palvelimelle sekä sivujen muokkaukseen selaimessa. Asynkronisen viestinnän selaimen ja palvelimen välillä hoitaa XMLHttpRequest-objekti. JavaScriptillä päästään myös muokkaamaan (X)HTML-dokumentin sisältöä. Tämä hoituu helpoiten käyttäen DOM-rajapintaa XMLHttpRequest (XHR) XMLHttpRequest-luokka on standardoitu ohjelmointirajapinta, jota käytetään asynkroniseen viestintään selaimen ja palvelimen välillä. Asynkronisten viestien lähetys tarkoittaa käytännössä sitä, että selain pystyy lähettämään viestin taustalla ilman, että käyttäjä sitä huomaa. Näin ollen verkkosivut voivat saada uutta dataa sivuilleen ilman, että koko sivua tarvitaan ladata uudelleen. Monien selainten uusimmat versiot tukevat nykyään XMLHttpRequest-objektia. Näiden selainten joukkoon kuuluvat muun muassa Microsoftin Internet Explorer, Mozillan Firefox, Netscapen Navigator ja Applen Safari. (Paulson, 2005) Useat selaimista toteuttavat XMLHttpRequest-objektin eri tavalla. Tämän takia on kehitetty useita Ajax-ohjelmistokehyksiä, jotka helpottavat ohjelmoijan työtä piilottamalla selaimien toteutuksien eroavaisuudet. Microsoft oli toteuttanut jo vuonna 2000 XMLHttpRequestia vastaavan konseptin. Tämä toteutus oli ActiveX-objekti, joka kulki nimellä XMLHTTP. Vaikka toteutus ei ollut vielä päässyt standardiksi asti, tukivat useat selaimet tätä toteutusta. Kaksi vuotta myöhemmin, vuonna 2002, kehitti Mozilla oman toteutuksensa, XMLHttpRequest-objektin. Tämä objekti oli sisäänrakennettu selaimeen, minkä takia monet muutkin selainvalmistajat sisällyttivät sen selaimeensa. Kaikki modernit selaimet tukevat nykyään XMLHttpRequest-objektia, mukaan lukien Internet Explorer 7. (Zakas et al., 2007) XMLHttpRequest-objekti on rakenteeltaan hyvin yksinkertainen. Se sisältää tilamuuttujan, jonka avulla voidaan seurata missä tilassa lähetetty pyyntö on. Tämä tilamuuttuja esiintyy nimellä readystate ja sen mahdolliset arvot ovat esitetty taulukossa 2.1. (Anglin, 2007) XMLHttpRequest-objektista löytyy myös funktioita, jotka muuttavat tilamuuttujan tilaa. Näistä tärkeimmät ovat open() ja send(). Ensimmäinen funktio alus-

15 LUKU 2. AJAX-TOIMINTAMALLI 9 Taulukko 2.1: Tilamuuttujan readystate mahdolliset arvot XMLHttpRequestobjektissa. 0 Pyyntöä ei ole alustettu. 1 Pyyntö on alustettu. 2 Pyyntö on lähetetty. 3 Lataus meneillään. 4 Lataus suoritettu. taa objektin ja seuraava funktio lähettää pyynnön palvelimelle. Alla on esitetty yksinkertainen esimerkki siitä, kuinka JavaScriptillä voidaan lähettää asynkronisia viestejä selaimelta palvelimelle. Tämä esimerkki XMLHttpRequest-objektin käytöstä perustuu Anglin (2007) kirjoittamaan JavaScript-koodiin. // Määritellään muuttuja XMLHttpRequest-objektia varten var xmlrequest; // Yritetään saada viittaus XMLHttpRequest-objektiin if(window.xmlhttprequest) { xmlrequest = new XMLHttpRequest(); } else { xmlrequest = new ActiveXObject("Msxml2.XMLHTTP"); } // Lopetetaan suoritus mikäli selain ei tue XMLHttpRequest-objektia if (xmlrequest == null) { return; } // Alustetaan XMLHttpRequest-objekti annetuilla syötteillä xmlrequest.open("get", url, true); // Määritellään onreadystatechange-tapahtumafunktio xmlrequest.onreadystatechange = function(){ HandleAjaxResponse(xmlRequest); }; // Lähetetään jokin viesti palvelimelle xmlrequest.send(args);

16 LUKU 2. AJAX-TOIMINTAMALLI 10 readystate-tilamuuttuja ei ole ainoa XMLHttpRequest-objektista löytyvä attribuutti. Se sisältää myös pari muuta hyödyllistä attribuuttia, kuten responsetext ja responsexml. responsetext sisältää pyynnön palauttaman datan merkkijonon, kun taas responsexml sisältää datan XML-muodossa. Yksi tärkeä XMLHttp- Request-objektin attribuutti on myös onreadystatechange-tapahtumafunktio, jonka avulla voidaan valvoa milloin tilamuuttujan readystate tila muuttuu. Kun selain on vastaanottanut vastauksen palvelimelta, kutsutaan JavaScriptin avulla onreadystatechange-tapahtumafunktiota. Tässä funktiossa kannattaa varmistaa readystate-tilamuuttujan arvo, koska tätä funktiota kutsutaan aina sen jälkeen kuin readystate-tilamuuttujan arvo muuttuu. (Anglin, 2007) Alla on esitetty esimerkkitoteutus kyseisestä funktiosta. Tämä esimerkki perustuu myös Anglin (2007) kirjoittamaan JavaScript-koodiin ja on jatkoa edelliseen esimerkkiin, jossa määriteltiin onreadystatechange-tapahtumafunktion. function HandleAjaxResponse(xmlhttp) { } // Jos muuttujan readystate arvo on 4, // niin on viesti vastaanotettu palvelimelta. if (xmlhttp.readystate === 4) { } // Tarkistetaan, että HTTP Status koodi // ei ole virheellinen. var statuscode = xmlhttp.status; if ((statuscode < 200) (statuscode >= 300)) { // Viestin vastaanottaminen onnistui. // Suoritetaan jokin hyödyllinen toimenpide. processresponse(xmlhttp.responsexml); } else { } // Viestin vastaanottaminen epäonnistui. processerror(xmlhttp);

17 LUKU 2. AJAX-TOIMINTAMALLI 11 Seuraavassa luvussa näytetään myös muutamia esimerkkejä siitä, kuinka sama asia voidaan tehdä paljon helpommin käyttäen Ajax-ohjelmistokehyksiä DOM Tähän asti on nähty kuinka verkkosivu voi lähettää asynkronisen viestin selaimelta palvelimelle ja tämän jälkeen vastaanottaa viestin. Sen jälkeen kun on vastaanotettu viesti palvelimelta, halutaan viestin kanssa luonnollisesti tehdä jotain hyödyllistä. Useimmissa tapauksissa halutaan päivittää tietty osa (X)HTMLdokumentin sisällöstä. Tähän hätään kehitettiin jo 1990-luvun lopulla tekniikka, joka kulkee nimellä dokumenttioliomalli (engl. Document Object Model), eli DOM. Dokumenttioliomalli kuvaa dokumentin elementit olioina, jotka muodostavat hierarkkisen rakenteen. DOM on W3C:n standardoima ohjelmointirajapinta, jolla voi esimerkiksi JavaScriptin avulla päästä käsiksi XML-pohjaisen dokumentin sisältöön. (Paulson, 2005) W3C:n tavoitteena on kehittää dokumenttioliomallista standardi, joka olisi riippumaton selaimesta, selaimen ympäristöstä ja ohjelmointikielestä. (Wood, 1999) Edellisessä koodiesimerkissä kutsuttiin processresponse()-funktiota suorittamaan jokin tietty hyödyllinen toimenpide. Tällainen toimenpide voisi olla esimerkiksi toimenpide, joka päivittää tietyn osan (X)HTML-dokumentin sisällöstä. Tällöin voidaan mieluummin kirjoittaa: // Haetaan elementti tunnuksella "ajax-container" var element = document.getelementbyid("ajax-container"); // Päivitetään elementin sisältö muuttujalla xmlhttp.responsetext element.innerhtml = xmlhttp.responsetext; Molemmilla koodiriveillä käytetään hyväksi dokumenttioliomallia, ensimmäisellä rivillä käyttämällä funktiota getelementbyid() ja seuraavalla rivillä käyttämällä attribuuttia innerhtml. Tässä voidaan myös huomata, että XML ei ole tiedonsiirtoformaattina pakollinen. Esimerkissä käytetään attribuuttia responsetext, joka palauttaa datan tavallisena merkkijonona. Tähän merkkijonoon voidaan halutessa myös upottaa (X)HTML-koodia sekaan. Vaikka DOM on jo hyvin vanha standardi, eroavat nykyajan selaimien toteutukset toisistaan. (Woychowsky, 2006) Näistä eroavaisuuksista päästään jälleen kerran eroon Ajax-ohjelmistokehyksillä, jotka helpottavat ohjelmoijan työtä piilottamalla selaimien toteutuksien eroavaisuudet.

18 LUKU 2. AJAX-TOIMINTAMALLI 12 Koska osa sivusta päivitetään reaaliaikaisesti ilman, että koko sivua ladataan uudestaan, on erittäin tärkeää, että käyttäjä huomaa nämä muutokset. Tästä syystä useilla Ajax-ohjelmistokehyksillä on laaja valikoima erilaisia visuaalisia efektejä. Yleisiä efektejä ovat muun muassa erilaiset valaistukset ja korostukset sekä elementtien liikkuminen. (Roodt, 2006) 2.5 Tiedonsiirtoformaatit XML XML (extensible Markup Language) on yksi tunnetuimmista tiedonsiirtoformaateista Ajax-sovelluksissa. Tämä ei ole mikään ihme, sillä viimeinen kirjain sanassa Ajax viittaa juuri tähän kieleen. XML on merkintäkieli, minkä syystä se sopii paremmin esimerkiksi dokumenttien tallentamiseen kuin tiedonsiirtoon. XML on hyvin suosittu tiedonsiirtoformaatti Ajax-sovelluksissa, koska se laajalti tuettu ja standardoitu merkintäkieli. W3C aloitti standardointityön jo vuonna 1996 ja sai standardin ensimmäisen version valmiiksi vuonna (Paulson, 2005) JSON JSON (JavaScript Object Notation) on tiedonsiirtoformaatti, jonka Douglas Crockford on määritellyt (RFC 4627). Ajax-sovelluksissa JSON on yleensä tiedonsiirtoformaattina helppokäyttöisempi kuin XML. Tämä johtuu monista eri syystä. JSON on XML:ää yksinkertaisempi, selkeämpi ja kevyempi formaatti, ja näin ollen se soveltuu paremmin tiedonsiirtoon. JSON ei ole XML:n tapaan merkintäkieli, vaan se on tarkoitettu juuri käytettäväksi tiedonsiirtoon. (Crockford, 2006) JSON pohjautuu ECMAScript-standardiin ja se oli tarkoitettu alunperin JavaScriptin kanssa käytettäväksi. Ajax-sovelluksissa viestin saapuessa takaisin palvelimelta selaimelle saadaan kaikki tieto JavaScript funktioina ja objekteina. (Roodt, 2006) Tämä helpottaa olennaisesti ohjelmoijan työtä Muut On olemassa myös pari muuta mainitsemisen arvoista tapaa siirtää tietoa palvelimelta selaimelle. Yksi yleinen tapa on siirtää tieto joko tavallisena tekstinä tai HTML-formatoituna tekstinä. Tällöin voidaan helposti päivittää tietty osa

19 LUKU 2. AJAX-TOIMINTAMALLI 13 verkkosivun tekstistä. Vaihtoehtoisesti voidaan pyytää palvelimelta pelkästään JavaScript-koodia tai JavaScript-taulukoita. Tällöin voidaan suorittaa saapuneelle JavaScript-koodille funktiota nimeltä eval(). Tämä funktio evaluoi parametrissa annetun datan kuin se olisi tavallista JavaScript-koodia. eval()-funktion käyttäminen syötteen evaluoimiseen on tietoturvallisuussyistä hyvin vaarallista, sillä syötteestä voi löytyä vihamielistä koodia. Google Suggest ( /webhp?complete=1&hl=en) on esimerkki Ajax-sovelluksesta, joka käyttää hyväkseen JavaScriptin taulukoita tiedonsiirrossaan. 2.6 Haitat Internet-selainta ei ollut alun perin tarkoitettu alustaksi, jossa voisi suorittaa Ajax-sovelluksia. Selaimen pääasiallinen ja alkuperäinen tarkoitus oli olla yksinkertainen ohjelma HTML-dokumenttien lukemiseen. Tämän takia useimmat selaimet eivät vielä osaa tukea ominaisuuksia, joita Ajax-sovelluksilta vaaditaan. Tällaisia ominaisuuksia ovat esimerkiksi selaushistoria ja kirjainmerkit. Kun linkkiä painetaan Ajax-sovelluksessa, päivittyy vain tietty sivun osa, eikä koko sivua ladata uudelleen. Näin ollen selain ei ymmärrä, että on menty selaamishistoriassa askel eteenpäin, eikä näin ollen päivitä selaushistoriaa. Jos halutaan lisätä tämä päivitetty sivu kirjanmerkkeihin, ei selain tule myöskään ymmärtämään, että halutaan lisätä juuri tämä versio sivuista kirjainmerkkeihin. Tässä tapauksessa selain asettaa kirjainmerkkeihin mieluummin suoraan sen osoitteen, mikä löytyy selaimen osoitepalkilta, eli alkuperäisen sivun, jota ei olla päivitetty. Näihin ongelmiin on kehitetty tilapäisratkaisut (engl. hacks), joiden avulla ongelmista päästään eroon useimmilla selaimilla. On myös olemassa muita samantyyppisiä ongelmia, joiden kanssa sovelluksen kehittäjän tarvitsee olla varovainen. Tässä työssä ei käydä sen enempää läpi ongelmia tai rajoitteita, joita Ajaxsovellukset aiheuttavat.

20 Luku 3 Ajax-ohjelmistokehykset 3.1 Taustaa Ajax itsessään ei ole ohjelmistokehys tai tekniikka, vaan sen on enemmänkin suunnittelumalli Ajax-sovelluksien toteuttamiseen. Ajax-ohjelmistokehykset ovat ohjelmistokehyksiä, jotka auttavat ohjelmoijaa toteuttamaan Ajax-sovelluksia. Edellisessä luvussa mainittiin, että tietyt tekniikat toimivat eri tavoin eri selaimissa. Ajax-ohjelmistokehykset ovat juuri tästä syystä yleistyneet ja saaneet paljon huomiota kehittäjien keskuudessa. Ajax-ohjelmistokehykset helpottavat oleellisesti kehittäjien työtä piilottamalla selaimien toteutuksien eroavaisuudet. Edellisessä luvussa näytettiin myös kuinka asynkronisia viestejä voidaan lähettää selaimelta palvelimelle. Tässä luvussa esitellään myös miten sama asia voidaan tehdä paljon helpommin Ajax-ohjelmistokehyksien avulla. Termillä ohjelmistokehys tarkoitetaan valmista ohjelmistorunkoa, jota voidaan käyttää pohjana uuden sovelluksen toteuttamiseen. Tämänkaltainen ohjelmistorunko ei ole täydellinen ohjelmistotuote tai valmis suorituskelpoinen ohjelmisto, vaan runkoa pitää täydentää, jotta sovelluksesta voitaisiin tehdä käyttökelpoinen. (Jaakkola, 2006) Näin ollen ohjelmistokehykset nopeuttavat sovelluksien kehitystä, koska osaa sovelluksen koodista ei tarvitse kirjoittaa uudelleen. Useita Ajax-ohjelmistokehyksiä voitaisiin myös kutsua pelkiksi kirjastoiksi tai JavaScript-kirjastoiksi, koska ne tarjoavat vain kokoelman menetelmiä ja funktioita yleisten toimintojen suorittamiseen. Ne eivät siis tarjoa valmista runkoa, jota voitaisiin käyttää pohjana uuden sovelluksen toteuttamiseen. Tässä työssä käytetään kumminkin termiä Ajax-ohjelmistokehys, jolla viitataan sekä Ajaxohjelmistokehyksiin että JavaScript-kirjastoihin. Ajax-ohjelmistokehykset toteuttavat suurimman osan tarvittavista toimenpiteis- 14

21 LUKU 3. AJAX-OHJELMISTOKEHYKSET 15 tä, joita Ajax-moottori tarvitsee toimiakseen. Kuvassa 2.2 esiteltiin Ajax-toimintamallin periaate, mihin oli myös sijoitettu kyseinen Ajax-moottori. Ajax-ohjelmistokehykset voidaan jakaa ainakin kahteen ryhmään. Ensimmäinen ryhmä koostuu JavaScript-kirjastoista, jotka sijoittuvat kuvan 2.2 käyttäjän selaimessa ajettavaan Ajax-moottoriin. Toinen ryhmä koostuu taas ohjelmistokehyksistä, jotka ovat integroitu palvelimelle. Tässä työssä vertaillaan ainoastaan ensimmäiseen ryhmään kuuluvia Ajax-ohjelmistokehyksiä, koska nämä ohjelmistokehykset keskittyvät enemmän Ajax-ominaisuuksiin kuin toiseen ryhmään kuuluvat ohjelmistokehykset, jotka käsittelevät myös esimerkiksi tiedon hakua palvelimelta. 3.2 Valintakriteerit Ajaxian.com (2007) teetti kyselyn, jossa mitattiin kuinka moni kehittäjä käytti mitäkin Ajax-ohjelmistokehystä. Kysely sisälsi listan, jossa oli listattu yli 240 Ajax-ohjelmistokehystä. Tästä syystä vertailua ei voida suorittaa näin monelle ohjelmistokehykselle, vaan joukosta joudutaan karsimaan suurin osa pois. Tässä työssä tehty vertailu tulee pääasiallisesti perustumaan saatavilla olevien kirjastojen dokumentaatioihin sekä muihin tehtyihin tieteellisiin vertailuihin. Tästä syystä yksi valintakriteereistä tulee olemaan Ajax-ohjelmistokehyksen suosio. Ajax-ohjelmistokehyksen tulee olla sen verran suosittu, että siitä löytyy tarpeeksi vertailukelpoista materiaalia. Taulukossa 3.1 on esitetty edellä mainitun kyselyn suosituimmat Ajax-ohjelmistokehykset. Taulukko 3.1: Suosituimmat Ajax-ohjelmistokehykset. The Dojo Toolkit 11,8% Ext JS 22,5% jquery 29,3% Mootools 14,3% Prototype 34,1% Script.aculo.us 22,3% Yahoo! User Interface Library 13,0% Edellisessä aliluvussa esiteltiin jo yksi valintakriteeri Ajax-ohjelmistokehyksille. Sen on oltava käyttäjän selaimessa ajettava JavaScript-kirjasto. Tämän lisäksi on JavaScript-kirjaston käytettävä myös jotakin avoimen lähdekoodin lisenssiä, jotta vertailu eri kirjastojen välillä voidaan suorittaa ilman kustannuksia. Kaikki taulukon 3.1 Ajax-ohjelmistokehykset täyttävät nämä kaksi edellä mainittua

22 LUKU 3. AJAX-OHJELMISTOKEHYKSET 16 kriteeriä. Script.aculo.us eroaa muista siinä, että se on lisäosa Prototype Ajaxohjelmistokehykselle. Tässä työssä ei valitettavasti ole tarpeeksi aikaa vertailla kaikkia taulukon 3.1 ohjelmistokehyksiä. Näin ollen valitaan vain kolme kappaletta vertailuun. Ensiksi valitaan Prototype, koska se on taulukon 3.1 suosituin ohjelmistokehys. Prototypen yhteydessä käsitellään myös lyhyesti Script.aculo.us-ohjelmistokehystä, koska se on myös erittäin suosittu lisäosa Prototype Ajax-ohjelmistokehykselle. The Dojo Toolkit on myös kiinnostava kohde, koska sillä on pari isoa yritystä takanaan antamassa virallista tukea, kuten esimerkiksi IBM ja Sun Microsystems. Valitaan The Dojo Toolkit myös mukaan vertailuun. Yahoo! User Interface Library (YUI) on suhteellisen uusi kirjasto, verrattuna kahteen edelliseen. Tästä huolimatta on kirjasto jo saanut paljon suosiota. Sen takana on myös yksi iso yritys, nimittäin Yahoo, joka on panostanut erittäin paljon kyseiseen kirjastoon. 3.3 Vertailukriteerit Tärkeimmät vertailukriteerit valituille Ajax-ohjelmistokehyksille ovat seuraavat: Ajax-ominaisuudet Koodauskäytännöt Lisäosat Selaintuki Dokumentaatio Yhteisö Ensiksi katsotaan valittujen ohjelmistokehyksien Ajax-ominaisuuksia. Tässä katsotaan kuinka kirjastolla voidaan lähettää asynkronisia viestejä selaimelta palvelimelle. Samalla selvitetään mitä kaikkia tiedonsiirtoformaatteja kirjasto tukee. On myös kiinnostavaa tietää löytyykö kirjastosta joitakin muita valmiiksi toteutettuja Ajax-ominaisuuksia, kuten esimerkiksi jaksottaisten asynkronisten viestien lähetys. Seuraavaksi katsotaan minkälaisia koodauskäytäntöjä kirjasto käyttää. Tässä vilkaistaan itse kirjaston lähdekoodia ja selvitetään kuinka helppolukuista kirjaston lähdekoodi on. Mikäli ohjelmistokehyksestä ei ole saatavilla mitään dokumentaatiota, on lähdekoodin oltava mahdollisimman helppolukuista, jotta kirjaston

23 LUKU 3. AJAX-OHJELMISTOKEHYKSET 17 käyttäminen olisi mahdollisimman helppoa. Samalla otetaan myös selvää ovatko kirjaston nimeämiskäytännöt loogisia ja jos kirjasto käyttää paljon globaaleita muuttujia. Globaaleitten muuttujien käyttöä tulisi välttää mahdollisimman paljon, koska muuten eri kirjastot ja muut JavaScript-koodit voivat olla käyttökelvottomia toistensa kanssa. Koska asynkronisten viestien lähetysten yhteydessä käytetään paljon tapahtumankäsittelijöitä, on tärkeätä, että kirjastossa on tapahtumankäsittely toteutettu järkevästi. Tässä katsotaan myös kuinka tapahtumankäsittely on toteutettu kirjastossa. Tämän jälkeen katsotaan paljonko kirjastosta löytyy eri lisäominaisuuksia, kuten esimerkiksi drag-and-drop-ominaisuus. Mitä enemmän lisäominaisuuksia kirjastosta löytyy, sitä arvokkaamman se tekee kirjastosta. Useat kirjastot tarjoavat myös paljon eri toiminnallisuutta. Tästä syystä useammat kirjastot ovat jaettu osiin, jotta vain tiettyä toiminnallisuutta voi käyttää, ilman että koko kirjastoa on pakko käyttää. Jos kirjastosta käytetään vain paria toimintoa, olisi toivottavaa, ettei koko kirjaston lähdekoodia tällöin lähetettäisi loppukäyttäjän selaimeen. Ajax-sovelluksen selaintuki on yksi tärkeimmistä kriteereistä. Sovelluksen tulisi luonnollisesti toimia mahdollisimman monessa eri selaimessa. Tässä yhteydessä mainitaan ne selaimet, joita kirjasto tukee virallisesti. On myös hyvin tärkeätä, että kirjastosta on olemassa dokumentaatiota. Dokumentaation tulisi tietysti olla myös ajan tasalla. Ohjelmistokehyksen lisäarvoa nostaa myös se, jos ohjelmistokehyksestä on esimerkiksi kirjoitettu kirjoja, laadittu demonstraatioita tai kirjoitettu koodinäytteitä. Nämä auttavat ja nopeuttavat kehittäjää kirjaston tutustumisessa. Avoimien lähdekoodien sovelluksilla on tärkeätä, että niillä on aktiivinen yhteisö, jotka vievät kirjastojen kehitystä eteenpäin. Kirjaston lisäarvoa nostaa se, jos kirjastolla on esimerkiksi aktiivinen keskustelupalsta, wiki tai IRC-kanava. Positiiviseksi asiaksi luetaan myös se, että ulkopuolisilla kehittäjillä on jokin vaivaton tapa osallistua kirjaston kehitykseen. 3.4 Prototype Prototype JavaScript Framework tai lyhyemmin Prototype on Sam Stephensonin kehittämä JavaScript-kirjasto, joka tuli tunnetuksi Ruby on Rails ohjelmistokehyksen kautta. Ruby on Rails on sisältänyt Prototype JavaScript-kirjaston kaikissa versioissaan jo jonkin aikaa. Sam aloitti Prototypen kehityksen jo vuoden 2005 helmikuussa, joten kirjasto on jo erittäin vanha. Monet muut JavaScript-kirjastot käyttävät myös pohjanaan Prototype JavaScript-kirjastoa, kuten esimerkiksi Script.aculo.us ja Rico. (Lerner, 2007b) Tässä tullaan keskittymään ainoastaan Pro-

24 LUKU 3. AJAX-OHJELMISTOKEHYKSET 18 totype ja Script.aculo.us JavaScript-kirjastoihin, joista jälkimmäinen on tarkoitettu graasten käyttöliittymien toteuttamiseen. Prototypen virallinen verkkosivu löytyy osoitteesta Ajax-ominaisuudet Prototype JavaScript-kirjasto tarjoaa kaksi tärkeätä funktiota, joilla voidaan lähettää asynkronisia viestejä selaimelta palvelimelle. Ensimmäinen funktio on yleiskäytännöllinen funktio nimeltä Ajax.Request(), jota voidaan käyttää moniin eri tarpeisiin. Toinen funktioista on funktio nimeltä Ajax.Updater(). Sitä käytetään lähinnä tietyn DOM elementin päivittämiseen. Alla on esitetty esimerkki funktion Ajax.Request() käytöstä. new Ajax.Request('/some_url', { method: 'get', onsuccess: function(transport) { processresponse(transport.responsetext); }, onfailure: function() { processerror(); } }); Prototype JavaScript-kirjasto tarjoaa myös muita hyödyllisiä Ajax-ominaisuuksia. Yksi hyödyllinen ominaisuus on jaksottaisten asynkronisten viestien lähetys, jota voi käyttää funktion Ajax.PeriodicalUpdater() avulla. Kirjasto tukee myös kahta eri tiedonsiirtoformaattia XML:n lisäksi. Tiedonsiirtoformaattina voidaan käyttää JSON:ia ja JavaScriptiä. Kirjasto havaitsee automaattisesti mikäli käytetään jälkimmäistä, jolloin se uudelleenohjaa datan funktiolle eval(). (Stephenson, 2005) Koodauskäytännöt Prototype tarjoaa virallisilla verkkosivuilla kaksi versiota lähdekoodistaan. Ensimmäinen versio soveltuu tuotantokäyttöön ja toista versiota voidaan käyttää kehittämään kirjastoa eteenpäin. Kummassakaan versiossa ei olla sen kummemmin kommentoitu koodia, mutta muuten molemmat versiot ovat suhteellisen helppolukuisia. Yksi kirjaston kritisoitu ominaisuus on se, että kirjasto laajentaa monia JavaScriptin standardeja objekteja prototype-määritteen avulla. Kirjaston uusin versio

25 LUKU 3. AJAX-OHJELMISTOKEHYKSET 19 ei enää laajenna Object-tyyppiä, mutta se laajentaa edelleen Array-tyypin. Kirjasto voi näin ollen tehdä muusta koodista tai muista kirjastoista käyttökelvottomia. On kumminkin suhteellisen helppoa tehdä omasta koodista yhteensopivaa Prototypen koodin kanssa, mutta jos halutaan käyttää useampia JavaScriptkirjastoja, voi eri kirjastojen yhteensovittaminen olla erittäin haastavaa. (Mc Parlane, 2005) Tästä syystä kannattaa Prototype JavaScript-kirjaston kanssa käyttää kirjastoja, jotka perustuvat Prototype JavaScript-kirjastoon. Edellä mainitut laajennukset tekevät koodin kirjoittamisesta paljon mukavampaa. Prototype tarjoaa myös mahdollisuuden objektien periyttämiselle ja muita funktioita, joiden avulla päästään helposti muokkaamaan dokumenttien elementtejä. (Stephenson, 2005) Tästä syystä koko kirjastoa onkin kutsuttu useaan otteeseen loistavaksi taideteoksi. (Mc Parlane, 2005) Kirjaston tapahtumankäsittely on toteutettu erillisen Event-luokan avulla. Sen avulla voidaan helposti lisätä tapahtumantarkkailijoita elementeille Lisäosat Kirjasto on hyvin oliosuuntautunut, ja tästä syystä kirjaston eri ominaisuudet ovat jaettu eri objekteiksi. Kirjasto on erittäin käyttökelpoinen JavaScript- ja Ajax-sovelluksien toteuttamiseen. Kirjastolla ei ole mitään virallisia lisäosia, mutta on olemassa monia muita JavaScript-kirjastoja, jotka pohjautuvat Prototype JavaScript-kirjastoon. Eräs yleisimmistä kirjastoista on Script.aculo.us. Tämä kirjasto yhdessä Prototypen kanssa tekee Prototypestä erittäin hyödyllisen. Script.aculo.us tarjoaa yleisesti käytettyjä eektejä ja animaatioita graasten käyttöliittymien toteuttamiseen. Näitä ei ole olemassa kovinkaan montaa, mutta kaikki ovat erittäin konguroitavissa. (Roodt, 2006) Selaintuki Prototype JavaScript-kirjaston virallisilla kotisivuilla mainitaan, että seuraavat selaimet tukevat kirjaston käyttöä: (Stephenson, 2005) Internet Explorer 6.0+ Firefox 1.5+ Safari 2.0+ Opera 9.25+

26 LUKU 3. AJAX-OHJELMISTOKEHYKSET 20 Erittäin monet viralliset ja suuret yhtiöt, kuten esimerkiksi nasa.gov ja cnn.com käyttävät myös hyväkseen kirjastoa, joten voidaan olettaa, että kirjasto toimii hyvin monissa selaimissa Dokumentaatio Prototype JavaScript-kirjaston kehittäjiä kritisoitiin ennen huonon dokumentaation määrästä. (Roodt, 2006) Kirjaston virallisilta sivuilta voi nykyään löytää paljon dokumentaatiota kirjaston käytöstä. Viralliset verkkosivut tarjoavat kattavan API-dokumentaation, jossa jokaisesta funktiosta löytyy lyhyehkö selitys ja koodiesimerkki. Tämän lisäksi sivuilta löytyy myös artikkeleita ja demonstraatioita, jotka auttavat kehittäjää nopeasti tutustumaan ohjelmistokehykseen. Joulukuussa vuonna 2007 julkaistiin myös yksi kirja, joka käsitteli vain Prototype ja Script.aculo.us JavaScript-kirjastoja. Kirja kulkee nimellä Prototype and script.aculo.us: You never knew JavaScript could do this! ja sen on kirjoittanut yksi Prototypen ja Script.aculo.us:n kehittäjistä, Christophe Porteneuve Yhteisö Ensisilmäyksellä näyttäisi siltä, että kaiken kehityksen takana on vain noin kymmenisen aktiivista kehittäjää. Nämä kehittäjät ovat kylläkin avustaneet kirjaston kehitystä eniten, mutta ulkopuolisten kehittäjien on myös helppo osallistua kehitykseen. Ulkopuoliset kehittäjät voivat helpoiten myötävaikuttaa kirjaston kehitystä lähettämällä virallisten sivujen kautta bugiraportteja tai koodipätkiä. Prototype tarjoaa myös keskusteluryhmiä ja IRC-keskustelukanavan, jotka edesauttavat yleisten ongelmien ratkaisujen löytämistä. 3.5 The Dojo Toolkit The Dojo Toolkit on ohjelmistokehys, joka on tarkoitettu JavaScript- ja Ajaxpohjaisten sovellusten toteuttamiseen. Alex Russell aloitti kirjaston kehitystyön jo vuonna 2004, eli ennen kuin Garrett oli julkaissut artikkelinsa Ajaxista. Kirjaston taustalla pyörii yksi yleishyödyllinen yhteisö (engl. non-prot organization) nimeltä The Dojo Foundation, joka tukee monia avoimen lähdekoodin ohjelmistokehyksiä, joista The Dojo Toolkit on yksi. (The Dojo Foundation, 2008) Dojo JavaScript-kirjastolla on monia isoja yrityksiä takanaan antamassa virallista tukea. Tällaisia yrityksiä ovat muun muassa IBM ja Sun Microsystems. Djan-

27 LUKU 3. AJAX-OHJELMISTOKEHYKSET 21 go, joka on yksi erittäin tunnettu palvelinpuolen ohjelmistokehys käyttää myös hyväkseen Dojo JavaScript-kirjastoa. The Dojo Toolkitin virallinen verkkosivu löytyy osoitteesta: (Lerner, 2007a) Ajax-ominaisuudet The Dojo Toolkit tarjoaa kaksi perusfunktiota, joilla voidaan lähettää asynkroninen viesti selaimelta palvelimelle. Nämä funktiot ovat dojo.xhrget() ja dojo.xhrpost(). Alla on esitetty esimerkkitoteutus funktiosta dojo.xhrget(). dojo.xhrget ({ url: '/some_url', load: function (data) { processresponse(data); }, error: function (data) { processerror(); } }); Tästä huomataan, että asynkronisia viestejä voidaan lähettää melkein samalla tavalla kuin Prototype JavaScript-kirjaston kanssa. Prototypen tapaan, tiedonsiirtoformaattina voidaan käyttää myös JSON:ia. Dojo JavaScript-kirjasto tarjoaa paljon Ajax-ominaisuuksia. Yksi ominaisuus, mitä Prototype JavaScript-kirjastosta ei löytynyt, oli iframe:n käyttö XmlHttp- Requestin sijasta. Kirjasto päättää automaattisesti milloin on kannattavinta käyttää iframe:a XmlHttpRequestin sijasta Koodauskäytännöt Kirjastosta on saatavilla pari eri tuotantoversiota. The Dojo Foundation tarjoaa myös versionhallintajärjestelmän, josta kehitysversion lähdekoodista voi hakea. Vaikka koodia onkin paljon, on itse kehitysversion lähdekoodia myös kommentoitu selkeästi. The Dojo Toolkit sisältää huikean määrän toimintoja ja tästä syystä koko kirjasto on jaettu erillisiin paketteihin. Paketointijärjestelmän paketit muistuttavat hyvin paljon Java-kielen paketteja, joissa kehittäjän täytyy määritellä mitä paketteja hän haluaa käyttää. (Roodt, 2006) Kehittäjän täytyy ensiksi sisällyttää

28 LUKU 3. AJAX-OHJELMISTOKEHYKSET 22 dojo.js JavaScript-tiedosto dokumenttiinsa ja tämän jälkeen hän voi saada enemmän toimintoja käyttöönsä kutsumalla funktiota dojo.require(). (The Dojo Foundation, 2008) Tämänkaltainen toimintojen erottelu tekee Ajax-sovelluksista kevyempiä, koska käyttäjän ei tarvitse ladata koko JavaScript-kirjastoa omaan selaimeensa. Kirjasto tarjoaa erittäin tehokkaan tavan toteuttaa tapahtumankäsittelyt. Tämän lähestymistavan avulla voidaan lisätä tapahtumia objekteihin, ilman että itse objekteja muokataan. (Roodt, 2006) Dojo tekee myös itse JavaScriptin kirjoittamisesta helpompaa. Sen sisältämä langpaketti sisältää monia yleishyödyllisiä funktioita, joista esimerkiksi yksi helpottaa taulukkojen iteroimista. Tätä funktiota voitaisiin soveltaa seuraavasti: (Lerner, 2007a) // Suoritetaan funktio iterationfunctionname() jokaiselle // taulukon arrayname alkiolle dojo.lang.foreach(arrayname, iterationfunctionname); Lisäosat The Dojo Foundation tarjoaa kaksi lisäosaa The Dojo Toolkitille. Ensimmäinen näistä on Dijit, joka tarjoaa paljon visuaalisia komponentteja. Nämä komponentit ovat suunniteltu niin, että ne olisivat mahdollisimman esteettömiä. Tämä tarkoittaa sitä, että myös esimerkiksi ruudunlukuohjelmat (engl. screen readers) voivat käyttää Ajax-sovelluksia, jotka ovat suunniteltu näillä komponenteilla. Toinen The Dojo Foundationin tarjoamista lisäosista on DojoX, joka tarjoaa ominaisuuksia, joita ei usein löydä muista JavaScript-kirjastoista. Lisäosan avulla voidaan annetusta datasta tehdä erilaisia diagrammeja ja taulukoita. Tämän lisäksi lisäosalla voidaan piirtää SVG- tai VML-pohjaista vektorigraikkaa. Ajax-sovelluksesta voidaan myös tehdä toimintakelpoinen oine-tilassa. Nämä ovat vain muutamia esimerkkejä siitä, mihin lisäosa pystyy. (The Dojo Foundation, 2008) The Dojo Foundation tukee myös paria muuta ohjelmistokehystä, mutta nämä eivät ole lisäosia The Dojo Toolkitille, vaan ne ovat itsenäisiä ohjelmistokehyksiä Selaintuki Dojon virallisilla kotisivuilla mainitaan, että seuraavat selaimet tukevat kirjaston käyttöä: (The Dojo Foundation, 2008) Internet Explorer 6.0+

29 LUKU 3. AJAX-OHJELMISTOKEHYKSET 23 Firefox 1.5+ Konqueror 3.5+ Safari (uusin versio) Opera (uusin versio) Jotkut toiminnot saattavat myös prototypen tapaan toimia muilla selaimilla. Safarin ja Operan tapauksessa virallista tukea luvataan vain uusimpaan versioon. Kun jommasta kummasta selaimesta julkaistaan uusi versio, ei edellinen versio saa enään virallista tukea. Näin ollen on myös hyvin todennäköistä, että kirjasto toimii myös vanhemmissa versioissa Dokumentaatio Kirjaston viralliset verkkosivut tarjoavat runsaasti dokumentaatiota. Kirjaston verkkosivuilta on muun muassa saatavilla yksi kattava verkkokirja, jota kuka tahansa voi lukea ilmaiseksi. The Dojo Foundation tarjoaa myös kirjastolleen API-dokumentaation, koodiesimerkkejä ja demoja. Dokumentaation laatu näyttää olevan saman laatuista kun Prototypen, mutta itse dokumentaatiota on luonnollisesti paljon enemmän kirjaston suuren koon takia. (The Dojo Foundation, 2008) Alex Russell, joka aloitti kirjaston kehitystyön, on julkaissut kirjan nimeltä Dojo: The Denitive Guide. On myös olemassa pari muutakin kirjaa, jotka käsittelevät pelkästään kyseistä kirjastoa Yhteisö The Dojo Foundation tukee monia vapaan lähdekoodin projekteja, joista The Dojo Toolkit on yksi. The Dojo Foundation on saanut myös taakseen monia isoja yrityksiä, kuten esimerkiksi Sun Microsystems. Nämä yhtiöt tukevat eri projekteja sekä rahallisesti että teknisesti. Tässä yhteydessä teknisellä tuella tarkoitetaan sitä, että yrityksellä on henkilöstöä, joka osallistuu itse ohjelmistokehyksen kehitykseen. Myös ulkopuoliset henkilöt voivat avustaa kirjaston kehitystä esimerkiksi raportoimalla bugeja. Mutta jos ulkopuoliset tahot haluavat saada omaa koodiaan johonkin The Dojo Foundationin tukemaan projektiin tarvitsee heidän allekirjoittaa CLA The Dojo Foundationin kanssa. (The Dojo Foundation, 2008) Kirjastolla on myös omat sähköpostilistat, keskustelupalstat ja IRC-kanava. Tämän lisäksi kirjastolla on myös oma bugien raportointijärjestelmä.

30 LUKU 3. AJAX-OHJELMISTOKEHYKSET The Yahoo! User Interface Library (YUI) Yahoo! User Interface Library tai lyhyemmin YUI JavaScript-kirjasto sai alkunsa vuonna 2005, jolloin Yahoo!:n työntekijät alkoivat kehittää JavaScript-kirjastoa. Seuraavan vuoden helmikuussa kirjastosta julkaistiin ensimmäinen versio, joka oli kaikkien vapaasti ladattavissa. Kirjaston viralliset verkkosivut löytyvät osoitteesta Ajax-ominaisuudet Asynkronisen viestin lähetys onnistuu kirjastolla suhteellisen helposti Funktiolla YAHOO.util.Connect.asyncRequest voidaan lähettää asynkroninen viesti selaimelta palvelimelle. Alla on esitetty esimerkki funktion käytöstä: (Yahoo! Developer Network, 2008a) YAHOO.util.Connect.asyncRequest( 'GET', '/some_url', { success: function(o) { processresponse(o); }, failure: function(o) { processerror(); } } ); YUI:n avulla voidaan myös lähettää asynkronisia kutsuja, jossa käytetään tiedonsiirtoformaattina JSON:ia Koodauskäytännöt YUI:n lähdekoodi on selkeätä ja koodia on myös kommentoitu tarpeeksi. Näin ollen omien muutoksien lisääminen itse kirjastoon on myös suhteellisen helppoa. Toiminnallisuus on myös jaettu selkeisiin paketteihin. Jokaisella paketilla on myös oma README-tiedosto, jossa on mainittu kaikki muutokset, mitä pakettiin on tehty. Tämä tekee kirjaston päivittämisestä helpompaa. Jos kirjastoa päivitetään

31 LUKU 3. AJAX-OHJELMISTOKEHYKSET 25 ja tästä syystä jokin sivun osa lakkaat toimimasta, pystytään nopeasti selvittämään mikä toiminto kirjastossa on muuttunut. Yleisenä koodauskäytäntönä on usein ollut se, että globaaleja muuttujia tulisi välttää. Tästä syystä YUI JavaScript-kirjasto käyttää hyväkseen vain yhtä globaalia muuttujaa nimeltä YAHOO. Tämän globaalin muuttujan avulla pääsee käsiksi kaikkiin kirjaston tarjoamiin ominaisuuksiin. (Roodt, 2006) Tapahtumankäsittely kirjastossa tapahtuu enemmän tai vähemmän samalla tavalla kuin Dojo JavaScript-kirjastossa Lisäosat Kirjastosta löytyy laaja valikoima yleishyödyllisiä toimintoja. Jokaiselle päätoiminnolle ollaan annettu oma luokkansa tai pakettinsa. Näitä ovat esimerkiksi Drag & Drop, Menu ja Resize. Kirjasto ei ole pelkästään JavaScript-kirjasto, vaikka suurin osa kirjastosta onkin JavaScript-koodia. Kirjasto tarjoaa myös neljä eri CSS tiedostoa, kuten esimerkiksi Reset CSS ja Fonts CSS. Reset CSS standardoi CSS-määritykset useimmille selaimille, ja Fonts CSS yrittää näyttää fontit samalla tavalla kaikissa selaimissa Selaintuki YUI JavaScript-kirjasto on vertailluista kirjastoista se, joka määrittää kirjastonsa selaintuen kaikista selkeimmin. Taulukossa 3.2 on esitetty mitkä selaimet tukevat kirjastoa milläkin käyttöjärjestelmällä. Taulukon ensimmäinen sarake viittaa käyttäjän käyttämään selaimeen ja taulukon ensimmäinen rivi viittaa käyttäjän käyttöjärjestelmään. Merkintä A-grade tarkoittaa sitä, että kirjasto tukee kyseistä selain-käyttöjärjestelmä -yhdistelmää. Kirjasto käyttää tämän merkinnän lisäksi myös merkintöjä C-grade ja X-grade, mutta nämä eivät ole niinkään kiinnostavia tämän vertailun toteuttamiseen. Ristimerkki selaimen nimessä tarkoittaa, että virallista tukea annetaan vain selaimen uusimmalle versiolle. (Yahoo! Developer Network, 2008b) Yahoo! seuraa aktiivisesti selainten kehitystä. Aktiivisen seurannan kohteena on nyt muun muassa Firefox 3 ja Internet Explorer 8. Mitä enemmän uusia versioita selaimista julkaistaan, sitä vähemmän vanhoja versioita tuetaan. Yahoo!:lla on myös selkeät tulevaisuuden suunnitelmat siitä, mitä selaimia tullaan virallisesti tukemaan tulevaisuudessa. (Yahoo! Developer Network, 2008b)

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML AJAX-konsepti AJAX Asynchronous JavaScript And XML Viimeisin muoti-ilmiö web-ohjelmoinissa, termi Ajax tuli käyttöön vuoden 2005 aikana Joukko teknologioita, joiden avulla voidaan toteuttaa uudenlaisen

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) AJAX, Asynchronous JavaScript And XML. AJAX, Asynchronous JavaScript And XML

Järjestelmäarkkitehtuuri (TK081702) AJAX, Asynchronous JavaScript And XML. AJAX, Asynchronous JavaScript And XML Järjestelmäarkkitehtuuri (TK081702) Ajax 2000-luvun alkuvuosina selainsotien rauhoituttua ohjelmistotalot alkoivat kehittää selainten luoman uuden ohjelmointiympäristön käyttötapoja. Syntyi AJAX (Asynchronous

Lisätiedot

JWT 2016 luento 11. to 21.4.2016 klo 14-15. Aulikki Hyrskykari. PinniB 1097. Aulikki Hyrskykari

JWT 2016 luento 11. to 21.4.2016 klo 14-15. Aulikki Hyrskykari. PinniB 1097. Aulikki Hyrskykari JWT 2016 luento 11 to 21.4.2016 klo 14-15 Aulikki Hyrskykari PinniB 1097 1 Viime luennolla o AJAX ja JSON, harjoitustyön tehtävänanto, vierailuluento avoimesta datasta Tänään o APIt rajapinnoista yleisesti

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services Järjestelmäarkkitehtuuri (TK081702) Standardoidutu tapa integroida sovelluksia Internetin kautta avointen protokollien ja rajapintojen avulla. tekniikka mahdollista ITjärjestelmien liittämiseen yrityskumppaneiden

Lisätiedot

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys WWW-OHJELMOINTI 1 WWW-ohjelmoinnin kokonaisuus SGML, XML, HTML WWW-selaimen sovellusohjelmointi WWW-palvelimen sovellusohjelmointi Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 26.10.2000

Lisätiedot

582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus 582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus Sisältö Mikä on web-sovellus? Selaimen rooli web-sovelluksessa Palvelimen rooli web-sovelluksessa Aineistopyynnöt Tiedon välittäminen

Lisätiedot

HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli.

HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli. HTML & CSS Antti Koivisto HTML (HyperText Markup Language)! HTML on sivujen kuvauskieli.! Se ei ole ohjelmointikieli.! HTML on merkintäkieli, joka koostuu monista merkintä tägeistä ().! Voidaan

Lisätiedot

ELM GROUP 04. Teemu Laakso Henrik Talarmo

ELM GROUP 04. Teemu Laakso Henrik Talarmo ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................

Lisätiedot

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 30.3.2008,

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702)

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri (TK081702) yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,

Lisätiedot

3 Verkkosaavutettavuuden tekniset perusteet

3 Verkkosaavutettavuuden tekniset perusteet 3 Verkkosaavutettavuuden tekniset perusteet Saavutettavuuden toteuttaminen edellyttää lähtökohtaisesti tietoa laitteista ja sovelluksista, käyttäjistä ja käyttötavoista, sekä tekniikasta. Tekniikasta on

Lisätiedot

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti5004000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 4.6.2007,

Lisätiedot

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy IBM Collaboration Forum ٨.٣.٢٠١١ XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy ٢٠١١ IBM Corporation Domino-sovelluskehitys Nopea kehitysympäristö (Rapid application development,

Lisätiedot

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka. Joni Korjala APACHE WWW-PALVELIN Seminaarityö 2012

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka. Joni Korjala APACHE WWW-PALVELIN Seminaarityö 2012 KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka Joni Korjala APACHE WWW-PALVELIN Seminaarityö 2012 SISÄLLYS 1 JOHDANTO 3 2 WWW-PALVELIMEN TOIMINTA 4 3 OMINAISUUDET

Lisätiedot

MOBISITE-TYÖKALUN SISÄLTÄMÄT TOIMINNOT

MOBISITE-TYÖKALUN SISÄLTÄMÄT TOIMINNOT MOBISITE-TYÖKALU MobiSite on työkalu matkapuhelimeen soveltuvan mobiilisivuston rakentamiseen. AIMO-järjestelmän jatkuvasti päivittyvä päätelaitetunnistus tunnistaa useimmat puhelinmallit ja mukauttaa

Lisätiedot

TIEDEJUTTUKURSSI 29.9.2011 FM VILLE SALMINEN

TIEDEJUTTUKURSSI 29.9.2011 FM VILLE SALMINEN TIEDEJUTTUKURSSI 29.9.2011 FM VILLE SALMINEN YLEISTÄ LUENNOT (8 H) & TYÖPAJA (2 H) YHTEYSTIEDOT ville.salminen@oulu.fi VÄLINEET Tekstieditori Mieluummin Windowsin Notepad kuin esimerkiksi Microsoft Word

Lisätiedot

HTML5 -elementit jatkuu

HTML5 -elementit jatkuu HTML5 -elementit jatkuu Harjoitus: xhtml.htm -> html5.htm Muuta tämä xhtml dokumentti HTML5:ksi: http://users.metropolia.fi/~norrm/s12/kalasu/xhtml.htm Validoi myös koodisi: http://validator.w3.org/ "Mallivastaus"

Lisätiedot

Tekninen suunnitelma - StatbeatMOBILE

Tekninen suunnitelma - StatbeatMOBILE Tekninen suunnitelma - StatbeatMOBILE Versio Päivämäärä Henkilö Kuvaus 1.0 13.12.2013 Pöyry Alustava rakenne ja sisältö 1.1 22.12.2013 Pöyry Lisätty tekstiä ilmoituksiin, turvallisuuteen ja sisäiseen API:in

Lisätiedot

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti Teknillinen korkeakoulu 51 Vaatimusmäärittely Ohjelma-ajanvälitys komponentti Versio Päiväys Tekijä Kuvaus 0.1 21.11.01 Oskari Pirttikoski Ensimmäinen versio 0.2 27.11.01 Oskari Pirttikoski Lisätty termit

Lisätiedot

Verkkosisällön saavutettavuusohjeet 2.0: hyviä ohjeita monimuotoisen sisällön suunnitteluun ja arviointiin

Verkkosisällön saavutettavuusohjeet 2.0: hyviä ohjeita monimuotoisen sisällön suunnitteluun ja arviointiin Verkkosisällön saavutettavuusohjeet 2.0: hyviä ohjeita monimuotoisen sisällön suunnitteluun ja arviointiin Ossi Nykänen Tampereen teknillinen yliopisto, Hypermedialaboratorio, W3C Suomen toimisto Terveyden

Lisätiedot

Tiedonsiirto- ja rajapintastandardit

Tiedonsiirto- ja rajapintastandardit Tiedonsiirto- ja rajapintastandardit Viitekehys Julkishallinnon perustietovarantojen rajapinnat (PERA) työryhmän tulokset valmiit syksyllä 2011 Määrittelee teknisen arkkitehtuuriratkaisun tietovarantojen

Lisätiedot

Tikon Web-sovellukset

Tikon Web-sovellukset Toukokuu 2015 1 (11) Tikon Web-sovellukset Toukokuu 2015 2 (11) 1 Johdanto... 3 2 Silverlight sovellukset... 3 2.1 Windows... 3 2.1.1 Microsoft Silverlight... 3 2.1.2 Tablet-laitteet... 4 2.1.3 Selaimet...

Lisätiedot

Googlen pilvipalvelut tutuksi / Google Drive

Googlen pilvipalvelut tutuksi / Google Drive Googlen pilvipalvelut tutuksi / Google Drive Koulutuksen aikana harjoitellaan tiedostojen ja kuvien siirtoa Google Drive-palveluun sekä tiedostojen jakamista Lisäksi harjoitellaan Google Docs (Asikirjat)

Lisätiedot

T-111.361 Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

T-111.361 Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot T-111.361 Hypermediadokumentin laatiminen -Ohjelmointi Peruskäsitys www-ohjelmoinnin kentästä Tekniikat interaktiivisuuden toteuttamiseen tekniikat tekniikat Tietokannat Juha Laitinen TKK/TML juha.laitinen@hut.fi

Lisätiedot

SALITE.fi -Verkon pääkäyttäjän ohje

SALITE.fi -Verkon pääkäyttäjän ohje SALITE.fi -Verkon pääkäyttäjän ohje Sisältö 1 Verkon pääkäyttäjä (Network Admin)...3 2 Verkonhallinta...3 2.1 Navigointi verkonhallintaan...3 2.2 Sivustot...3 2.1 Sivustojen toiminnot...4 2.3 Sivuston

Lisätiedot

W3C-teknologiat ja yhteensopivuus

W3C-teknologiat ja yhteensopivuus W3C-teknologiat ja yhteensopivuus Ossi Nykänen Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), Hypermedialaboratorio W3C Suomen toimisto Esitelmä Hyvin lyhyt versio: W3C asettaa

Lisätiedot

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Viimeksi muokattu 5. toukokuuta 2012 Maastotietokannan torrent-jakeluun sisältyy yli 5000 zip-arkistoa,

Lisätiedot

Tekninen suunnitelma - StatbeatMOBILE

Tekninen suunnitelma - StatbeatMOBILE Tekninen suunnitelma - StatbeatMOBILE Versio Päivämäärä Henkilö Kuvaus 1.0 13.12.2013 Pöyry Alustava rakenne ja sisältö 1.1 22.12.2013 Pöyry Lisätty tekstiä ilmoituksiin, turvallisuuteen ja sisäiseen API:in

Lisätiedot

Googlen pilvipalvelut tutuksi / Google Drive

Googlen pilvipalvelut tutuksi / Google Drive Googlen pilvipalvelut tutuksi / Google Drive Koulutuksen aikana harjoitellaan tiedostojen ja kuvien siirtoa Google Drive-palveluun sekä tiedostojen jakamista Lisäksi harjoitellaan Google Docs (Asikirjat)

Lisätiedot

Projektinhallintaa paikkatiedon avulla

Projektinhallintaa paikkatiedon avulla Projektinhallintaa paikkatiedon avulla Tampereen Teknillinen Yliopisto / Porin laitos Teemu Kumpumäki teemu.kumpumaki@tut.fi 25.6.2015 1 Paikkatieto ja projektinhallinta Paikkatiedon käyttäminen projektinhallinnassa

Lisätiedot

6 XML-työkalut 1. 6 XML-työkalut

6 XML-työkalut 1. 6 XML-työkalut 6 XML-työkalut 1 6 XML-työkalut XML:n periaatteiden tutustumisen jälkeen on helpompi tutustua XML-dokumenttien käsittelyyn ja katseluun suunniteltuja työkaiuja. XML:n yleistymisen pahin pullonkaula on

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

ESA BORG AJAX-HENKINEN SELAINKÄYTTÖLIITTYMÄ ASE-LAITOKSEN SÄÄASEMAAN. Kandidaatintyö

ESA BORG AJAX-HENKINEN SELAINKÄYTTÖLIITTYMÄ ASE-LAITOKSEN SÄÄASEMAAN. Kandidaatintyö ESA BORG AJAX-HENKINEN SELAINKÄYTTÖLIITTYMÄ ASE-LAITOKSEN SÄÄASEMAAN Kandidaatintyö Tarkastaja: Jari Seppälä Aihe hyväksytty 30.8.2011 II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan

Lisätiedot

Avoimen lähdekoodin kehitysmallit

Avoimen lähdekoodin kehitysmallit Avoimen lähdekoodin kehitysmallit Arto Teräs Avoimen lähdekoodin ohjelmistot teknisessä laskennassa -työpaja CSC, 25.5.2009 Avoimen lähdekoodin kehitysmallit / Arto Teräs 2009-05-25

Lisätiedot

Web Service torilla tavataan!

Web Service torilla tavataan! Web Service torilla tavataan! Jari Putula Avarea Oy COPYRIGHT BY AVAREA 2009 1 Google Trends COPYRIGHT BY AVAREA 2009 2 1 1. Mahdollistajat 2. Web service? 3. KISS 4. Miksi? 5. Analogia 6. Ajax 7. Esimerkki

Lisätiedot

URL-osoitteiden suunnittelu

URL-osoitteiden suunnittelu Tim Berners-Lee: Jos olisin arvannut kuinka suosittu Webistä tulee, olisin yrittänyt keksiä URL-osoitteiden alkuosalle jonkin toisen muodon. http-alkuosa on hankala erityisesti puhelinkeskusteluissa. URL

Lisätiedot

DXL Library ja DXL-kielen olemus. Pekka Mäkinen Pekka.Makinen@softqa.fi SoftQA Oy http/www.softqa.fi/

DXL Library ja DXL-kielen olemus. Pekka Mäkinen Pekka.Makinen@softqa.fi SoftQA Oy http/www.softqa.fi/ DXL Library ja DXL-kielen olemus Pekka Mäkinen Pekka.Makinen@softqa.fi SoftQA Oy http/www.softqa.fi/ DOORS extension Language DXL on DOORSin laajennuskieli, jolla voidaan kehittää lisätoiminnallisuutta.

Lisätiedot

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö Tekijät: Eemeli Honkonen Joni Metsälä Työ palautettu: SISÄLLYSLUETTELO: 1 SEMINAARITYÖN KUVAUS... 3 2 TIETOKANTA... 3 2.1 MITÄ TIETOKANNAT SITTEN OVAT?... 3

Lisätiedot

Laajuus 5 op Luennot: 12 x 2t Harjoitukset: 7 viikkoharjoitusta harjoitusten tekemiseen saatavissa apua 2 ryhmää / harjoitus

Laajuus 5 op Luennot: 12 x 2t Harjoitukset: 7 viikkoharjoitusta harjoitusten tekemiseen saatavissa apua 2 ryhmää / harjoitus Laajuus 5 op Luennot: 12 x 2t 11.3.2014 29.4.2014 Harjoitukset: 7 viikkoharjoitusta harjoitusten tekemiseen saatavissa apua 2 ryhmää / harjoitus Lähiopetuksen jäkeen harjoitustyö ja tentti Aulikki Hyrskykari

Lisätiedot

Web sovelluksen kehittäminen sähkönjakeluverkon suojareleisiin

Web sovelluksen kehittäminen sähkönjakeluverkon suojareleisiin TEKNILLINEN KORKEAKOULU / VAASAN YLIOPISTO Diplomityöesitelmä Web sovelluksen kehittäminen sähkönjakeluverkon suojareleisiin Timo Ahola 2006 Web sovellus Web palvelut joiden avulla laite voidaan liittää

Lisätiedot

Menetelmäraportti - Konfiguraationhallinta

Menetelmäraportti - Konfiguraationhallinta Menetelmäraportti - Konfiguraationhallinta Päiväys Tekijä 22.03.02 Ville Vaittinen Sisällysluettelo 1. Johdanto... 3 1.1 Tärkeimmät lyhenteet... 3 2. Konfiguraationhallinnan tärkeimmät välineet... 4 2.1

Lisätiedot

MITÄ JAVASCRIPT ON?...3

MITÄ JAVASCRIPT ON?...3 JavaScript MITÄ JAVASCRIPT ON?...3 YLEISTÄ JAVASCRIPTIN SYNTAKSISTA...3 KÄSKYSANAT JA MUUT VARATUT SANAT...3 MUUTTUJIEN, FUNKTIOIDEN JA LUOKKIEN NIMISSÄ...3 HTML-TAGEIHIN VIITTAAVISSA METODINIMISSÄ...3

Lisätiedot

BLOGGER. ohjeita blogin pitämiseen Googlen Bloggerilla

BLOGGER. ohjeita blogin pitämiseen Googlen Bloggerilla BLOGGER ohjeita blogin pitämiseen Googlen Bloggerilla Sisältö Blogin luominen... 1 Uuden blogitekstin kirjoittaminen... 4 Kuvan lisääminen blogitekstiin... 5 Lisää kuva omalta koneelta... 6 Lisää kuva

Lisätiedot

JWT 2017 luento 10. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari

JWT 2017 luento 10. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari JWT 2017 luento 10 to 20.4.2016 klo 12-14 Aulikki Hyrskykari PinniB 1096 1 Viime luennolla o Funktiot JavaScriptissä, callback, IIFE, sulkeumat ja Module pattern Tänään o AJAX (Asynchronous JavaScript

Lisätiedot

Osoitin ja viittaus C++:ssa

Osoitin ja viittaus C++:ssa Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja

Lisätiedot

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...

Lisätiedot

Visma Fivaldi. Ohjeet Java web startin ja HTML5-työkalun aktivointiin

Visma Fivaldi. Ohjeet Java web startin ja HTML5-työkalun aktivointiin Visma Fivaldi Ohjeet Java web startin ja HTML5-työkalun aktivointiin Visma Software Oy pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai muutoksiin tässä oppaassa ja/tai ohjelmassa ilman eri

Lisätiedot

Office 2013 - ohjelmiston asennusohje

Office 2013 - ohjelmiston asennusohje Office 2013 - ohjelmiston asennusohje Tämän ohjeen kuvakaappaukset on otettu asentaessa ohjelmistoa Windows 7 käyttöjärjestelmää käyttävään koneeseen. Näkymät voivat hieman poiketa, jos sinulla on Windows

Lisätiedot

TIE Principles of Programming Languages CEYLON

TIE Principles of Programming Languages CEYLON TIE-20306 Principles of Programming Languages CEYLON SISÄLLYSLUETTELO 1. YLEISTIETOA KIELESTÄ JA SEN KEHITTÄMISESTÄ... 1 2. CEYLONIN OMINAISUUKSIA... 2 2.1 Modulaarisuus... 2 2.2 Tyypit... 2 2.3 Muita

Lisätiedot

,QWHUQHWVHODLPHQNl\WWlPLQHQ±,QWHUQHW([SORUHU

,QWHUQHWVHODLPHQNl\WWlPLQHQ±,QWHUQHW([SORUHU ,QWHUQHWVHODLPHQNl\WWlPLQHQ±,QWHUQHW([SORUHU Tässä pääsette tutustumaan Internet Explorerin (IE) käyttöön. Muitakin selainversioita löytyy, kuten esimerkiksi Netscape, Opera ja Mozilla. Näiden muiden selainten

Lisätiedot

Digitaalisen median tekniikat. Luento 4: JavaScript

Digitaalisen median tekniikat. Luento 4: JavaScript Digitaalisen median tekniikat Luento 4: JavaScript Luennot 1. Intro 2. XHTML 3. CSS 4. JavaScript Historia Syntaksi Dom Esimerkki: kuvagalleria 5. JavaScript-kirjastot & AJAX 6. Käytettävyys & saavutettavuus

Lisätiedot

10 Nykyaikainen WWW-arkkitehtuuri

10 Nykyaikainen WWW-arkkitehtuuri 10 Nykyaikainen WWW-arkkitehtuuri è è è 10 Nykyaikainen WWW-arkkitehtuuri WWW on ylivoimaisesti suosituin hypertekstijärjestelmä. Käydään seuraavaksi läpi nykyaikaisen WWW-arkkitehtuurin perusteet. Vuonna

Lisätiedot

Keskustelusivusto. Suunnitteludokumentti

Keskustelusivusto. Suunnitteludokumentti Keskustelusivusto Suunnitteludokumentti Tietokantasovellus, Syksy 2007, Ryhmä 1 Tuomas Puikkonen tpuikkon@cs.helsinki.fi Tietojenkäsittelytieteen laitos Helsingin Yliopisto Sisältö Keskustelusivusto...1

Lisätiedot

Ti LÄHIVERKOT -erikoistyökurssi. X Window System. Jukka Lankinen

Ti LÄHIVERKOT -erikoistyökurssi. X Window System. Jukka Lankinen Ti5316800 LÄHIVERKOT -erikoistyökurssi X Window System Jukka Lankinen 2007-2008 Sisällys Esitys vastaa seuraaviin kysymyksiin: Mikä on X Window System? Minkälainen X on? Mistä sen saa? Miten X:ää käytetään?

Lisätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

Verkkopalveluiden saavutettavuus

Verkkopalveluiden saavutettavuus Verkkopalveluiden saavutettavuus Puhuja: Ossi Nykänen Tampereen teknillinen yliopisto, Hypermedialaboratorio, W3C Suomen toimisto Paikka: Helsinki, Tieteiden talo, 24.3.2011 Johdanto Verkkopalvelun saavutettavuus

Lisätiedot

Ohjelmointi 1. Kumppanit

Ohjelmointi 1. Kumppanit Ohjelmointi 1 Kumppanit November 20, 2012 2 Contents 1 Mitä ohjelmointi on 7 2 Ensimmäinen C#-ohjelma 9 2.1 Ohjelman kirjoittaminen......................... 9 A Liite 11 3 4 CONTENTS Esipuhe Esipuhe 5

Lisätiedot

13/20: Kierrätys kannattaa koodaamisessakin

13/20: Kierrätys kannattaa koodaamisessakin Ohjelmointi 1 / syksy 2007 13/20: Kierrätys kannattaa koodaamisessakin Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy

Lisätiedot

add_action( wordcamp_jkl, johdatus_filttereihin );

add_action( wordcamp_jkl, johdatus_filttereihin ); add_action( wordcamp_jkl, johdatus_filttereihin ); WordCamp JKL 9.2.2018 Mikko Saari Painava sana oy mikko@mikkosaari.fi @msaari Mitä filterit ja actionit ovat? Filter ja action ovat melkein samoja asioita:

Lisätiedot

Olet tehnyt hyvän valinnan hankkiessasi kotimaisen StorageIT varmuuskopiointipalvelun.

Olet tehnyt hyvän valinnan hankkiessasi kotimaisen StorageIT varmuuskopiointipalvelun. StorageIT 2006 varmuuskopiointiohjelman asennusohje. Hyvä asiakkaamme! Olet tehnyt hyvän valinnan hankkiessasi kotimaisen StorageIT varmuuskopiointipalvelun. Ennen asennuksen aloittamista Varmista, että

Lisätiedot

JAVASCRIPT-KEHITYSKIRJASTOJEN VERTAILU

JAVASCRIPT-KEHITYSKIRJASTOJEN VERTAILU JAVASCRIPT-KEHITYSKIRJASTOJEN VERTAILU Ammattikorkeakoulututkinnon opinnäytetyö Tietojenkäsittely Hämeenlinna, 25.3.2010 Mikko Mäkelä OPINNÄYTETYÖ Tietojenkäsittely Hämeenlinna Työn nimi JavaScript-kehityskirjastojen

Lisätiedot

Tikon Web-sovellukset

Tikon Web-sovellukset Marraskuu 2014 1 (9) Tikon Web-sovellukset Marraskuu 2014 2 (9) 1 Johdanto... 3 2 Windows... 3 2.1 Microsoft Silverlight... 3 3 Tablet-laitteet... 4 4 Selaimet... 5 4.1 Yleiset asetukset (kaikki selaimet)...

Lisätiedot

VisualStudio Pikaopas, osa 1: WEB sivujen suunnittelu

VisualStudio Pikaopas, osa 1: WEB sivujen suunnittelu HAAGA HELIA/IltaTiko ICT2TD005: Ohjelmisto suunnittelutaito 1 VisualStudio Pikaopas, osa 1: WEB sivujen suunnittelu Tämä pikaopas opastaa käyttämään VisualStudion web sivujen suunnittelu ja toteutusominaisuuksia.

Lisätiedot

Oma kartta Google Maps -palveluun

Oma kartta Google Maps -palveluun TAMPERE 1 (6) Oma kartta Google Maps -palveluun Google Maps palveluun on mahdollista luoda karttoja omilla paikkamerkeillä. Tilin luonti Google-palveluihin Tehdäksesi karttoja omilla paikkamerkinnöillä,

Lisätiedot

Tutkitaan sitten HTML-dokumenttien anatomiaa, jotta päästään käsiksi rakenteisten dokumenttien käsitteistöön esimerkkien kautta.

Tutkitaan sitten HTML-dokumenttien anatomiaa, jotta päästään käsiksi rakenteisten dokumenttien käsitteistöön esimerkkien kautta. 3 HTML ja XHTML Tutkitaan sitten HTML-dokumenttien anatomiaa, jotta päästään käsiksi rakenteisten dokumenttien käsitteistöön esimerkkien kautta.

Lisätiedot

Vaatimusdokumentti. Ketutus-ryhmä. Helsinki 17.7.2007 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Vaatimusdokumentti. Ketutus-ryhmä. Helsinki 17.7.2007 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Vaatimusdokumentti Ketutus-ryhmä Helsinki 17.7.2007 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Aleksanteri

Lisätiedot

SUOMEN KUNTALIITTO RY

SUOMEN KUNTALIITTO RY Karttaliittymä Versio: 18.10.2011 Julkaistu: 27.10.2011 Voimassaoloaika: Toistaiseksi Sisällys 1 Johdanto... 2 1.1 Suosituksen tausta... 2 1.2 Suosituksen rakenne... 2 2 Soveltamisala... 2 3 Lyhenteet...

Lisätiedot

PÄIVITÄ TIETOKONEESI

PÄIVITÄ TIETOKONEESI PÄIVITÄ TIETOKONEESI SAMPOLAN KIRJASTO TIETOTORI Sammonkatu 2 33540 Tampere 040 800 7816 tietotori.sampola@tampere.fi PÄIVITÄ TIETOKONEESI 2(16) Sisällys 1. Mihin päivityksiä tarvitaan?... 3 1.1. Windowsin

Lisätiedot

Vasteaika. Vasteaikaa koskeva ohje ei ole juuri muuttunut Robert B. Millerin vuonna 1968 pitämästä esityksestä:

Vasteaika. Vasteaikaa koskeva ohje ei ole juuri muuttunut Robert B. Millerin vuonna 1968 pitämästä esityksestä: Nielsen: "Olen tutkinut Webin käytettävyyttä vuodesta 1994, ja jokaisessa tutkimuksessa esiin on noussut sama asia: käyttäjät haluaisivat sivujen latautuvan nopeammin. Aluksi olin sitä mieltä, että käyttäjät

Lisätiedot

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely.

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely. XML prosessointi Miten XML dokumentteja luetaan ja kirjoitetaan XML prosessori lukee ja välittää XML dokumentin sovellukselle. Se sisältää entieettikäsittelijän (mahdollisesti) XML jäsentimen Sovellus

Lisätiedot

Kotisivuohjeet. Eteläpohjalaiset Kylät ry. Sivupohjien rakenne

Kotisivuohjeet. Eteläpohjalaiset Kylät ry. Sivupohjien rakenne Kotisivuohjeet Tässä ohjeessa käydään läpi kotisivujen tekemisen perusteet keskittyen html-koodiin ja sen ominaisuuksiin. Sivupohjissa ulkoasu ja rakenne on pääasiassa jaettu erilliseen css-tyylitiedostoon,

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat Järjestelmäarkkitehtuuri (TK081702) SOA yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,

Lisätiedot

DigiReWork - digitaalisuus työelämän uudistajana

DigiReWork - digitaalisuus työelämän uudistajana DigiReWork - digitaalisuus työelämän uudistajana Googlen työkalut 7.11.2017 Google Nykyään osa 2015 perustettua emoyhtiötä Alphabet:ia Tunnettu sähköpostistaan gmail, selaimestaan Chrome sekä tietenkin

Lisätiedot

CT50A2601 Käyttöjärjestelmät Androidin ja Symbianin vertailu Seminaarityö

CT50A2601 Käyttöjärjestelmät Androidin ja Symbianin vertailu Seminaarityö CT50A2601 Käyttöjärjestelmät Androidin ja Symbianin vertailu Seminaarityö 0349955 Pekka Hyvärinen 0342194 Joonas Heikelä 0327708 Miro Temonen 0350122 Sami Tuominen Yleistä Seminaarityö osa kurssia Käyttöjärjestelmät

Lisätiedot

Korkeakoulujen prosessipalvelin: mallintajan palvelinohje Versio 0.2

Korkeakoulujen prosessipalvelin: mallintajan palvelinohje Versio 0.2 Korkeakoulujen prosessipalvelin: mallintajan palvelinohje Versio 0.2 Sisällysluettelo Muutoshistoria...3 1 Johdanto...4 2 Palvelimen käyttöön tarvittavat ohjelmat...4 3 Palvelimelle kirjautuminen...4 4

Lisätiedot

XHTML - harjoitus. Tehtävä1: Tee xhtml tiedosto käyttäen notepad (muistio) ohjelmaa. Tiedoston tallennus notepad (muistio) ohjelmassa:

XHTML - harjoitus. Tehtävä1: Tee xhtml tiedosto käyttäen notepad (muistio) ohjelmaa. Tiedoston tallennus notepad (muistio) ohjelmassa: XHTML - harjoitus Tehtävä1: Tee xhtml tiedosto käyttäen notepad (muistio) ohjelmaa Tiedoston tallennus notepad (muistio) ohjelmassa: Jokaisen XHTML-dokumentin tulisi alkaa XML-määrittelyllä(engl.XML-prologue),

Lisätiedot

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD)

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) Ohjelmointikäytännöt 21/3/11 Mikko Vuorinen Metropolia Ammattikorkeakoulu 1 Sisältö 1) Mitä on hyvä koodi? 2) Ohjelmointikäytäntöjen merkitys? 3) Koodin asettelu

Lisätiedot

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012 Tiedostot Uudet ominaisuudet: - Ei Tiedostot-kohtaa alueen sisällä, vaan tiedostonvalitsin, jolla tiedostot tuodaan alueelle siihen kohtaan missä ne näytetään - Firefox-selaimella voi työpöydältä raahata

Lisätiedot

OHJE RFID - Suoraohjauskoodin muodostamiseen Toshiba SX sarjan tulostimilla

OHJE RFID - Suoraohjauskoodin muodostamiseen Toshiba SX sarjan tulostimilla OHJE RFID - Suoraohjauskoodin muodostamiseen Toshiba SX sarjan tulostimilla 1.1 Suoraohjauskoodi Suoraohjauskoodi on tulostimen ymmärtämää komentokieltä. Tyypillisesti jokaisella tulostinmerkillä on oma

Lisätiedot

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b Pythonin Kertaus Cse-a1130 Tietotekniikka Sovelluksissa Versio 0.01b Listat 1/2 esimerkkejä listan peruskäytöstä. > lista=['kala','kukko','kissa','koira'] ['kala','kukko','kissa','koira'] >lista.append('kana')

Lisätiedot

Tiedostojen lataaminen netistä ja asentaminen

Tiedostojen lataaminen netistä ja asentaminen s. 1/5 Tiedostojen lataaminen netistä ja asentaminen Yleistä Internetissä on paljon hyödyllisiä ilmaisohjelmia, jotka voi ladata ja asentaa omalle koneelle. Osa ohjelmista löytyy suomenkielisiltä sivuilta,

Lisätiedot

Internetin hyödyt ja vaarat. Miten nettiä käytetään tehokkaasti hyväksi?

Internetin hyödyt ja vaarat. Miten nettiä käytetään tehokkaasti hyväksi? Internetin hyödyt ja vaarat Miten nettiä käytetään tehokkaasti hyväksi? Linkit Chrome https://www.google.com/intl/fi/chrome/browser/ Firefox http://www.mozilla.org/fi/ Opera http://www.opera.com/fi Vertailu

Lisätiedot

ISACA Finland 24.1.2008 OWASP 24.1.2008. The OWASP Foundation. Timo Meriläinen Antti Laulajainen. http://www.owasp.org

ISACA Finland 24.1.2008 OWASP 24.1.2008. The OWASP Foundation. Timo Meriläinen Antti Laulajainen. http://www.owasp.org ISACA Finland 24.1.2008 Timo Meriläinen Antti Laulajainen 24.1.2008 Copyright The Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the License. The Foundation

Lisätiedot

Dokumentin nimi LOGO:) Tampereen teknillinen yliopisto. Ryhmä XXX: Projektiryhmän nimi Projektin nimi

Dokumentin nimi LOGO:) Tampereen teknillinen yliopisto. Ryhmä XXX: Projektiryhmän nimi Projektin nimi Tampereen teknillinen yliopisto Ohjelmistotekniikan laitos OHJ-3500 Ohjelmistotuotannon projektityö LOGO:) Ryhmä XXX: Projektiryhmän nimi Projektin nimi Dokumentin nimi Jakelu: (Ryhmä) (Kurssihenkilökunta)

Lisätiedot

Mikä on WordPress? itse ylläpidettävä (self-hosted) WordPress.com: ilmainen 3. osapuolen ylläpitämä pilvipalvelu (Cloud-hosted)

Mikä on WordPress? itse ylläpidettävä (self-hosted) WordPress.com: ilmainen 3. osapuolen ylläpitämä pilvipalvelu (Cloud-hosted) WordPress.com Mikä on WordPress? Tällä hetkellä maailman suosituin ns. julkaisujärjestelmä (CMS) Rakennettu blogialustaksi, nykyään myös muussa käytössä ilmainen ns. avoimen lähdekoodin julkaisujärjestelmä

Lisätiedot

Ohjeita informaation saavutettavuuteen

Ohjeita informaation saavutettavuuteen Ohjeita informaation saavutettavuuteen Tarkoitus Kasvattaa tietoisuutta ja lisätä esteettömän informaation aiheen näkyvyyttä ja sen merkitystä elinikäisen tasapuolisen oppimisen mahdollisuuksista Tukea

Lisätiedot

Internet-pohjainen ryhmätyöympäristö

Internet-pohjainen ryhmätyöympäristö Menetelmäohje Internet-pohjainen ryhmätyöympäristö Riku Hurmalainen, 24.3.2002 Sisällysluettelo 1. Johdanto...3 2. Termit...4 3. Toteutus...5 3.1. Yleiskuvaus...5 3.2. Tekninen ratkaisu...5 3.3. Tietoturva...6

Lisätiedot

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

Google-dokumentit. Opetusteknologiakeskus Mediamylly

Google-dokumentit. Opetusteknologiakeskus Mediamylly Google-dokumentit 1 2 3 Yleistä 1.1 Tilin luominen 4 1.2 Docs-päävalikkoon siirtyminen 7 Dokumentit-päävalikko 2.1 Kirjaudu Dokumentteihin 9 2.2 Lähetä tiedosto Google-dokumentteihin 11 2.3 Uuden asiakirjan

Lisätiedot

Taustaa. CGI-ohjelmointi

Taustaa. CGI-ohjelmointi Taustaa CGI-ohjelmointi CGI = Common Gateway Interface Hyvin yksinkertainen ja helppo tapa toteuttaa dynaamisuutta ja interaktivisuutta htmldokumentteihin Kehitetty tiedon siirtoon palvelimen ja asiakasselaimen

Lisätiedot

Mikä on internet, miten se toimii? Mauri Heinonen

Mikä on internet, miten se toimii? Mauri Heinonen Mikä on internet, miten se toimii? Mauri Heinonen Mikä on Internet? Verkkojen verkko Muodostettu liittämällä lukuisia aliverkkoja suuremmaksi verkoksi Sivustojen tekemiseen käytetään kuvauskielta HTML

Lisätiedot

Digitaalisen median tekniikat Luento 1: Intro

Digitaalisen median tekniikat Luento 1: Intro Digitaalisen median tekniikat Luento 1: Intro Web Mahtava alusta tiedon välittämiseen! Information Superhighway! Web Archive! Gutenberg! DEMO Kirjasto ja analoginen media digitaaliseksi Julkaisutekniikan

Lisätiedot

VERKON ASETUKSET SEKÄ WINDOWSIN PÄIVITTÄMINEN

VERKON ASETUKSET SEKÄ WINDOWSIN PÄIVITTÄMINEN VERKON ASETUKSET SEKÄ WINDOWSIN PÄIVITTÄMINEN Tämän harjoituksen tarkoituksena on varmistaa verkon asetukset sekä päivittää Windows käyttäen Windows Update -palvelua. Dokumentin lopussa on palautettava

Lisätiedot

Sähköposti ja uutisryhmät 4.5.2005

Sähköposti ja uutisryhmät 4.5.2005 Outlook Express Käyttöliittymä Outlook Express on windows käyttöön tarkoitettu sähköpostin ja uutisryhmien luku- ja kirjoitussovellus. Se käynnistyy joko omasta kuvakkeestaan työpöydältä tai Internet Explorer

Lisätiedot

PUSH palvelut mobiilikehityksessä: Android ja Windows phone 7. Pauli Kettunen

PUSH palvelut mobiilikehityksessä: Android ja Windows phone 7. Pauli Kettunen PUSH palvelut mobiilikehityksessä: Android ja Windows phone 7 Pauli Kettunen Esityksen rakenne 1. Taustaa 2. Push web-ohjelmoinnissa Comet Interaktiomallit 3. Push älypuhelinalustoilla Deacon pilvipalveluna

Lisätiedot

Dart. Ryhmä 38. Ville Tahvanainen. Juha Häkli

Dart. Ryhmä 38. Ville Tahvanainen. Juha Häkli Dart Ryhmä 38 Ville Tahvanainen Juha Häkli 1.LYHYESTI Dart on luokkapohjainen, yksiperintäinen, puhdas olio-ohjelmointikieli. Dart on dynaamisesti tyypitetty. Sovellukset on organisoitu modulaarisiksi

Lisätiedot

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

Lisätiedot

Action Request System

Action Request System Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet

Lisätiedot

HTML5 video, audio, canvas. Mirja Jaakkola

HTML5 video, audio, canvas. Mirja Jaakkola HTML5 video, audio, canvas Mirja Jaakkola Video webbisivulla HTML5 mahdollistaa videon lisäämisen webbi-sivuille ilman plugineja. Yleisimmät videoformaatit webissä: Mpeg-4 eli H.264 Ogg Flash Perustuu

Lisätiedot

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.

Lisätiedot