Luku 5 – Tietojen hakeminen sovelluksiin

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

Luku 6 – Käyttöliittymäsuunnittelu tarkemmin
1 Opiston Moodleopas KALVOSTO 3 – KURSSIN MUOKKAAMINEN KTOL:n Moodle-työryhmä Olli Ruohomäki.
Ohjelmistokehitys Viikko 2 Mika Salo Pekka Valtonen Asmo Voutilainen
Ohjelmistokehittäminen
Ohjelmiston tekninen suunnittelu
SMART Board Interaktiivinen esitystaulu -> yhdistää perinteisen liitu- ja tussitaulun sekä tietokonekuvan Sormesi on hiiri! Laura Viljamaa 2011.
Käyttöohje: Kuinka luoda uusi foorumi ja kuinka kommentoida foorumiin. (Painamalla F5 voit katsoa tämän diaesityksen)
KyläNetti - sivun tekeminen • KyläNetti-sivustoon on luotu valmiiksi esimerkinomainen sivurakenne, jota voi vapaasti muokata • Kaikki sivut eivät ole näkyvissä.
Nopein, helpoin, tuottavin tie 3D-maailmaan..  Käytön ja oppimisen helppoutta  Työskentelyn nopeutta  Suunnittelun joustavuutta ⇓ Lisää tuottavuutta.
Ohjelmistokehittäminen. Luku 4 – Windows-sovellusten käyttöliittymät.
@ Leena Lahtinen Helia TIETO JA TIETOKONEOHJELMA  TIETOKONEOHJELMA KÄSITTELEE TIETOJA  TIETOJA VOIDAAN KÄSITELLÄ OHJELMASSA VAIN SALLITUILLA.
JavaScript (c) Irja & Reino Aarinen, 2007
1 Java-kieleen pohjautuvien ohjelmien käyttökohteita Ohjelmat Appletit JavaBeans JavaScript Java Server Pages (JSP) Java Servletit J2ME, mobiililaitteet.
Käyttöohje: Kuinka luoda uusi uutinen. (Painamalla F5 voit katsoa tämän diaesityksen)
Luku 8 – Edistyneitä aiheita
Julkaisukielet ja - tekniikat tMyn1 Julkaisukielet ja -tekniikat •Verkko-ohjelmointi voidaan jakaa kahteen osaan: asiakaspuolen ja palvelinpuolen ohjelmointiin.
Ohjelmistokehittäminen. Luku 1 – Mitä on ohjelmistokehittäminen?
EXtensible Markup Language
Ohjelmointitaito (ict1td002, 12 op) Syksy 2008
Luetaan! Kota-projekti, Diat laati Maija-Liisa Halme-Briedis.
Valitse sanomapalkissa Ota muokkaus käyttöön,
Graafinen käyttöliittymä, osa 2
Windows Presentation Foundation - perusteet
Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 4 Toistolauseet
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Yksinkertaiset graafiset syöttö- ja tulostustoiminnot.
Käyttöohje: Kuinka luoda ilmoittautumislomake. (Painamalla F5 voit katsoa tämän diaesityksen)
VB:n tietokantakäsittely
Windows Presentation Foundation UxE:n näkökulmasta
Poikkeustenkäsittely  Mitä poikkeustenkäsittely tarkoittaa?  Poikkeuksen käsitteleminen  Poikkeusluokkien hierarkia  Poikkeuksen heittäminen 1.
13. Hyvä ohjelmointitapa (osa 1)
© Jukka Harju, Jukka Juslin
Luokan määrittely class-määreellä tMyn1 Luokan määrittely class-määreellä Luokan määrittely tarkoittaa luokan tietojäsenten esittelyä ja jäsenfunktioiden.
Suotuisan oppimistarinan rakentaminen ET- koulutus/T3/ Tapio Malinen.
Johtokoodaus Historia, toiminnalliset syyt ja toteutustapojen hintaerot ovat johtaneet eri johtokoodaustapojen kehittämiseen. Hyvälle johtokoodaukselle.
Kalenteri 2005 AJAVA – Ajanvarausjärjestelmä CSP Compact Software Products.
Kuinka tehdä blogi o365:ssä
Otsikko Kevät 2013 PAOK paokhanke.ning.com #paokhanke (Twitter) facebook.com/PAOK-verkosto.
Kuinka niitä käsitellään
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Lomakkeet © Reiska, Lomakkeet Varsinkin Web-sovelluksia ajetaan täyttämällä sivulla lomake ja lähettämällä tiedot palvelimella olevan Web-sovelluksen.
17. Kooste Kooste Kooste (aggregation) on luokkien A ja B välinen suhde, joka tarkoittaa “A on B:n osa” tai “A kuuluu B:hen”. − Koostesuhteessa.
OHJELMOINTITAITO ICT02D 12 ECTS. OPINTOJAKSON TOTEUTUS  KESTO: –  AVOIMEN OPISKELIJAT: – YKSI LUOKA (SUOMI) – LUOKKA ICT02O-1.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen
RAKENNUSPALIKOITA SEINÄJOEN KANSALAISOPISTO Jussi Rasku Aki Sirviö.
© Jukka Juslin1 Osio2 Olio-ohjelmointi: Merkkijonot eli Stringit Jukka Juslin.
Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida.
MultiMaker 7.0 Workshop Ohjelma, jossa voidaan luoda näyttäviä multimediasisältöjä. Yhtä sisältökoko-naisuutta kutsutaan esitykseksi. Ohjelmointitaitoja.
2. Lisää Java-ohjelmoinnin alkeita
Visual Basic -ohjelmointi
Olioiden taulukointi Perustaulukon käyttö Luokan ilmentymät voidaan tallettaa taulukkoon samoin kuin muuttujat Esimerkki talletetaan taulukkoon opintojaksojen.
XML Schema Teppo Räisänen Liiketalouden yksikkö.
Visual Basic -ohjelmointi
Ydinpalveluiden (käyttäjä, käyttöoikeus, potilas).NET-palvelutoteutus: CoreServiceDemo PlugIT-loppuseminaari Koulutustyöpaja 1: Avoimet ohjelmistorajapinnat.
1 © Jukka Juslin Luokat, attribuutit ja metodit Yleistietoa: seuraavalla koulutusviikolla tarkempi käsittely.
Sähköpostin lähetys Java- ohjelmasta Jukka Juslin.
Käyttöohje: Kuinka vaihtaa salasana. (Painamalla F5 voit katsoa tämän diaesityksen)
1..toistolauseet While Wend For Each In [Exit For] Next.
Miika Kuusinen LTY/Tietoliikenteen laitos 2003
Päättötyön esittelyohjeet
Poikkeustenkäsittelylohkot try-catch
3. Luokat, oliot ja metodit Java-kielessä (Lausekielinen ohjelmointi I ja II –kursseilla opitun kertausta.)
Luokan määrittely class-määreellä
14. Hyvä ohjelmointitapa.
4. Attribuutit.
PaikkaOppi beta Lyhyt johdatus käyttöön.
3. Attribuutit.
Esityksen transkriptio:

Luku 5 – Tietojen hakeminen sovelluksiin

Sisältö ❷❸ Tietosidonnan perusteet Verkosta tulevan tiedon hyödyntäminen SQL-tietokannat Mikä on OData? Tehtäviä Kysymyksiä ja vastauksia

Tietosidonnan tarve Kaikkein yksinkertaisin tapa esittää tietoja ruudulla on vakiotiedon esittäminen Tätä kutsutaan myös staattisen tiedon esittämiseksi Tämä yksinkertainen tapa sopii joihinkin sovelluksiin, kuten esimerkiksi e-kirjojen lukuohjelmiin tai joihinkin yksinkertaisiin peleihin Laajasti ajatellen tällaiset sovellukset eivät ole kovin monipuolisia

Tietosidonnan perusteet Tietosidonta (engl. data binding) on keskeinen menetelmä Windows 8 -sovellusten tietojen esittämisessä Voitkin aina kirjoittaa ohjelmakoodia, joka asettaa jonkin käyttöliittymäkomponentin näyttämän tekstin ohjelmallisesti, mutta laajemmissa sovelluksissa tämä käy työlääksi

Tietosidonta ja XAML Tietosidonnan avulla voit helpottaa kahta asiaa Tietojen esittämistä ruudulla (koodista ruudulle) Tilannetta, jossa käyttäjä muokkaa ruudulla näkyviä tietoja vaikkapa TextBox-komponentin avulla (ruudulta koodiin) Tietosidonta tehdään ohjelmakoodissa olevien luokkien ja XAML-kielisten määritysten yhteistyönä

Lähtökohta: C#-luokka ”Oppilas” public class Oppilas { public int Opiskelijanumero { get; set; } public string Nimi { get; set; } public string Henkilötunnus { get; set; } public string Sähköposti { get; set; } }

XAML-määritykset Oikeanlainen XAML-määritys vaatii tietoa kahdesta asiasta Mistä lähdetiedon ominaisuudesta (engl. property) haluttu tieto pitäisi lukea (engl. source) Minkä käyttöliittymäkomponentin mihin kohdeominaisuuteen (engl. property) lähdetieto tulisi kytkeä (engl. destination) Esimerkiksi Oppilas.Nimi --> TextBlock.Text

XAML-syntaksi Tietosidonnan tunnistaa XAML-kielisissä käyttöliittymissä aaltosulkeista { }, joiden sisällä on sana ”Binding” {Binding} -määritys tehdään siihen kohdekomponentin ominaisuuteen, josta tulee tietosidonnan kohde (engl. destination)

Esimerkki <TextBlock x:Name="OpiskelijaNumeroTextBlock" Text="{Binding Opiskelijanumero}" ... <TextBlock x:Name="NimiTextBlock” Text="{Binding Nimi}" ... <TextBlock x:Name="HenkilötunnusTextBlock" Text="{Binding Henkilötunnus}" ... <TextBlock x:Name="SähköpostiTextBlock" Text="{Binding Sähköposti}" ...

Tietosisällön määrittäminen Kun XAML-käyttöliittymän tietosidonta on määritelty edellä kuvatulla tavalla, jää vielä tehtäväksi kertoa ohjelmakoodissa, mihin olion ilmentymään (engl. object instance) tietosidonta kytketään Tämä tehdään käyttämällä XAML-sivun (engl. page) ominaisuutta nimeltä DataContext

Olion instanssin luonti Tyypillisesti olion tiedot haetaan tietokannasta, luetaan verkosta tai ne muodostuvat laskennan tuloksena Voit myös käyttää staattista oliota, tämä on helppo tapa kokeilla tietosidonnan toimintaa

Esimerkki Oppilas o = new Oppilas() { Opiskelijanumero = 12345, Nimi = "Olli Opiskelija", Henkilötunnus = "010290-123A", Sähköposti = "olli@oppilaitos.fi" };

DataContext-ominaisuuden kytkentä Sivun DataContext-ominaisuuteen voit kytkeä minkä tahansa olion Tietosidonnan XAML-kieliset määritykset alkavat etsiä annetusta oliosta määritysten mukaisia ominaisuuksia Esimerkki this.DataContext = o;

Verkosta tulevan tiedon hyödyntäminen Windows 8 -sovelluksesi heräävät eloon, kun yhdistät ne verkosta tulevaan tietoon Verkosta tuleva tieto voi olla monen tyyppistä Vaikkapa käyttäjän Twitter-syöte, päivän uutisotsikot rss-muodossa, jonkin taustajärjestelmän tuottama xml-muotoinen tieto, jne.

Monipuoliset mahdollisuudet Windows 8 -sovelluksissa on monipuoliset mahdollisuudet verkosta tulevan tiedon hyödyntämiseen Yleisimmin tieto haetaan http-protokollan avulla Voit kuitenkin käyttää myös socket- eli tcp/ip –rajapintoja tai vaikkapa ftp:tä

HttpClient-luokka Windows 8 -sovellusten käytettävissä on luokka nimeltä HttpClient Löytyy nimiavaruudesta (engl. namespace) Windows.Web.Http Luokka toimii asynkronisesti Sovellus ei pysähdy odottamaan tietojen lataamista verkosta, vaan käyttäjä voi jatkaa sovelluksen käyttöä Tukee myös salattuja yhteyksiä https-protokollan avulla

Esimerkki HttpClient client = new HttpClient(); Uri uri = new Uri("http://www.bing.com/"); string data = await client.GetStringAsync(uri);

Sovellusesimerkki: RSS-lukija Tarkastellaan esimerkkisovellusta, joka lukee Yleisradion pääuutisten virtaa RSS-syötteen kautta RSS eli Really Simple Syndication Tiedot voidaan ladata http-protokollan avulla, ja muodoltaan RSS-muotoinen tieto perustuu xml-kieleen

RSS-tiedon lataaminen HTTP:llä HttpClient client = new HttpClient(); Uri uri = new Uri( "http://yle.fi/uutiset/rss/paauutiset.rss"); string data = await client.GetStringAsync(uri); XmlDocument xml = new XmlDocument(); xml.LoadXml(data);

RSS-tiedon title-elementit

Otsikoiden hakeminen RSS-tiedosta Edellä olleessa esimerkissä verkosta tulleet RSS-muotoiset tiedot luettiin xml-komponenttiin Tällaisen komponentin avulla xml-muotoisesta tiedosta voidaan etsiä tiettyjä elementtejä xml-tiedoston puurakenteen perusteella

XML-komponentin käyttö Title-elementtien etsiminen XmlNodeList nodes = xml.SelectNodes("//channel/item/title"); Title-elementtien sisältöjen, eli uutisotsikoiden, muodostaminen listaksi List<string> titles = nodes.Select(n => n.InnerText).ToList();

SQL-tietokannat SQL on varsinkin tietokantojen tärkein kyselykieli, jolla voidaan hakea ja päivittää tietokannassa olevia tietoja Lyhenne sanoista Structured Query Language SQL-tietokantojen tietoihin päästään käsiksi useilla tavoilla Lähiverkon tietokannat tyypillisiä, mutta paljon käytetään myös pilvipohjaisia SQL-tietokantoja Jos sovellus on tarkoitettu käytettäväksi yritysverkon ulkopuolella, muodostetaan tietokantayhteys yleensä web-tekniikoita käyttäen avoimen internetin ylitse

Tapoja päästä käsiksi tietoihin SQL-tietokanta Web-rajapinnat Socket-yhteydet (tcp/ip) Paikallinen asennus Välityspalvelimet

Vaihtoehdot pähkinänkuoressa Yksinkertaisin vaihtoehto on asentaa sql-tietokanta itse sovelluksen yhteydessä samalle laitteelle Tyypillisempää on, että jollakin laitteella pyörivä Windows 8 -sovellus ottaa verkon ylitse yhteyttä johonkin erilliseen järjestelmään

Yhteystapoja Perinteiset, lähiverkoissa toimivat tietokannat voivat vaatia niin sanottujen socket-yhteyksien käyttöä Modernimmat, pilvipalvelu-aikakauden tietokannat sallivat yhteyden muodostamisen http-protokollan avulla Http-protokollan avulla voit olla yhteydessä tietokantaan myös Internetin kautta

OData OData eli Open Data on Microsoftin ja muiden alan toimijoiden alullepanema standardi ODatan avulla voidaan kuljettaa Internetissä tietokantamuotoista dataa (eli ”SQL-dataa”) Erityisesti OData-standardi on ajateltu toimivaksi http-protokollan sekä XML- ja JSON-tietomuotojen kanssa

ODatan alustatuki OData-standardin uusin versio on 3.0 Standardia tukevat jo monet erilaiset alustat Itse standardi on kuitenkin alusta- ja välineriippumaton Tuettuja alustoja ovat esimerkiksi Windows, Mac OS X sekä Linux ODataa tukevia ohjelmistoja ovat esimerkiksi Excel, PHP, Ruby sekä tietysti Microsoftin .NET ja C# (ja täten Windows 8 -sovellukset)

Tehtäviä Listaa ainakin kolme erilaista tapaa tallentaa tietoja Windows 8 -sovelluksesta. Mitä hyötyjä ja haittoja kussakin keksimässäsi tavassa on? Pohdi, miten voit rakentaa sovelluksia, jotka ovat käytettävissä silloinkin, kun Internet-yhteyttä ei ole saatavilla. Mitä hyötyä on ODatan kaltaisista, avoimista standardeista tietojen välittämiseen? Mitä muita tiedonsiirron standardeja osaat nimetä?

Kysymyksiä ja vastauksia 1 Sovellukseni tarvitsee vain yksinkertaista tiedon tallennusta. Mitä tallennusmenetelmiä minun kannattaisi käyttää? Yksinkertaisiin sovelluksiin voi riittää hyvin esimerkiksi sovellukseen kuuluva paikallinen xml-tiedosto. Windows 8 -sovelluksia voit käsitellä xml-tiedostoja esimerkiksi XmlDocument-luokan avulla, joka löytyy nimiavaruudesta Windows.Data.Xml.Dom. Voit myös käyttää joitakin sql-pohjaisia kevyttietokantoja. Tällainen tietokanta on esimerkiksi SQLite. Tämän tietokannan käyttöönotto omassa sovelluksessa tapahtuu helpoiten niin sanotun NuGet-paketin avulla. Hae sitä Visual Studiosta nimellä ”SQLite for Windows Runtime”. Tutustu myös uuteen Windows Azure Mobile Services -palveluun, jonka avulla voit hyvin nopeasti toteuttaa web-taustajärjestelmän sovelluksellesi.

Kysymyksiä ja vastauksia 2 Olen suunnittelemassa Windows 8 -sovellusta ja kirjoitan koodin Visual Studiolla. Sovelluksen on tarkoitus kommunikoida http-tekniikalla taustajärjestelmän kanssa. Pitääkö minun tehdä myös taustajärjestelmä Visual Studiolla? Avoimien tekniikoiden (kuten http) etuna on, että käytetyillä kehitysvälineillä ei ole merkitystä niin kauan kun standardeja noudatetaan. Niinpä voit kirjoittaa Windows 8 -sovelluksen käyttöliittymän Visual Studiolla ja taustajärjestelmän vaikkapa Pythonilla tai PHP:llä. Jos kuitenkin kirjoitat myös taustajärjestelmän Visual Studiolla, saat paljon etuja, sillä sinun ei tarvitse käyttää kahta tai useampaa kehitysvälinettä. Lisäksi voit kätevästi hyödyntää esimerkiksi ODatan kaltaisia tehokkaita tapoja tiedonvälitykseen. Tutustu Microsoftin ASP.NET-tekniikoihin. Niitä voit ohjelmoida esimerkiksi C#-kielellä.

Kysymyksiä ja vastauksia 3 Olen kuullut että moniin taustajärjestelmiin on hyökätty ja varastettu käyttäjätunnuksia ja salasanoja. Miten vältän itse tällaiset virheet? Tämä on monitahoinen kysymys, mutta silti hyvin tärkeä. Varsinkin suosittujen sovellusten suuret taustajärjestelmät ja tietokannat ovat rikollisille herkullisia kohteita. Tärkeää on, että käyttäjien tunnukset ja salasanat on salattu asianmukaisesti. Kaikki salaustavat eivät ole yhtä hyviä, joten on tärkeää valita riittävän tehokkaat salausmenetelmät. Monet muutkin asiat vaikuttavat taustajärjestelmien tietoturvaan, ja asiasta on kirjoitettu monia kirjoja. Voit tutustua esimerkiksi Microsoftin kehittäjä-sivuilta löytyvään kirjaan nimeltä ”Building Secure ASP.NET Applications”. Se löytyy osoitteesta http://msdn.microsoft.com/en-us/library/ff649100.aspx.