Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Luku 8 – Edistyneitä aiheita

Samankaltaiset esitykset


Esitys aiheesta: "Luku 8 – Edistyneitä aiheita"— Esityksen transkriptio:

1 Luku 8 – Edistyneitä aiheita

2 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

3 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

4 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

5 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

6 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) { //... }

7 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

8 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... }

9 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

10 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ä... }

11 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”.

12 Blendin käynnistäminen

13 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

14 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

15 Team Foundation Service

16 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ä

17 TFS-palvelimen tiedot

18 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

19 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

20 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

21 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

22 Margin-asetus Visual Studiossa

23 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

24 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.

25 Käyttöjärjestelmän hakutoiminto

26 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

27 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

28 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

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

30 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ä

31 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”

32 Tallennuskansio

33 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”

34 Visual Studion muokkausnäkymä

35 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

36 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”.

37 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?

38 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.

39 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”.


Lataa ppt "Luku 8 – Edistyneitä aiheita"

Samankaltaiset esitykset


Iklan oleh Google