Luku 8 – Edistyneitä aiheita

Slides:



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

Luku 7 – Sovellusten jakelu ja myynti
Käyttöohje: Kuinka luoda uusi sivu. (Painamalla F5 voit katsoa tämän diaesityksen)
Kysely- tai ilmoittautumislomakkeen luominen Google Driveen
Luku 6 – Käyttöliittymäsuunnittelu tarkemmin
SkyDrive ja Office Web Apps –sovellusten käyttäminen
TILDA-Verkkotilastointi
Suorita menulta voit ottaa yhteyden iSeries:iin tai katkaista yhteyden sinne ja poistua RI400:sta.
Olio-ohjelmoinnin perusteet luento 3: Muuttujista ja funktioista Sami Jantunen LTY/Tietotekniikan osasto.
Wikispace jatkokurssi Jarmo Heikkinen Karoliina Kemppainen Satu Kylmänen.
Ohjelmistokehittäminen. Luku 4 – Windows-sovellusten käyttöliittymät.
Portal-ohje opiskelijoille. 2 Kirjaudu sisään tunnuksella ja salasanalla. Portaliin kirjauduttaessa käytetään samoja tunnuksia kuin muihin VAMKin IT-järjestelmiin.
JavaScript oliot © Reiska, DOM Oliot  JavaScript sisältää paljon valmiita DOM olioita, on sisältänyt jo DOM level 0 (ns. Legacy DOM) alkaen  WWW-ympäristössä.
JavaScript (c) Irja & Reino Aarinen, 2007
HTML-kielen perusteet Osa 1 Vilho Kemppainen
Luku 5 – Tietojen hakeminen sovelluksiin
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö Netbeans ja XAMPP Projektin luominen.
Kurssilla käytettävät työkalut
Tietokanta.
Käyttöohje: Kuinka luoda uusi uutinen. (Painamalla F5 voit katsoa tämän diaesityksen)
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?
W w w. h a m k. f i Wiki koulutus Leenakaija Lehto
EXtensible Markup Language
Taulukoiden määrittely, käsittely ja kopiointi Vaihtoehdot taulukoille
13. Pakkaukset.
Valitse sanomapalkissa Ota muokkaus käyttöön,
Netvibes henkilökohtaisena oppimisympäristönä Kiravo – kirjasto avoimena oppimisympäristönä Biblär – biblioteket som ett öppet lärcentra Krista Auvinen.
Valitse sanomapalkissa Ota muokkaus käyttöön,
Windows Presentation Foundation - perusteet
Perintä. Yleistä Olio-ohjelmoinnin menetelmä muodostaa uusia luokkia aiemmin määriteltyjen luokkien avulla Luokka saa automaattisesti käyttöönsä kaikki.
Antti-Jussi Lakanen Nuorten peliohjelmointi 2009 / Jyväskylän yliopisto.
Kurssilla käytettävät työkalut
Tekstiasiakirjan kirjoittaminen
Tekstin muotoilu Wordilla:
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.
Poikkeuskäsittely- lohkot tMyn1 Poikkeuskäsittelylohkot try-catch Poikkeustilanteiden käsittelymekanismi toteutetaan varatuilla sanoilla try, throw ja.
Ketterä kehitys käytännössä – TFS & Meteor
Poikkeustenkäsittely  Mitä poikkeustenkäsittely tarkoittaa?  Poikkeuksen käsitteleminen  Poikkeusluokkien hierarkia  Poikkeuksen heittäminen 1.
13. Hyvä ohjelmointitapa (osa 1)
Vapaa aihe Kysymykset.
Internet-projekti - MUM2TM Heikki Hietala Jukka Mutikainen TIKO – Malmi
Kalenteri 2005 AJAVA – Ajanvarausjärjestelmä CSP Compact Software Products.
Someoppaita – step by step Twitter AVO-hanke Creative Commons Nimeä-Tarttuva 3.0 SuomiNimeä-Tarttuva 3.0 Suomi.
© 2010 IBM Corporation1 Objektien käyttöoikeudet  Kaikilla sisällönhallinnan objekteilla on käyttöoikeudet. Käyttöoikeudet on jaoteltuina Lukuoikeuksiin,
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
5. Kapselointi Yleistä Kapseloinnilla (encapsulation) tarkoitetaan luokan tietojen ja toimintojen pakkaamista yhdeksi suojatuksi kokonaisuudeksi.
Toimisto-ohjelmat TVT osana Sädettä. Tehdään kyselylomake joko tekstinkäsittely- tai taulukkolaskentaohjelmalla. Pilvipalveluita käytettäessä saadaan.
@ 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.
Valitse jokin alla olevista luvuista tai napsauta ”seuraava" -painiketta aloittaaksesi web-opas. 1.Kotisivulla liikkuminen?Kotisivulla liikkuminen? 2.Politiikanaloihin.
Tietokannat –kurssi SQL peruskyselyt
Poikkeukset Yleistä Virheeseen varautuminen tarkoittaa sitä, että ohjelmoija huomioi koodia kirjoittaessaan ajonaikaisen virheen mahdollisuuden.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen
© Jukka Juslin1 Osio2 Olio-ohjelmointi: Merkkijonot eli Stringit Jukka Juslin.
Pikaopas: © 2013 Microsoft Corporation. Kaikki oikeudet pidätetään. Lyncin aloitusnäyttö Lyncin aloitusnäytön vasemmassa osassa on ruutuja, joiden avulla.
XML Schema Teppo Räisänen Liiketalouden yksikkö.
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
1 © Jukka Juslin Luokat, attribuutit ja metodit Yleistietoa: seuraavalla koulutusviikolla tarkempi käsittely.
XSL Teppo Räisänen
Listat eli luettelot listaelementit ovat lohkoelementtejä:  lista ja listan alkiot alkavat uudelta riviltä  listan jälkeen tuleva elementti alkaa uudelta.
MapInfon tiedostot TAB – Tiedosto, jonka avulla tietokanta avataan MapInfossa. Tiedostossa tietoja kentistä ja koordinaattijärjestelmästä. DAT, XLS. TXT.
JOPOX Uusi hallinta / Lomaketyökalu. Uuden lomakkeen luonti Lomakkeen rakentaminen alkaa klikkaamalla auki Lomakkeet. Oletusarvoisesti oman joukkueesi.
Jani Kiviharju Helsingin normaalilyseo Syksy 2016
TERVE Piirto-ohjeita GIMP-kuvankäsittelyohjelmalle
PaikkaOppi Mobiilin käyttöohje
14. Hyvä ohjelmointitapa.
TERVE Piirto-ohjeita GIMP-kuvankäsittelyohjelmalle
4. Luokan testaus ja käyttö olion kautta
Esityksen transkriptio:

Luku 8 – Edistyneitä aiheita

Sisältö ❸ C#-kielen tehokas käyttö Visual Studio 2013 ja Blend 2013 Asynkroninen ohjelmointi LINQ-kyselykieli Visual Studio 2013 ja Blend 2013 Versionhallinta pilvestä XAML-vinkkejä Marginaalit ja sopimukset Sovellusten lokalisointi Tehtäviä Kysymyksiä ja vastauksia

C#-kielen tehokas käyttö Ohjelmointikielenä C#-kieli on tehokas ja monipuolinen Paljon nykyaikaisia ominaisuuksia Esimerkiksi geneeriset tietotyypit, tuki asynkroniselle ohjelmoinnille ja rinnakkaisuudelle, integroitu kyselykieli, jne. Seuraavassa tutustutaan muutamiin C#-kielen hyödyllisiin ominaisuuksiin

Asynkroninen ohjelmointi Asynkronisuus tarkoittaa ohjelmoinnissa sitä, että kaksi tai useampaa toimintoa suoritetaan rinnakkain eli yhtä aikaa Eikä peräkkäin kuten ohjelmoinnissa perinteisesti Asynkronisen ohjelmoinnin avulla ratkaistaan ongelma, jossa sovellus näyttää pysähtyvän paikalleen tehdessään jotain Esimerkiksi silloin, kun sovellus ollaan lataamassa kookasta tiedostoa verkosta

C# ja asynkronisuus C#-ohjelmointkieli tekee asynkronisesta ohjelmoinnista helppoa uusien async- ja await-avainsanojen avulla Apuna käytetään runsaasti Task-luokkaa, joka on osa Windows 8:n luokkakirjastoja

Koodiesimerkki private async void StartButton_Click( object sender, RoutedEventArgs e) { try Task<int> intTask = ExampleMethodAsync(); ResultsTextBox.Text += "Tehdään jotain samalla " + "kun metodia suoritetaan"; int intResult = await intTask; ResultsTextBox.Text += String.Format( "Length: {0}\n\n", intResult); } catch (Exception) { //... }

LINQ-kyselykieli Lyhenne sanoista Language Integrated Query Äännetään ”link” tai ”lin-quu” LINQ on C#-ohjemointikieleen integroitu kyselykieli, jonka avulla helpotetaan tietojen hakemista ja etsimistä erilaisista tietolähteistä Syntaksi muistuttaa SQL-kieltä Jos tunnet jo SQL-kieltä, on LINQ helppo oppia

Esimerkki LINQ-kyselystä int[] luvut = {5,3,9,7,1,6,10,4,2}; var lajiteltuna = from l in luvut where l > 5 orderby l select l; foreach (int luku in lajiteltuna) { // näytä luku ruudulla... }

LINQ-kielen tukema tietolähteet Edellisessä esimerkissä näytettiin LINQ-kysely, joka hakee lukuja taulukosta (engl. array) Taulukkojen tai sovelluksen sisäisten olioiden lisäksi LINQ osaa hakea tietoja esimerkiksi SQL-tietokannoista Muita tuettuja tietolähteitä ovat esimerkiksi XML-tiedostot ja webistä löytyvät tietolähteet

Toinen esimerkki NorthwindEntities entities = new NorthwindEntities(); var suomalaisetAsiakkaat = from c in entities.Customers where c.Country == "Finland" orderby c.CompanyName select c; foreach (var asiakas in suomalaisetAsiakkaat) { int tilausmäärä = asiakas.Orders.Count; // muuta käsittelyä... }

Visual Studio 2013 ja Blend Visual Studio ja Blend ovat työvälinepari, joita kumpaakin tarvitset Windows 8 -sovellusten kehittämiseen Välineet on suunniteltu niin, että niiden yhteiskäyttö on vaivatonta Kun olet avannut Windows 8 -sovelluksen Visual Studioon, voit helposti siirtyä muokkaamaan mitä tahansa XAML-tiedostoa Blendiin Helpoiten tämä onnistuu Visual Studion Solution Explorer -ikkunan kautta, jonka pikavalikosta voit valita komennon ”Open in Blend”.

Blendin käynnistäminen

Versionhallinnan käsite Versionhallinta on olennainen osa mitä tahansa ohjelmistoprojektia Versionhallinnan avulla useamman kehittäjän yhtäaikaiset muutokset pysyvät järjestyksessä Tarvittaessa jo kertaalleen muutettu tai poistettu ohjelmakoodi saadaan palautettua takaisin Versionhallintajärjestelmien perusteiden hallinta on hyvä taito kaikille ohjelmistokehittäjille

Microsoftin ratkaisu Visual Studio toimii hyvin yhteen valmistajan oman versionhallintapalvelun kanssa Palvelun nimi on Team Foundation Service, lyhyesti TFS Palvelu on pilvipalvelu, jota käytetään suoraan Visual Studiosta tai web-selaimella

Team Foundation Service

TFS:n käyttö Visual Studiosta Rekisteröityessäsi TFS-pilvipalveluun voit valita palvelulle haluamasi nimen Tästä nimestä muodostuu sinulle varatun palvelun internet-osoite, jonka Visual Studio haluaa tietää Yhdistäminen tehdään Visual Studion Team Explorer -ikkunan kautta Kun yhdistäminen on kerran tehty, voit käyttää versionhallintaan jatkossakin ilman eri määrityksiä

TFS-palvelimen tiedot

CodePlex-palvelu CodePlex on kaikille avoin web-palvelu, jossa voidaan kehittää avoimen lähdekoodin ratkaisuja yhteisöllisesti CodePlex-palveluun kuuluu TFS-pohjainen versionhallinnan kevytversio CodePlex-palvelulla on kymmeniä tuhansia aktiivisia käyttäjiä, ja sieltä löydätkin monia mielenkiintoisia projekteja

XAML-vinkkejä Windows 8 -sovellusten käyttöliittymien kuvaamiseen käytetään XAML-kieltä Kielen ominaisuuksien hyvä hallinta auttaa kehittämään parempia sovelluksia nopeammin Seuraavassa esitetään kolme vinkkiä parempaan XAML-ohjelmointiin

Komponenttien marginaalit Monien käyttöliittymäkomponenttien sijainti ja koko määritellään Margin-nimisellä ominaisuudella Margin-ominaisuuden arvot ovat suhteellisia, ja riippuvat siitä minkä toisen komponentin sisällä toinen komponentti on

Esimerkki XAML-koodissa marginaalit voidaan määritellä esimerkiksi näin: <Rectangle Margin="7,7,40,20" /> Margin-ominaisuuden muodostaa neljä lukua, jotka edustavat komponentin kunkin reunan etäisyyttä äiti-elementin reunoista Lukujen järjestys on vasen, ylä, oikea, ala

Margin-asetus Visual Studiossa

Sopimukset (engl. contracts) Windows 8 -sovellukset voivat käyttää niin sanottuja sopimuksia kytkeytyäkseen osaksi käyttöjärjestelmän toimintoja Sopimusten avulla käyttöjärjestelmä ja sovelluksesi (tai muut sovellukset) voivat vaihtaa tietoja keskenään Näin tiettyjä perustoimintoja ei tarvitse toteuttaa jokaisessa sovelluksessa erikseen

Haku-sopimus Yksi esimerkki tällaisesta kytkeytymisestä on Windows-käyttöjärjestelmän hakutoiminto Haku-sopimuksen avulla sovelluksesi sisältämät tiedot tulevat mukaan hakutuloksiin, kun käyttäjä hakee tietoja käyttöjärjestelmän omalla hakutoiminnolla Sisältö voi olla tekstiä, kuvia, videoita, jne.

Käyttöjärjestelmän hakutoiminto

Sovellusten lokalisointi Kun kehitettävä Windows 8 -sovellus tai peli on sellainen, että sitä voitaisiin käyttää myös Suomen rajojen ulkopuolella, on pohdittava, pitäisikö sovelluksen käyttöliittymä kääntää eri kielille Windows 8 -sovellukset voidaan pienellä vaivalla kääntää useille kielille

Kääntämisen kaksi osa-aluetta Kääntämiseen liittyy kaksi eri asiaa, joista käytetään nimityksiä lokalisaatio ja globalisaatio (engl. localization, globalization) Lokalisaatio Sovelluksen kääntämistä ja sovittamista kohdekulttuuriin (esimerkiksi värimaailma ja ikonit, pelien sanaleikit, ja niin edelleen) Globalisaatio Suomen- tai englanninkielinen sovellus ohjelmoidaan tukemaan erilaisia päivämäärä-, valuutta- ja lukujen desimaalierottimia ilman, että käyttöliittymän tekstejä käännetään

Ohjelmallinen selvittäminen Ohjelmakoodissa voit selvittää käyttäjän valitseman kielen sekä käyttöjärjestelmän kielen Kirjastoluokat Windows.Globalization.Language System.Globalization.CultureInfo

Esimerkki string näppäimistö = Windows. Globalization.Language. CurrentInputMethodLanguageTag; string käyttöjärjestelmä = System. Globalization.CultureInfo. CurrentCulture.Name;

Käyttöliittymän kääntäminen Käyttöliittymän kääntämiseen eri kielille kannattaa käyttää niin sanottuja resurssitiedostoja (engl. resource files) Ajatuksena on, että vaikkapa TextBlock- ja Button-komponenttien näyttämää tekstiä ei kirjoiteta suoraan xaml-koodiin, vaan tekstit syötetään kullekin kielelle tarkoitettuun resurssitiedostoon Resurssitiedostot tunnistaa Visual Studion Solution Explorer -ikkunassa .resw-tiedostopäätteestä

Resurssitiedostojen tallennuspaikka Resurssitiedostot tallennetaan Strings-nimiseen alikansioon projektissa Kansio on luotava tarvittaessa itse Tämän kansion alle perustetaan edelleen alikansioita kutakin kielikoodia varten Kielikoodit ovat muotoa ”xx-XX” Esimerkiksi suomenkielisellä sovelluksella alikansion nimi on ”fi-FI”

Tallennuskansio

Resurssitiedostojen muokkaus Resurssitiedostoja muokataan Visual Studiossa Excelin kaltaisessa taulukossa, jossa vasemmalla on niin sanottu avain (engl. key) ja oikealla arvo (value) Leikepöydän kautta tiedot voidaan tarvittaessa viedä Exceliin, jolloin tiedoston voi lähettää vaikkapa käännöstoimistoon käännettäväksi Avain muodostuu kahdesta osasta, ensin halutusta yksilöivästä nimestä (esimerkiksi komponentin nimi) ja tämän jälkeen pisteellä erotetusta ominaisuuden nimestä, joka halutaan lokalisoida Esimerkiksi ”Nappi.Content”

Visual Studion muokkausnäkymä

Lokalisoitu XAML-määritys Jotta lokalisointi resurssitiedostojen kautta saataisiin toimimaan, määritellään kullekin käyttöliittymäkomponentille niin sanottu Uid-attribuutti Huomaa, että XAML-koodiin voidaan jättää alkuperäinen määritys kuten vaikkapa painikkeen (engl. button) ruudulla näyttämä teksti Kun sovellusta ajetaan, käyttöjärjestelmä hakee resurssitiedostosta käyttäjän kielen mukaisen tekstin, ja korvaa XAML-koodissa olleen arvon automaattisesti

Esimerkki <Button x:Uid="OmaNappi" Content="Painike" /> Uid-arvo Lokalisoitava ominaisuus Name-ominaisuudesta saadaan selville mitä komponenttia arvo koskee (Uid-arvo) sekä mikä ominaisuus tulisi lokalisoida. Muoto on ”komponentti.ominaisuus”.

Tehtäviä Keksi esimerkkejä tilanteista, joissa asynkronisuudesta on apua Windows 8 -sovelluksissa. Blend sopii Windows 8 -sovellusten graafisten ominaisuuksien kehittämiseen, mutta se ei kuitenkaan ole kuvankäsittelyväline. Selvitä, mitä yleisiä tiedostomuotoja Blend tukee grafiikan tuomiseksi muista sovelluksista, esimerkiksi Photoshopista. Perusta ystäviesi, koulukavereittesi tai kollegoittesi kanssa avoimen lähdekoodin projekti CodePlexiin, ja jakaa sen kautta lähdekoodia koko maailmalle. Mitä havaintoja teit?

Kysymyksiä ja vastauksia 1 LINQ-kyselykieli vaikuttaa mielenkiintoiselta. Mihin kaikkeen sitä voi käyttää? Lyhyesti sanottuna LINQ-kyselykieli ja siihen liittyvät kirjastot ovat hyvin monipuolisia ja soveltuvat moneen käyttötarkoitukseen. Kun aiemmista esimerkeistä kävi ilmi, voit käyttää LINQ-kieltä hakeaksesi, suodattaaksesi (engl. filter) ja lajitellaksesi tietoa monesta eri lähteestä. Tällaisia lähteitä ovat esimerkiksi sovelluksesi sisäiset oliot (kuten taulukot ja listat), sql-tietokannat, xml-tiedostot ja niin edelleen.

Kysymyksiä ja vastauksia 2 Yritän käyttää C#-kielen await-avainsanaa, mutta kääntäjä ilmoittaa virheestä siinä metodissa, jossa await-avainsana on? Mitä todennäköisimmin virhe johtuu siitä, että olet unohtanut async-avainsanan itse metodin määrittelystä. Jos olet määritellyt metodin esimerkiksi ”private void Button_Click”, sinun pitää lisätä async-avainsana private-sanan jälkeen: ”private async void Button_Click”.