Ville Sälliluoma ASP.NET MVC. Tietojenkäsittelyn koulutusohjelma 2011

Koko: px
Aloita esitys sivulta:

Download "Ville Sälliluoma ASP.NET MVC. Tietojenkäsittelyn koulutusohjelma 2011"

Transkriptio

1 Ville Sälliluoma ASP.NET MVC Tietojenkäsittelyn koulutusohjelma 2011

2 SISÄLLYSLUETTELO 1 JOHDANTO ASP.NET PERUSTEET NET Framework Historiikki MVC-MALLI Yleistä MVC-mallista Rakenne ASP.NET MVC-TEKNIIKKA Komponentit Suunnittelumallit ASP.NET MVC -kerrokset ASP.NET MVC:n etuja ASP.NET MVC:n heikkouksia RAMONES-NIMIGENERAATTORI LOPUKSI..15 LÄHTEET LIITE 1: Ramones-nimigeneraattorin lähdekoodi

3 3 1 JOHDANTO Web-järjestelmät kehittyvät erittäin nopeaa tahtia. Tänä päivänä web-sivustoja käytetään useammilla selaimilla ja eri laitteilla kuin koskaan. Esimerkiksi sosiaalisen median valtava suosio luo omat vaatimuksensa eri verkkoteknologioille. Järjestelmien pitää pystyä entistä rikkaampaan vuorovaikutukseen hyvin suosituilla sivustoilla kuten esimerkiksi Facebook, jolla on miljoonia käyttäjiä päivittäin. Web-ohjelmointitekniikoiden pitää pystyä vastaamaan näihin vaatimuksiin. Uusia tekniikoita lanseerataan nopeasti, ja mukana on kokonaan uusia ohjelmistoteknisiä näkökulmia. Aina ei kuitenkaan kannata keksiä pyörää uudelleen. Vanhakin suunnittelumalli voi olla yhä elinvoimainen, vaikka web-ympäristöt monipuolistuvat. Microsoftin suosittu ASP.NET-alusta sai vuonna 2009 uuden jäsenen ASP.NET MVC:n. MVC-arkkitehtuurin alkuperäisen mallin kehitti norjalainen Tryggve Reenskaug vuonna 1979, vuosia ennen kuin suunnittelumalleista oltiin edes kuultu. Mielenkiintoista on, että yhden miehen abstrakti malli 30 vuoden takaa on toteutettu useilla eri webohjelmointitekniikoilla. Lisäksi se nauttii valtavaa suosiota web-ohjelmoinnin parissa. Tässä työssä tutkitaan ASP.NET MVC -tekniikkaa ja sen mielenkiintoista alkuperää. Lisäksi tutkimuksen tavoitteena on tehdä käytännön sovellus tällä tekniikalla. Aluksi lähdetään liikkeelle ASP.NET:n perusteista ja historiasta. Kolmannessa luvussa esitetään alkuperäinen MVC-malli. Nämä taustatiedot ovat välttämättömiä, että voimme ymmärtää ASP.NET MVC- tekniikan idean. Neljännessä luvussa paneudutaan täysin ASP.NET MVC -tekniikkaan, muun muassa sen komponentteihin, vaikuttaneisiin suunnittelumalleihin sekä tekniikan etuihin ja heikkouksiin. Tässä työssä ASP.NET MVC -tekniikan vertailukohtana on toinen ASP.NET -alustan tekniikka: Web Forms. Viidennessä luvussa toteutetaan sovellus ASP.NET MVC -tekniikalla ja viimeisessä luvussa esitetään koontia asiasta.

4 4 2 ASP.NET PERUSTEET ASP.NET on Microsoftin kehittämä web-tuotantoalusta, jolla voidaan toteuttaa dynaamisia web-palveluja. Ohjelmointi tapahtuu nykyaikaisilla olio-ohjelmointikielillä (C# ja Visual Basic.NET). ASP.NET on osa.net Frameworkia. Päätavoite on tuottaa web-suunnittelupalveluja nopeasti ja tehokkaasti. Alkuperäinen lähtökohta oli, että web-kehittäjien ei tarvitse juurikaan tuntea perinteisiä webtekniikoita kuten HTML ja JavaScript. Toteuttaminen on yksinkertaista valmiiden drag- -and-drop -kontrollien avulla. (Conery, Gunthrie, Haack & Hanselman 2009, 167; Esposito 2010, 16.) ASP.NET on merkittävästi kehittynyt historiansa aikana. Nykyinen ASP.NET sisältää useita laajennettuja alueita, jotka eivät olleet mukana alussa. Esimerkiksi siinä on pohja Ajax-kehitykselle ja valmiit kontrollit ovat mukautettu tukemaan paremmin CSS- ja XHTML-tekniikoiden vaatimuksia. (Esposito 2010, 16.) 2.1.NET Framework.NET Framework on Microsoftin kehittämä ohjelmistotuotantoalusta. Sillä voidaan tuottaa eri tyyppisiä sovelluksia, kuten esimerkiksi konsolisovelluksia, web-sovelluksia ja työpöytäsovelluksia..net Framework käsittää hyvin laajan luokkakokoelman, jota voidaan hyödyntää ohjelmoinnissa. ASP.NET Framework on web-sovellusten tuottamiseen tarkoitettu.net Frameworkin osa. Se sisältää useita tarkoitukseen sopivia luokkia. Nykyinen ASP.NET Framework muodostuu kahdesta web-sovellusten luontiin tarkoitetusta tekniikasta: ASP.NET Web Formista ja ASP.NET MVC:stä. (Walther 2010, ) 2.2 Historiikki Monille web ei oikeastaan ollut merkittävä ennen kuin ensimmäiset graafiset selaimet tulivat markkinoille 1990-luvun alussa. Pian sen jälkeen ilmestyivät ensimmäiset

5 5 dynaamiset web-sivut, jotka käyttivät esimerkiksi Perl-ohjelmointikieltä ja Common Gateway Interface (CGI)-tekniikkaa. CGI:n ongelmana oli, että web-palvelimen piti käynnistää jokaiselle web-pyynnölle oma erillinen instanssi sovelluksesta. Tämä kuormitti varsinkin suosittuja sivustoja. Kun web laajeni ja HTML-standardit mahdollistivat rikkaamman vuorovaikutuksen, lanseerattiin uusia tekniikoita. Microsoftin vastaus tähän oli Active Server Pages (ASP) vuonna (MacDonald 2007, 6; Conery ym. 2009, 167.) ASP.NET Web Forms julkaistiin vuonna Julkaisu oli suuri edistysaskel, koska ASP.NET oli sillanrakentaja Windows-ohjelmoinnin ja web-järjestelmien ohjelmoinnin välillä. Käyttöliittymä muodostui valmiista kontrolleista, jotka keskustelevat palvelinpuolen kanssa. Kontrollit renderöityvät automaattisesti HTML:ksi ja käyttävät palvelinpuolen tapahtumia vuorovaikutuksessa palvelinpuolen tapahtumienkäsittelijän kanssa. Web-ohjelmoijien ei tarvinnut enää työstää itsenäisiä HTTP-pyyntöjä (request) ja vastauksia (response) kuten aiemmissa teknologioissa. Tämä tarkoittaa tilallista webohjelmointia. (Sanderson 2009, 3-4.) ASP.NET MVC 1.0 julkaistiin vuonna Sen ei ole tarkoitus olla Web Formsin seuraaja, vaan vaihtoehto sille. ASP.NET MVC -tekniikassa on palattu tilattomaan webohjelmointiin. Käyttöliittymä tapahtuu HTML-, CSS- ja JavaScript-tekniikoiden kanssa. (Esposito 2010, 32-33; Walther 2010, 15.) Taulukossa 1. on esitetty ASP.NET versiohistoriaa. Taulukko 1. ASP.NET-tekniikat ja julkaisuvuosi (Walther 2010, 15). Julkaisuvuosi Tekniikka 2002 ASP.NET ASP.NET ASP.NET ASP.NET Ajax 2008 ASP.NET ASP.NET MVC ASP.NET 4.0 ja ASP.NET MVC 2.0

6 6 3 MVC-MALLI 3.1 Yleistä MVC-mallista MVC (Model-View-Controller) on ohjelmistoarkkitehtuuriratkaisu, joka perustuu norjalaisen Trygve Reenskaugin vuonna 1979 kehittämään malliin (Bellinaso, Berardi & Katawazi 2009, 7). MVC-arkkitehtuurin perusajatus on erottaa käyttöliittymä sovelluslogiikasta ja -datasta. Tällä pyritään helpottamaan käyttöliittymän muokkausta ja järjestelmän siirtoa toiselle graafiselle alustalle. Lähtökohtana on, että käyttöliittymä ilmaisee sovelluksen tilaa ja näyttää sen tarvittaessa erilaisissa näkymissä. (Koskimies & Mikkonen 2005, 142.) Reenskaug (haettu ) kuvailee MVC-mallia seuraavasti: Ensisijainen tarkoitus MVC:llä on toimia siltana käyttäjän mentaalisen mallin ja digitaalisen mallin välillä. Ideaali MVC-ratkaisu tukee käyttäjän illuusiota nähdä ja manipuloida kohdealueen tietoa suoraan. Rakenne on hyvin käytännöllinen, jos käyttäjän tarvitsee nähdä sama mallialkio samanaikaisesti eri viitekehyksessä ja/tai eri näkökulmasta (Kuva 1). Kuva 1. Käyttäjän mentaalinen malli vs. tietokoneen malli. (Reenskaug 1979a). Nykypäivänäkin MVC nauttii valtavaa suosiota web-sovellusten arkkitehtuurina, koska nykyaikaiset web-sovellukset edellyttävät useiden tekniikoiden (esimerkiksi HTML, tietokannat ja suoritettava koodi) yhdistelemistä. Monet näistä tekniikoista sopivat

7 7 luonnostaan MVC:n konsepteihin. MVC-arkkitehtuuria voidaan toteuttaa monilla nykypäivän ohjelmointikielillä, kuten esimerkiksi Java, PHP, JavaScript, Perl, Python, Ruby ja.net. Marraskuussa 2002 W3C (Internet-tekniikoiden stardardointiyhteisö) valitsi MVC-arkkitehtuurin osaksi XForms-spesifikaatiota, joka integroidaan XHTML standardiin. (Bellinaso ym. 2009, 7; Sanderson 2009, 7.) Ohjelmistotuotannossa arkkitehtuuri-termi voidaan nähdä ylempänä toteutusfilosofiana tai rakenneosien konkreettisina vuorovaikutussuhteina. Arkkitehtuuri määrittelee yhdenmukaisia toteutusperiaatteita, joiden on tarkoitus pysyä muuttumattomina koko ohjelmiston elinkaaren ajan. (Haikala & Märijärvi 2006, ) MVC-arkkitehtuuri edustaa enemmän toteutusfilosofiaa, koska alkuperäisessä mallissa ei ollut konkreettista toteutusesimerkkiä, ja MVC-mallia käytetään ohjelmistotuotannossa usealla eri tavalla teknisessä mielessä, mutta perusajatus kuitenkin on yhteinen. 3.2 Rakenne MVC muodostuu kolmesta osasta: Model (malli), View (näkymä) ja Controller (ohjain). MVC-arkkitehtuuria voidaan kuvailla eri näkökulmista filosofisen luonteensa takia. Tässä kuvaillaan rakennetta Reenskaugin esimerkeillä sekä omillani niin, että kuka tahansa perustiedot omaava web-sovellusten kehittäjä voi hahmottaa, mistä on kysymys. Model (malli) edustaa tietoa. Malli voi olla yksittäinen objekti tai niiden rakennelma. Malli edustaa tuotannossa olevan sovelluksenkehittäjän näkemää maailmaa. (Reenskaug 1979b.) Esimerkiksi HTML-merkintäkieli tuotantoympäristössään on malli. View (näkymä) on mallin visuaalinen esitys. Se korostaa sekä hillitsee mallin ominaisuuksia toimien näin esitys suodattimena. Näkymä on kiinnitetty malliin, saa siltä tarvittavat tiedot esityksestä ja näkymä voi muuttaa mallia. (Reenskaug 1979b.) Esimerkiksi CSS määrittelee HTML:n muodostaman ulkoasun. Ne ovat suhteessa toisiinsa, mutta riippumattomasti. Controller (ohjain) on linkki käyttäjän ja järjestelmän välillä. Ohjain ottaa käyttäjältä vastaan syötteitä, jotka vaikuttavat malliin. Ohjain käsittelee syötetyn datan ja luo uuden

8 8 näkymän. (Reenskaug 1979b.) Esimerkiksi Internet-selain yhdistää CSS:n ja HTML:n esitykseksi, joka tulostuu selaimen ikkunaan. Selain ottaa käyttäjän syötteet vastaan HTML:n tarjoamina elementteinä, kuten input ja select. MVC-sovelluksen käyttö noudattaa sykliä, jossa käyttäjä tekee toiminnon, sovellus vastaa toimintoon muuttamalla mallia (model) ja tuo uuden näkymän (view) käyttäjälle. Käyttäjä on vuorovaikutuksessa sovelluksen kanssa, esimerkiksi useiden edestakaisten http-pyyntöjen (request) ja vastausten (response) kautta. (Sanderson 2009, 7.) 4 ASP.NET MVC-TEKNIIKKA Web Forms -tekniikan luonne oli lähellä Windows Forms tuotantoa, toisin sanoen helpompaa drag-and-drop -suunnittelijoille. Tällä oli hyviä puolia uusille suunnittelijoille. Suurena haittana oli kuitenkin se, että ei ollut tarpeeksi mahdollisuuksia vaikuttaa esitettävään HTML-tuotokseen. Tämän takia kokeneempia suunnittelijoita siirtyi muiden web-sovellusalustojen pariin, kuten esimerkiksi PHP ja Ruby on Rails. Nämä alustat tarjosivat halutun vastineen sekä MVC-ohjelmointimallin. Tämä johti siihen, että Microsoft julkisti syksyllä 2007, että suunnitteilla on ASP.NET - ytimeen perustuva ohjelmointialusta, joka kilpailee muiden suosittujen MVC-alustojen kanssa. Näin syntyi ASP.NET MVC. (Bellinaso ym. 2009, 11.) MVC-suunnittelumalli avustaa tekemään sovelluksia, jotka ovat eroteltu eri osakokonaisuuksiksi. MVC-suunnittelumalli määrittää, miten eri ohjelmointilogiikat sijoittuvat sovelluksessa. Käyttöliittymälogiikka kuuluu näkymään, syötelogiikka kuuluu ohjaimeen ja toimintalogiikka kuuluu malliin. Tämä jaottelu auttaa hallitsemaan monimutkaisia sovelluksia, koska on mahdollista keskittyä yhteen osa-alueeseen kerralla. Käyttöliittymän erottaminen sovelluslogiikasta ei ollut täysin mahdollista Web Forms-tekniikassa, koska palvelinpuolen kontrollit saattoivat tuoda sovelluslogiikkaa käyttöliittymään. (Bellinaso ym. 2009, 64; Microsoft 2011.)

9 9 4.1 Komponentit ASP.NET MVC-arkkitehtuurissa sovellus on eroteltu MVC-mallin mukaisesti kolmeen komponenttiin: malli (model), näkymä (view) ja ohjain (controller). Malli sisältää kaiken toiminta-, validointi- ja tiedonsaantilogiikan, joita sovellus tarvitsee. Malli-oliot käyttävät tietokantaa. Esimerkiksi Tuote-olio saattaa hakea tietoa tietokannasta, käsitellä sitä ja kirjoittaa päivitetyn tiedon Tuotteet-tauluun SQLpalvelimelle. Pienissä sovelluksissa malli on usein käsitteellinen. Jos sovellus vain lukee dataa ja lähettää sen näkymälle, sovelluksella ei ole fyysistä malli-kerrosta ja assosioituja luokkia. Tässä tapauksessa data ottaa Malli-olion roolin. (Microsoft 2011; Walther 2010, 120.) Näkymät ovat komponentteja, jotka näyttävät sovelluksen käyttöliittymän. Tyypillisesti käyttöliittymä luodaan mallin datan pohjalta, kuten esimerkiksi Tuote-taulun muokkausnäyttö, joka esittää kontrolleja, kuten drop-down list, checkbox ja textbox. (Microsoft 2011.) Ohjain on komponentti, joka käsittelee käyttäjän syötteet, työskentelee mallin kanssa ja valitsee käyttöliittymän esittävän näkymän esitettäväksi. MVC-sovelluksessa näkymä ainoastaan esittää informaation. Ohjain käsittelee ja vastaa käyttäjän syötteisiin ja toimenpiteisiin. Esimerkiksi ohjain käsittelee merkkijonoja ja välittää ne mallikomponenttiin, joka tekee tietokantakyselyjä kyseisillä arvoilla. (Microsoft 2011.) 4.2 Suunnittelumallit ASP.NET MVC:n toimintakoneisto on ottanut vaikutteita Front Controller ja Model2 suunnittelumalleista. Model2 on Sun Microsystemsin kehittämä todella suosittu MVCvariaatio web-sovellusten tekemiseen JSP-ympäristössä (Java Server Pages). (Esposito 2010, 91.) Front Controller käyttää keskitettyä komponenttia, joka käsittelee kaikki tulevat palvelinpyynnöt. ASP.NET MVC:ssä tämä komponentti on MVC HTTP handler. Tämä

10 10 yhteinen luokka sisältää logiikan, joka jäsentää URL:n ja päättää, mikä ohjain (controller) käsittelee pyyntöä (request) ja mikä näkymä (view) tuottaa HTML:n. Ohjain on tavallinen luokka, joka sisältää julkisia metodeja (public method). (Esposito 2010, 27.) Alla oleva sekvenssikaavio havainnollistaa Front Controller ja Model2 toimintaa (Kuvio 1). Kuvio 1. MVC HTTP handler selvittää käytettävän ohjaimen ja herättää sen metodin. Ohjaimen metodi hankkii tietoa, ja selvittää käytettävän näkymän. Lopuksi näkymä generoi tuotoksen, mikä tulee selaimelle. (Esposito 2010, 28.) 4.3 ASP.NET MVC -kerrokset ASP.NET MVC on kerrosarkkitehtuuri, joka voidaan jakaa viiteen tasoon (Kuva 2): 1. tiedonsaantitaso (Data Access Layer) - Tämä koodi käsittelee tietokantatasolla olevaa raakadataa ja edustaa mallia. 2. toimintalogiikkataso (Business Logic Layer)

11 11 - Tämä koodi lisää toimintasäännöt ja domain-kohtaiset objektit. Edustaa mallia. 3. sovelluslogiikkataso (Application Logic Layer) - Koodi huolehtii käyttöliittymätason ja toimintalogiikkatason vuorovaikutuksesta. Edustaa ohjainta. 4. käyttöliittymätaso (Presentation Layer) - Koodi määrittelee, mitä käyttäjä näkee näytöltä. Edustaa näkymää. 5. tietokantataso (Data Layer) - Yleensä relaatiotietokanta, voi myös olla esimerkiksi XML- tai tekstitiedosto. (Bellinaso ym. 2009, ) Kuva 2. ASP.NET MVC:n tasot ja, mitä MVC-komponenttia ne edustavat (Bellinaso ym. 2009, 64.) Kerrosarkkitehtuuri tarkoittaa ohjelmiston rakennetta, joka koostuu loogisesti yhtenäisistä eri käsitetasoilla olevista kerroksista siten, että ylempi kerros käyttää alemman kerroksen palveluja. Käsitetasot voidaan nähdä skaalassa laite/ihminen: laitepäässä olevat tasot ovat matalammassa tasossa kuin ihmistä lähellä olevat tasot. Alemmat kerrokset tarjoavat laitetta tai käyttöjärjestelmää lähellä olevia toimintoja,

12 12 ylemmät kerrokset taas esimerkiksi graafisen käyttöliittymän palveluita. (Koskimies & Mikkonen 2005, 126; Koskimies 2000, 212.) 4.4 ASP.NET MVC:n etuja ASP.NET MVC-arkkitehtuurilla on hyvät lähtökohdat tehdä helposti yksikkötestausta, koska jokainen osa voidaan testata muista riippumattomasti (Sanderson 2009, 8). ASP.NET MVC myös mahdollistaa HTML:n täydellisen hallinnan ja vapaan skriptien sekä CSS:n käytön (Esposito 2010, 32). ASP.NET MVC ei käytä ViewState- ja PostBack-toimintoja. Nämä olivat osittain iso ongelma Web Forms tekniikassa. ViewState- ja PostBack-toiminnot olivat oleellisia tilallisen ohjelmoinnin mahdollistamiseksi. ViewState on kontrollin tilan tallennustapa, johon säilötään esimerkiksi data ja valinnat. Kun pyyntö (request) tulee palvelimelle, se ei muista edellistä pyyntöä. Jotta tilallisuus voi toteutua, tarvitsee pystyä ilmaisemaan aiemman pyynnön tila. Web Forms -tekniikassa tämä oli toteutettu piilotetuilla <input/>-kentillä, jotka saattoivat kasvaa huomattavan suuriksi, jopa sadoiksi kilotavuiksi, ja siirtyä edestakaisin jokaisella palvelupyynnöllä. Tämä näkyi sivustojen käyttöviiveenä. PostBack-toiminto renderöi jokaisen merkityn tapahtuman JavaScriptiksi. Tämän takia oli vähäinen mahdollisuus kontrolloida, miten selain kommunikoi palvelimen kanssa. (Bellinaso ym. 2009, 11; Sanderson 2009, 4.) 4.5 ASP.NET MVC:n heikkouksia Web Forms -tekniikka mahdollisti tapahtumakohtaisen ohjelmoinnin. Jokaiselle kontrollille on assosioitu palvelinpuolelle luokka sekä tapahtumankäsittelijä. Esimerkiksi Button-elementeillä on Click-tapahtuma. Kyseisellä toteutuksella on hintana se, että joudutaan käyttämään ViewState-tekniikkaa. (Conery ym. 2009, 173.) ASP.NET MVC ei mahdollista tapahtumakohtaista ohjelmointia, mikä saattaa olla hankala ajatus Web Forms -kehittäjille (Bellinaso ym. 2009, 12). Pitää tietää enemmän HTML-, CSS- ja JavaSript-tekniikoista kuin Web Forms - tekniikan parissa. Jotta voidaan puhua HTML:n täydellisestä hallinnasta, täytyy

13 13 jokainen elementti kirjoittaa toisensa jälkeen käsin. Tämän voi myös nähdä askeleena taaksepäin, kun puhutaan käytettävyydestä ja tuottavuudesta. (Esposito 2010, 33.) 5 RAMONES-NIMIGENERAATTORI Käytännön sovelluksena tässä työssä toteutetaan Ramones-nimigeneraattori ASP.NET MVC -tekniikalla, hyödyntäen kaikkia kolmea MVC-komponenttia. Sovelluksen idea on, että käyttäjältä kysytään etunimeä ja sukunimeä, joista etunimi tulostetaan annetussa muodossa, ja sukunimeksi tulostetaan syötteestä huolimatta aina Ramone. Sovellus on hyvin yksinkertainen, eikä se sisällä esimerkiksi validointi-toimintoja. Ulkoasu on myös hyvin mitäänsanomaton. Tarkoitus on vain esitellä ASP.NET MVC -toimintaa niin, että MVC-ajattelu otetaan mahdollisimman hyvin huomioon. Sovellus on toteutettu käyttäen Microsoft Visual Studio 2010 Ultimate Edition - ohjelmointityökalua. Ohjelmoinnin tukena on käytetty Steven Sandersonin kirjaa Pro ASP.NET MVC Framework (Sanderson 2009). Sovelluksen kokonainen lähdekoodi kommentteineen löytyy liiteluettelosta (Liite 1). Kun sovellus suoritetaan, ohjain-luokka tuo näytölle NimiForm-näkymän, joka toimii tämän sovelluksen käyttöliittymänä (Kuva 3). Tekstikentissä kysytään etunimeä ja sukunimeä. Kun Lähetä-nappia painetaan, tieto siirtyy tekstikentistä ohjaimelle. Tässä näkymässä luodaan kaksi <input type="text" />-kenttää ASP.NET MVC:n sisäänrakennetuilla HTML-metodeilla (Kuva 4).

14 14 Kuva 3. Sovelluksen käyttöliittymä. Kuva 4. <p>-elementtien sisältö generoituu <input type= text />-muotoon. Ohjain reagoi annettuihin syötteisiin lähettämällä ne mallille. HTTP-pyyntö sisältää mallin instanssin. Tämä operaatio on nimeltään Model Binding. (Kuva 5). Kuva 5. Ohjaimen koodia. Tässä sovelluksessa ei tarvitsisi käyttää malli-komponenttia ollenkaan. Käytän sitä pelkästään MVC-mallin fyysisen olemuksen aikaansaamiseksi. Malli (Kuva 6) lukee syötteet ja asettaa niihin samat arvot, millä ne NimiForm-näkymästä alun perin lähetettiin. Malli lähettää ne takaisin ohjaimelle. Kuva 6. Mallin koodia.

15 15 Ohjain lähettää syötteet Vastaus-näkymälle (Kuva 7). Vastaus-näkymä tulostetaan näytölle (Kuva 8). Kuva 7. Vastaus-näkymän koodia. Sukunimeksi on kovakoodattu Ramone. Kuva 8. Vastausnäkymä, johon sovelluksen suoritus loppuu. 6 LOPUKSI Innostukseni ohjelmointiin lähti C#-ohjelmointikielen opiskelusta. Olio-pohjainen ajattelu tuntui sopivalta minulle. Aiemmin olin hiukan tutustunut C-kieleen, joka on proseduraalinen kieli. Omaksuttuani C#-kielen oli luontevaa siirtyä ASP.NET Web Formsin pariin. Valmiit kontrollit sekä tapahtumakohtainen ohjelmointi tuntuivat erittäin tehokkaalta Web-sivujen rakentamiseksi. Nykyään kokemusta on kertynyt muun muassa JavaScript, PHP, C++-kielistä. Hallitsen mielestäni erittäin hyvin HTML ja CSS-tekniikat, joten niiden mahdollisimman tehokas käyttö Web-toteutuksissa on minulle lähes vaatimus. ASP.NET MVC vaikuttaa hyvin varteenotettavalta tekniikalta vaatimusteni täyttämiseksi. MVC-malli on mielestäni looginen ja helposti omaksuttava, ainakin ASP.NET MVCympäristössä. Minulla on niin vähän käyttökokemusta ASP.NET MVC-ympäristöstä, että en osaa ottaa kantaa sen tehokkuudesta esimerkiksi Web Formsiin verrattuna. Tapahtumakohtaisen ohjelmoinnin puute häiritsi ainakin minua.

16 16 Mielestäni ASP.NET MVC on hyvin tervetullut tekniikka. Ennen kaikkea se on vaihtoehtoinen ohjelmointiparadigma Web Formsille. LÄHTEET Bellinaso, M., Berardi, N. & Katawazi, A ASP.NET MVC 1.0 Website Programming: Problem Design Solution. Indianapolis. Wiley Publishing, Inc. Conery, R., Gunthrie, S., Haack, P. & Hanselman, S Professional ASP.NET MVC 1.0. Indianapolis. Wiley Publishing, Inc. Esposito, D Programming Microsoft ASP.NET MVC. Microsoft Press. Haikala, I. & Märijärvi, J Ohjelmistotuotanto. 11. painos. Jyväskylä. Talentum. Koskimies, K Oliokirja. Jyväskylä. Satku Kauppakaari. Koskimies, K & Mikkonen, T Ohjelmistoarkkitehtuuri. Jyväskylä. Talentum. MacDonald, M Beginning ASP.NET 3.5 in C# painos. Apress. Microsoft Getting started with ASP.NET MVC 3. Viitattu Saatavissa: Reenskaug, T. 1979a. MVC XEROX PARC Viitattu Saatavissa: Reenskaug, T. 1979b. Models Views Controllers. Viitattu Saatavissa: Sanderson, S Pro ASP.NET MVC Framework. Apress. Walther, S ASP.NET MVC Framework Unleashed. Sams.

17 17 LIITE 1 Näkymät //NimiForm Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>nimiform</title> </head> <form action="/home/nimiform" method="post" > <h1>ramones-nimigeneraattori</h1> <p>etunimi: <%= Html.TextBox("Etunimi") %></p> <p>sukunimi: <%= Html.TextBox("Sukunimi")%></p> <input type="submit" value="lähetä" /> </form> </html> //Vastaus Page Language="C#" Inherits="System.Web.Mvc.ViewPage<RamonesNameGenerator.Models.RamonesModel>" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">

18 18 <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>vastaus</title> </head> <body> <div> <h1>ramones nimesi on: <%= Html.Encode(Model.Etunimi) %> <%=Html.Encode(Model.Sukunimi = "Ramone") %>!</h1> </div> </body> </html> Ohjain //HomeController using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using RamonesNameGenerator.Models; //Lisättiin Models. namespace RamonesNameGenerator.Controllers { [HandleError] public class HomeController : Controller { public ViewResult NimiForm() //Tulostetaan NimiForm-näkymä näytölle. { return View(); } [AcceptVerbs(HttpVerbs.Post)] //Käsitellään NimiFormin-syötteet, lähetetään ne mallin kautta Vastaus-näkymälle public ViewResult NimiForm(RamonesModel ramonesvastaus) { return View("Vastaus", ramonesvastaus); } } } Malli //RamonesModel using System; using System.Collections.Generic;

19 19 using System.Linq; using System.Web; namespace RamonesNameGenerator.Models { public class RamonesModel { public string Etunimi { get; set; } public string Sukunimi { get; set; } } } Reititystiedot //Global.asax.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; namespace RamonesNameGenerator { // Note: For instructions on enabling IIS6 or IIS7 classic mode, // visit public class MvcApplication : System.Web.HttpApplication { public static void RegisterRoutes(RouteCollection routes) { routes.ignoreroute("{resource}.axd/{*pathinfo}"); routes.maproute( //Vakioreittiä muutettiin. "RamoneReitti", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "NimiForm", id = UrlParameter.Optional } // Parameter defaults ); } protected void Application_Start() { AreaRegistration.RegisterAllAreas(); } RegisterRoutes(RouteTable.Routes);

20 20 } }

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa WWW ja tietokannat WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa tekstiä, kuvia, hyperlinkkejä Staattiset sivut kirjoitettu kerran, muuttaminen käsin ongelmana pysyminen ajantasalla Ylläpito hankalaa,

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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty

Lisätiedot

Hirviö. Design Patterns

Hirviö. Design Patterns Hirviö SEPA-päiväkirja Design Patterns Anssi Kalliolahti Liia Sarjakoski 8. helmikuuta 2005 1 Sisältö 1 Johdanto 3 2 Menetelmän käytäntöön soveltaminen 3 3 Kokemuksia ja muutoksia 3 3.1 PP..........................................

Lisätiedot

Kymenlaakson Ammattikorkeakoulu

Kymenlaakson Ammattikorkeakoulu Kymenlaakson Ammattikorkeakoulu Tietotekniikka/Tietoverkkotekniikka Jussi Toivakka ja Juha Törö MySQL & PostGRE 1 Sisällysluettelo 2 Yleistä tietokannoista... 3 3 MySQL... 4 3.1 Historiaa... 4 3.2 Käyttö...

Lisätiedot

www.solita.fi solita@solita.fi

www.solita.fi solita@solita.fi www.solita.fi solita@solita.fi JAVA-SOVELLUSTEN RAKENTAMINEN INTEGROITUUN YMPÄRISTÖÖN Jarno Peltoniemi Solita Oy 10.5.2005 Aiheet Johdanto Portaalit, portletit Oracle Portal Java-sovelluksen rakentaminen

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

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja 582104 Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja 1 Arkkitehtuurisuunnittelu Ohjelmistoarkkitehtuurin määritelmä & arkkitehtuurisuunnittelun lähtökohta ja tavoitteet Kerrosarkkitehtuuri

Lisätiedot

Kiertokysely. Sulautetut järjestelmät Luku 2 Sivu 1 (??)

Kiertokysely. Sulautetut järjestelmät Luku 2 Sivu 1 (??) Sulautetut järjestelmät Luku 2 Sivu 1 (??) Kiertokysely Perinteiset ohjelmointikielet kuten C tukevat hyvin sekventiaalista ohjelmointia, jossa herätteisiin reagointi on helppoa toteuttaa pollauksella

Lisätiedot

VisualStudio Pikaopas, osa 1: WEB-sivujen suunnittelu

VisualStudio Pikaopas, osa 1: WEB-sivujen suunnittelu HAAGA-HELIA ammattikorkeakoulu ict2td005 Ohjelmiston suunnittelutaito Sivu 1 / 5 VisualStudio Pikaopas, osa 1: WEB-sivujen suunnittelu Tämä pikaopas opastaa käyttämään VisualStudion web-sivujen suunnitteluominaisuuksia.

Lisätiedot

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä

Lisätiedot

Visual Basic -sovelluskehitin Juha Vitikka

Visual Basic -sovelluskehitin Juha Vitikka Visual Basic -sovelluskehitin Helsinki 30.10.2000 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Visual Basic sovelluskehitin Seminaari: Ohjelmistotuotantovälineet Tietojenkäsittelytieteen

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

Lomake kannattaa asemoida taulukkoon: table. Silloin selitteet ja kentät saadaan sarakkeisiin. Kenttien ulkoasu voidaan määritellä tyyleillä.

Lomake kannattaa asemoida taulukkoon: table. Silloin selitteet ja kentät saadaan sarakkeisiin. Kenttien ulkoasu voidaan määritellä tyyleillä. Lomakkeet Lomake kannattaa asemoida taulukkoon: table. Silloin selitteet ja kentät saadaan sarakkeisiin. Kenttien ulkoasu voidaan määritellä tyyleillä. Lomakkeen tyylit kannattaa määritellä omaan, eriliseen,

Lisätiedot

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen Sisällys 6. Metodit Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit).. Metodien ja muun luokan sisällön järjestäminen. 6.1 6.2 Oliot viestivät metodeja kutsuen Oliot viestivät

Lisätiedot

XML johdanto, uusimmat standardit ja kehitys

XML johdanto, uusimmat standardit ja kehitys johdanto, uusimmat standardit ja kehitys Ossi Nykänen Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), W3C Suomen toimisto Esitelmä Hyvin lyhyt versio: on W3C:n suosittama

Lisätiedot

Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1

Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1 Digitaalisen median tekniikat xhtml - jatkuu 30.4.2004 Harri Laine 1 XHTML lomakkeet Lomakkeet mahdollistavat tiedon välityksen asiakkaalta (selaimesta) tiedon vastaanottajalle Vastaanottaja voi olla sähköpostiosoite

Lisätiedot

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest).

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest). 1 Virtualisoinnin avulla voidaan purkaa suora linkki suoritettavan sovelluksen (tai käyttöjärjestelmän tms.) ja sitä suorittavan laitteiston välillä. Näin saavutetaan joustavuutta laitteiston käytössä.

Lisätiedot

C-ohjelmointikielen perusteet, osa 1

C-ohjelmointikielen perusteet, osa 1 C-ohjelmointikielen perusteet, osa 1 Kurssi johdattaa sinut askel askeleelta C-ohjelmoinnin perusteisiin. Kurssi suoritetaan kokonaan netissä vuorovaikutteisella alustalla itseopiskeluna tutorin avustuksella.

Lisätiedot

Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k

Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k 1 Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa ko. toiminnallisuuden hyödyntämisen Web-palveluna.

Lisätiedot

Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016)

Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Tietokoneavusteinen opetus -kurssilla opetetaan Adobe Flash CS6:n käyttämistä neljänä kertana: 11.3.2016, 15.3.2016, 18.3.2016 ja 1.4.2016. Harjoituskerroilla

Lisätiedot

2. PEHMEÄ XHTML XRAJAHTML

2. PEHMEÄ XHTML XRAJAHTML Luennot 1. Intro 2. PEHMEÄ XHTML XRAJAHTML Dokumentin (matalan tason) rakenne DOCTYPE ja merkistökoodaukset Elementtien syvät rajat 3. CSS 4. JavaScript 5. JavaScript-kirjastot & AJAX 6. Käytettävyys &

Lisätiedot

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1 Digitaalisen median tekniikat JSP ja XML 28.4.2004 Harri Laine 1 JSP hyvin lyhyesti JSP on Java-pohjainen skriptikieli JSP:llä laadittu sivu käännetään java-servletiksi (sivun toteutus vastaa servlettiluokan

Lisätiedot

Interfacing Product Data Management System

Interfacing Product Data Management System Interfacing Product Data Management System Tekijä: Työn valvoja: Mats Kuivalainen Timo Korhonen Esitelmän sisältö Työn suorituspaikka - Ideal Product Data Oy Käsitteitä Työn tavoitteet Työn tulokset 1/5

Lisätiedot

.NET ja C# Virtuaalikone. Common Language Infrastructure (CLI) Periaate. Etuja. Haittoja. Mikä on CLI. CLI standardin merkitys (CLS, Ecma)

.NET ja C# Virtuaalikone. Common Language Infrastructure (CLI) Periaate. Etuja. Haittoja. Mikä on CLI. CLI standardin merkitys (CLS, Ecma) .NET ja C# Virtuaalikone Periaate Virtuaalikone on tapa abstrahoida allaoleva toteutus yhteisen rajapinnan taakse. Virtuaalikoneet muodostavat hierarkian. Hierarkiassa ylempänä oleva käyttää alemman tarjoamaa

Lisätiedot

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista 582101 - Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista 1 Ohjelmistotuotannon työkaluuista Projektinhallintatyökalut (ei käsitellä tällä kurssilla) CASE- ja mallinnustyökalut (esim. Poseidon)

Lisätiedot

Suunnittelumalleja, MVC. Juha Järvensivu 2008

Suunnittelumalleja, MVC. Juha Järvensivu 2008 Suunnittelumalleja, MVC Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisältö Tarkkailija Strategia Rekursiokooste Tehdas-metodi MVC Tarkkailija suunnittelumalli Tarkkailijamalli (Observer) Määrittelee olioiden

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

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 811122P (5 op.) 12.12.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

Kurssin hallinta -työväline

Kurssin hallinta -työväline Kurssin hallinta -työväline Kurssin hallinta -työvälineellä muokataan kursseja A&Ooppimisympäristöalustalla Kurssi koostuu - ohjelmasta (linkit työkaluihin& muihin resursseihin), - materiaaleista, - keskusteluryhmästä,

Lisätiedot

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Liite 1: skenaariot ja PoC tulokset 1. Palvelun kehittäjän näkökulma Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Palvelun uusi versio on Palveluiden kehittäminen voitava asentaa tuotantoon vaikeutuu

Lisätiedot

812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä

812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä 2016 IX Olioiden välisistä yhteyksistä Sisältö 1. Johdanto 2. Kytkentä 3. Koheesio 4. Näkyvyydestä 2 Johdanto n Ohjelmassa syntyy kytkentöjä olioiden välille Toivottuja ja epätoivottuja n Näkyvyys vaikuttaa

Lisätiedot

Salasanojen hallinta. Salasanojen hallintaopas RESTAURANT ENTERPRISE SOLUTION

Salasanojen hallinta. Salasanojen hallintaopas RESTAURANT ENTERPRISE SOLUTION Salasanojen hallinta Salasanojen hallintaopas RESTAURANT ENTERPRISE SOLUTION Restaurant Enterprise Solution Asiakirjan tarkoitus Tämä asiakirja kertoo tarvittavat säännöt kuinka hallinnoida RES salasanoja

Lisätiedot

Oliot viestivät metodeja kutsuen

Oliot viestivät metodeja kutsuen 6. Metodit 6.1 Sisällys Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit). Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen

Lisätiedot

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VII Suunnittelumallit Adapter ja Composite

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VII Suunnittelumallit Adapter ja Composite 2015 syksy 2. vsk VII Suunnittelumallit Adapter ja Composite Sisältö 1. Johdanto rakennemalleihin 2. Adapter (Sovitin) 3. Composite (Rekursiokooste) Suunnittelumallit Adapter ja Composite 2 VII.1 Johdanto

Lisätiedot

12. Näppäimistöltä lukeminen 12.1

12. Näppäimistöltä lukeminen 12.1 12. Näppäimistöltä lukeminen 12.1 Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit.

Lisätiedot

5. HelloWorld-ohjelma 5.1

5. HelloWorld-ohjelma 5.1 5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2

Lisätiedot

Test-Driven Development

Test-Driven Development Test-Driven Development Ohjelmistotuotanto syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole

Lisätiedot

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002 JReleaser Yksikkötestaus ja JUnit Mikko Mäkelä 6.11.2002 Sisältö Johdanto yksikkötestaukseen JUnit yleisesti JUnit Framework API (TestCase, TestSuite) Testien suorittaminen eri työkaluilla Teknisiä käytäntöjä

Lisätiedot

9 Edistynyt PHP-ohjelmointi

9 Edistynyt PHP-ohjelmointi 9 Edistynyt PHP-ohjelmointi Luentokerran tavoitteena on käydä läpi joukko sellaisia PHP-sovelluksen toteuttamiseen liittyviä tekijöitä, joiden avulla voidaan parantaa verkkopalvelun totetustyön tuottavuutta

Lisätiedot

Helsingin yliopisto, TKTL Tietokantojen perusteet, s 2000 WWW-tietokantasovellukset Harri Laine 1. vapaamuotoiset tiedot

Helsingin yliopisto, TKTL Tietokantojen perusteet, s 2000 WWW-tietokantasovellukset Harri Laine 1. vapaamuotoiset tiedot Relaatiotietokantaan tallennetaan määrämuotoista tietoa Vapaamuotoisen tekstin talletukseen tekstitietokannat hakuindeksejä saattavat käyttää relaatiotietokantaa tekstin tallentamiseen rivipohjainen tai

Lisätiedot

Tietorakenteet, laskuharjoitus 7,

Tietorakenteet, laskuharjoitus 7, Tietorakenteet, laskuharjoitus 7, 14.-19.3. 1. "Tira meets software engineering, osa 1" Lue luentomonisteen kalvot 233-236. Toteuta luokka Opiskelijarekisteri joka tarjoaa seuraavat palvelut: opiskelijoiden

Lisätiedot

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia

Lisätiedot

Ohjelmointi 2 / 2010 Välikoe / 26.3

Ohjelmointi 2 / 2010 Välikoe / 26.3 Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään

Lisätiedot

Tähtitieteen käytännön menetelmiä Kevät 2009

Tähtitieteen käytännön menetelmiä Kevät 2009 Tähtitieteen käytännön menetelmiä Kevät 2009 2009-01-12 Yleistä Luennot Luennoija hannu.p.parviainen@helsinki.fi Aikataulu Observatoriolla Maanantaisin 10.00-12.00 Ohjattua harjoittelua maanantaisin 9.00-10.00

Lisätiedot

Hajautettujen järjestelmien rakentaminen - Jini. Ohjelmistotuotantovälineet-seminaarin esitelmä

Hajautettujen järjestelmien rakentaminen - Jini. Ohjelmistotuotantovälineet-seminaarin esitelmä Hajautettujen järjestelmien rakentaminen - Jini Ohjelmistotuotantovälineet-seminaarin esitelmä Anu K. Leponiemi (anu@lepo.net) Helsingin yliopisto Tietojenkäsittelytieteen laitos Helsinki 2000 SISÄLLYSLUETTELO

Lisätiedot

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

812341A Olio-ohjelmointi Peruskäsitteet jatkoa 812341A Olio-ohjelmointi 2106 Peruskäsitteet jatkoa Luokkakohtaiset piirteet n Yhteisiä kaikille saman luokan olioille n Liittyvät luokkaan, eivät yksittäiseen olioon n Kaikki ko. luokan oliot voivat käyttää

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen Ohjelmointitaito (ict1td002, 12 op) Kevät 2009 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-kehitysympäristö Java-ohjelma ja luokka

Lisätiedot

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia

Lisätiedot

ESIMERKKIDOKUMENTTI JARKKO IMMONEN

ESIMERKKIDOKUMENTTI JARKKO IMMONEN ESIMERKKIDOKUMENTTI JARKKO IMMONEN 26.5.2011 JAMK SISÄLLYS 1 ENSIMMÄINEN LUKU... 1 2 TOINEN LUKU... 2 2.1 toisen luvun ensimmäinen alakohta... 2 2.2 toisen luvun toinen alakohta... 3 2.3 toisen luvun kolmas

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

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin 812347A Olio-ohjelmointi, 2015 syksy 2. vsk II Johdanto olio-ohjelmointiin Sisältö 1. Abstraktiosta 2. Olio-ohjelmoinnin historiaa 3. Olioparadigmasta 4. Peruskäsitteiden esittely 2 II.1 Abstraktiosta

Lisätiedot

H T M L eli kuinka laadin itselleni päheät kotisivut. Janne Käki

H T M L eli kuinka laadin itselleni päheät kotisivut. Janne Käki H T M L eli kuinka laadin itselleni päheät kotisivut Janne Käki 13.9.2006 Mikä ihmeen HTML? HyperText Markup Language hypertekstiä eli toisiinsa linkitettyjä dokumentteja merkintäkieli, perustuu erilaisiin

Lisätiedot

11/20: Konepelti auki

11/20: Konepelti auki Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Rajapinnat Java-kieli ei tue luokkien moniperintää. Jokaisella luokalla voi olla vain yksi välitön yliluokka. Toisinaan olisi

Lisätiedot

Test-Driven Development

Test-Driven Development Test-Driven Development Syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole keksiä kaikkia mahdollisia

Lisätiedot

Ville Sälliluoma OPINNÄYTETYÖN ARVIOINTITYÖKALUN TOTEUTUS

Ville Sälliluoma OPINNÄYTETYÖN ARVIOINTITYÖKALUN TOTEUTUS Ville Sälliluoma OPINNÄYTETYÖN ARVIOINTITYÖKALUN TOTEUTUS Tietojenkäsittelyn koulutusohjelma 2013 OPINNÄYTETYÖN ARVIOINTITYÖKALUN TOTEUTUS Sälliluoma, Ville Satakunnan ammattikorkeakoulu Tietojenkäsittelyn

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

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

Javan perusteita. Janne Käki

Javan perusteita. Janne Käki Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).

Lisätiedot

Sunin määrittelemä JSP 1.1 (javaserver pages) yhdistää

Sunin määrittelemä JSP 1.1 (javaserver pages) yhdistää TEKSTI: PASI KOVANEN "Taas uusi tekniikka dynaamisten webbisivujen tekoon?!", parahtavat naavapartaiset Perl- ja asp-gurut ja kääntävät sivua. Malttakaa kuitenkin hetki, sillä JavaServer Pages tarjoaa

Lisätiedot

.NET ajoympäristö. Juha Järvensivu 2007

.NET ajoympäristö. Juha Järvensivu 2007 .NET ajoympäristö Juha Järvensivu juha.jarvensivu@tut.fi 2007 Käännösprosessi C# lähdekoodi C# kääntäjä CILtavukoodi JITkäännös Ajettava natiivikoodi Kehitysympäristössä ohjelmoijan toimesta Ajonaikana.NET

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

Ohjelmistoarkkitehtuurit. Kevät 2012-2013

Ohjelmistoarkkitehtuurit. Kevät 2012-2013 Ohjelmistoarkkitehtuurit Kevät 2012-2013 Johannes Koskinen http://www.cs.tut.fi/~ohar/ 1 Viestipohjaisten yritysjärjestelmien suunnittelumallit 1 Viestinvälitykseen perustuvat yritysjärjestelmät Peruselementit:

Lisätiedot

directive attr1= value1 attr2= value2 %>

directive attr1= value1 attr2= value2 %> HAAGA-HELIA OHJELMISTOKEHITYS 1(14) -elementti on olemassa kolmenlaisia elementtejä: A) Direktiivit A) Direktiivejä (directive element) B) Skriptejä (scripting selement) C) Toimintoelementtejä (action

Lisätiedot

INTINU13A6 Java sovellukset

INTINU13A6 Java sovellukset Johdanto Kurssin tavoitteena oli luoda tietokantaa käyttävä websovellus Java EE ohjelmointikielellä, sekä hyödyntää muun muassa servlettejä sekä JSP sivuja ja muita tekniikoita monipuolisesti. Webserverinä

Lisätiedot

Oliotietokannat. Nääsvillen Oliopäivät Pekka Kähkipuro Kehitysjohtaja, FT

Oliotietokannat. Nääsvillen Oliopäivät Pekka Kähkipuro Kehitysjohtaja, FT Oliotietokannat Nääsvillen Oliopäivät 2004 15.12.2004 Pekka Kähkipuro Kehitysjohtaja, FT pekka.kahkipuro@sysopen.fi Oliotietokanta Idea: pysyvän tiedon tallentaminen suoraan oliomuodossa Tietosisältö ja

Lisätiedot

Haka-käyttäjien kokoontuminen Arto Tuomi CSC Tieteen tietotekniikan keskus

Haka-käyttäjien kokoontuminen Arto Tuomi CSC Tieteen tietotekniikan keskus Hakan teknisiä kuulumisia Haka-käyttäjien kokoontuminen 20.1.2009 Arto Tuomi CSC Tieteen tietotekniikan keskus SAML2 siirtymä 1.12.2008 Uudet Hakaan rekisteröitävät palvelut (SP) tukevat SAML 2.0 -tekniikkaa

Lisätiedot

Mainosankkuri.fi-palvelun käyttöohjeita

Mainosankkuri.fi-palvelun käyttöohjeita Mainosankkuri.fi-palvelun käyttöohjeita Sisällys 1. Johdanto... 1 2. Sisäänkirjautuminen... 1 3. Palvelussa navigointi... 2 4. Laitteet... 2 5. Sisällönhallinta... 4 6. Soittolistat... 7 7. Aikataulut...

Lisätiedot

Johdatus edistyneeseen web-kehitykseen. Juuso Lappalainen

Johdatus edistyneeseen web-kehitykseen. Juuso Lappalainen Johdatus edistyneeseen web-kehitykseen Juuso Lappalainen Tällä kurssilla tehdyt sivut - Staattisia html-sivuja, joissa ei ole tiedon tallennusta, backendia tai mitään muutakaan ihmeellistä. - Käyttäjä

Lisätiedot

IT ja viestintäteknologia

IT ja viestintäteknologia IT ja viestintäteknologia 206 Verkkosivujen tuottaminen Kuva: Skills Finland / Markku Heikkilä Lajivastaavat Miikka Merikanto 1 / 12 Suomen Liikemiesten Kauppaopisto miikka.merikanto(at)businesscollege.fi

Lisätiedot

OSI ja Protokollapino

OSI ja Protokollapino TCP/IP OSI ja Protokollapino OSI: Open Systems Interconnection OSI Malli TCP/IP hierarkia Protokollat 7 Sovelluskerros 6 Esitystapakerros Sovellus 5 Istuntokerros 4 Kuljetuskerros 3 Verkkokerros Linkkikerros

Lisätiedot

Nimettömien tietojen lähettäminen Lenovolle

Nimettömien tietojen lähettäminen Lenovolle Nimettömien tietojen lähettäminen Lenovolle Sisältö Nimettömien tietojen lähettäminen Lenovolle... 1 Harmony... 1 Lenovo Companion 3.0... 2 Lenovo Customer Engagement Service... 3 Lenovo Experience Improvement

Lisätiedot

UML:n yleiskatsaus. UML:n osat:

UML:n yleiskatsaus. UML:n osat: UML:n yleiskatsaus - voidaan hyödyntää hyvin laajasti. - sopii liiketoimintamallinnukseen, ohjelmistomallinnukseen sen jokaiseen vaiheeseen tai minkä tahansa pysyviä ja muuttuvia ominaisuuksia sisältävän

Lisätiedot

Ohjelmistoarkkitehtuurit 2016. Kevät 2016 -käytäntöjä

Ohjelmistoarkkitehtuurit 2016. Kevät 2016 -käytäntöjä Ohjelmistoarkkitehtuurit Kevät 2016 -käytäntöjä Samuel Lahtinen http://www.cs.tut.fi/~ohar/ 13.1.2016 1 Tervetuloa Tampereen teknillinen yliopisto, Oulun yliopisto, Turun yliopisto 13.1.2016 2 Tiedonvälitys

Lisätiedot

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus: Dokumentaatio, osa 1 Tehtävämäärittely Kirjoitetaan lyhyt kuvaus toteutettavasta ohjelmasta. Kuvaus tarkentuu myöhemmin, aluksi dokumentoidaan vain ideat, joiden pohjalta työtä lähdetään tekemään. Kuvaus

Lisätiedot

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistoarkkitehtuurit. Kevät Ohjelmistoarkkitehtuurit Kevät 2012-2013 Johannes Koskinen http://www.cs.tut.fi/~ohar/ 1 Viestipohjaisten yritysjärjestelmien suunnittelumallit Viestinvälitykseen perustuvat yritysjärjestelmät Peruselementit:

Lisätiedot

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmistojen mallintaminen. Luento 11, 7.12. Ohjelmistojen mallintaminen Luento 11, 7.12. Viime viikolla... Oliosuunnittelun yleiset periaatteet Single responsibility eli luokilla vain yksi vastuu Program to an interface, not to concrete implementation,

Lisätiedot

Harjoitustehtävät ja ratkaisut viikolle 48

Harjoitustehtävät ja ratkaisut viikolle 48 Harjoitustehtävät ja ratkaisut viikolle 48 1. Tehtävä on jatkoa aiemmalle tehtävälle viikolta 42, missä piti suunnitella älykodin arkkitehtuuri käyttäen vain ennalta annettua joukkoa ratkaisuja. Tämäkin

Lisätiedot

Harjoitus 2: Oppijan aktivointi (15.3.2016)

Harjoitus 2: Oppijan aktivointi (15.3.2016) Harjoitus 2: Oppijan aktivointi (15.3.2016) Tietokoneavusteinen opetus -kurssilla opetetaan Adobe Flash CS6:n käyttämistä neljänä kertana: 11.3.2016, 15.3.2016, 18.3.2016 ja 1.4.2016. Harjoituskerroilla

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

4. Lausekielinen ohjelmointi 4.1 4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen ja tulkinta. - Kääntäminen,

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

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

AutoCAD-natiiviobjektin toteutus

AutoCAD-natiiviobjektin toteutus AutoCAD-natiiviobjektin toteutus Kontiotuote OY Maailman toiseksi suurin hirsitalotoimittaja Aloittanut toimintansa 70-luvulla Liikevaihto vuonna 2003-37,355 Milj. euroa josta vientiä 7,376 Milj. euroa

Lisätiedot

T Henkilökohtainen harjoitus: FASTAXON

T Henkilökohtainen harjoitus: FASTAXON T-76.115 Henkilökohtainen harjoitus: FASTAXON Suunnittelumallit Group: Muuntaja Pentti Vänskä 52572W 2 1. Toteutus Tämä henkilökohtainen harjoitustyö käsitteli suunnittelumallien (Design Patterns) käyttöä

Lisätiedot

Hälyri-tietojärjestelmän järjestelmätestaussuunnitelma ja -raporttimalli

Hälyri-tietojärjestelmän järjestelmätestaussuunnitelma ja -raporttimalli Hälyri-tietojärjestelmän järjestelmätestaussuunnitelma ja -raporttimalli Laatijat: Veli Mikko Puupponen ja Ilkka Rautiainen Päivämäärä: 26.5.2014 Versio: 1.0.0 1. Testausympäristö ja yhteenveto Testatun

Lisätiedot

TIE-20200 Ohjelmistojen suunnittelu

TIE-20200 Ohjelmistojen suunnittelu TIE-20200 Ohjelmistojen suunnittelu Luento 1: Virtuaalifunktiot, Template method 1 Yleistä asiaa Muistakaa harkkatyöilmoittautuminen 23 ryhmää (mm. lihansyöjäkirahvi), vajaita ryhmiäkin on 44 henkeä vielä

Lisätiedot

Leikepöydän käyttö.net ja QT. Juha Järvensivu 2008

Leikepöydän käyttö.net ja QT. Juha Järvensivu 2008 Leikepöydän käyttö.net ja QT Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisältö Leikepöydän toiminta.net toteutus + esimerkki QT - toteutus Yleistä Leikepöytä (Clipboard) Keino siirtää tietoa nopeasti

Lisätiedot

Johdanto PHP PostgreSQL. PHP & PostgreSQL. Paul Tötterman 5. helmikuuta PHP & PostgreSQL.

Johdanto PHP PostgreSQL. PHP & PostgreSQL. Paul Tötterman 5. helmikuuta PHP & PostgreSQL. Paul Tötterman paul.totterman@iki.fi 5. helmikuuta 2008 LAMP SQL LAMP LAMP L = Linux tai *BSD, Solaris... A = Apache M = MySQL tai... P =, Perl, Python, Ruby... Flickr, Yahoo, Facebook... : Hypertext Preprocessor

Lisätiedot

Tuottavuutta sovelluskehitykseen Oraclen työkaluilla: JDeveloper 10g ja HTML DB OUGF Syysseminaari

Tuottavuutta sovelluskehitykseen Oraclen työkaluilla: JDeveloper 10g ja HTML DB OUGF Syysseminaari Tuottavuutta sovelluskehitykseen Oraclen työkaluilla: JDeveloper 10g ja HTML DB OUGF Syysseminaari 4.11.2004 Jari Kuokka Tuoteasiantuntija Oracle Finland Oracle Developer Suite 10 g JDeveloper Reports

Lisätiedot

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } } Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.

Lisätiedot

Omia appeja AppInventorilla. Jenna Tuominen Resurssikeskus Linkki, LumA, HY

Omia appeja AppInventorilla. Jenna Tuominen Resurssikeskus Linkki, LumA, HY Omia appeja AppInventorilla Jenna Tuominen Resurssikeskus Linkki, LumA, HY Mitä Linkki tekee? Kerhoja ja leirejä lapsille ja nuorille Koululuokille vierailuja Tietojenkäsittelytieteen laitokselle (HY)

Lisätiedot

Luokat ja oliot. Ville Sundberg

Luokat ja oliot. Ville Sundberg Luokat ja oliot Ville Sundberg 12.9.2007 Maailma on täynnä olioita Myös tietokoneohjelmat koostuvat olioista Σ Ο ω Μ ς υ φ Ϊ Φ Θ ψ Љ Є Ύ χ Й Mikä on olio? Tietokoneohjelman rakennuspalikka Oliolla on kaksi

Lisätiedot

Informaatiotekniikan kehitysyksikkö

Informaatiotekniikan kehitysyksikkö SAVONIA Savonia RPM Käyttöopas Informaatiotekniikan kehitysyksikkö 18.8.2011 Sisällysluettelo 1. Perusnäkymä... 3 2. Kirjautuminen... 4 3. Rekisteröinti... 5 4. Idean jättäminen... 6 4. Arviointi... 8

Lisätiedot

Oleelliset vaikeudet OT:ssa 1/2

Oleelliset vaikeudet OT:ssa 1/2 Oleelliset vaikeudet OT:ssa 1/2 Monimutkaisuus: Mahdoton ymmärtää kaikki ohjelman tilat Uusien toimintojen lisääminen voi olla vaikeaa Ohjelmista helposti vaikeakäyttöisiä Projektiryhmän sisäiset kommunikointivaikeudet

Lisätiedot

Tiedonlouhinta rakenteisista dokumenteista (seminaarityö)

Tiedonlouhinta rakenteisista dokumenteista (seminaarityö) Tiedonlouhinta rakenteisista dokumenteista (seminaarityö) Miika Nurminen (minurmin@jyu.fi) Jyväskylän yliopisto Tietotekniikan laitos Kalvot ja seminaarityö verkossa: http://users.jyu.fi/~minurmin/gradusem/

Lisätiedot

Johdatusta selainohjelmointiin

Johdatusta selainohjelmointiin Johdatusta selainohjelmointiin Ohjelmat ja tyylit selaimessa ja HTML Jaana Holvikivi Selaimet ja HTML Selaimet: Internet Explorer, Exchange Firefox, Chrome Opera 10 Safari 4 Lukevat HTML sivuja ja asettelevat

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

BIM Suunnittelun ja rakentamisen uusiutuvat toimintatavat Teppo Rauhala

BIM Suunnittelun ja rakentamisen uusiutuvat toimintatavat Teppo Rauhala BIM Suunnittelun ja rakentamisen uusiutuvat toimintatavat Teppo Rauhala Proxion 19.10.2015 Proxion BIM historiikkia Kehitystyö lähtenyt rakentamisen tarpeista Työkoneautomaatio alkoi yleistymään 2000 luvulla

Lisätiedot