Verkko, tietokannat, asetukset ja lokalisointi - Viikkotehtävä 8

Tässä viikkotehtävässä toteutetaan monikielinen WPF-sovellus, joka osaa tallentaa asetuksensa, käyttää tietokantaa ja toimia verkossa.

Taso 1

Toteuta yksinkertainen graafinen autolaskuri monikielisenä WPF-sovelluksena. Autolaskurin pitää osata laskea henkilöautoja, kuorma-autoja ja niiden yhteissumman.

Lisää ohjelmaan menu josta voit valita onko käytettävä kieli suomi vai englanti. Tieto valitusta kielestä pitää tallentaa rekisteriin tai .config-tiedostoon käyttäjäkohtaisina asetuksina. Uusi valittu kieli otetaan käyttöön ohjelman seuraavalla käynnistyskerralla.

Ohjelman sisältämistä teksteistä pitää kääntää ainakin ikkunan title, painikkeiden tekstit ja kieli-menu valintoineen.. Toteuta monikielisyys resx-tiedostoja käyttäen.

Taso 3

Toteuta samanlainen autolaskuri kuin taso 1 -tehtävässä mutta toteuta monikielisyys LocBaml-työkalun avulla. Älä käytä resx-tiedostoja.

Mahdollista laskurin käyttäminen myös verkon kautta WWW-selaimella. Ts. Tee pieni www-sivu jossa on kaksi linkkiä "Lisää henkilöauto" ja "Lisää kuorma-auto" ja nämä viittaavat autolaskurisi muodostamaan pieneen WWW-palvelimeen ja linkissä käyminen kasvattaa kyseistä laskuria. esim. http://omakone.example/henkiloauto ja http://omakone.example/kuorma-auto. Palvelin saa toimia muussakin portissa kuin 80.

Toteuta asetusten tallentaminen .config-tiedoston avulla. Älä käytä rekisteriä.

Taso 5

Toteuta samanlainen autolaskuri kuin taso 3 -tehtävässä seuraavilla muutoksilla ja lisäyksillä:

Lisää ohjelmaan menuvalinta jolla voi lisätä sovellukseen laskureita jo olemassaolevien kahden lisäksi. Uusi lisätty laskuri kysyy mitä sillä halutaan laskea ja laskukohteeksi voidaan antaa mikä tahansa asia (merkkijono). Jos lisää kaksi kappaletta samanlaisia laskureita esim. kuorma-autolaskureita niin laskurit toimivat keskenään synkronoituina eli kummalla tahansa lisää kuorma-auton niin molempien laskuri kasvaa.

Varmista, että kutakin laskuria voidaan käyttää myös WWW-selaimen avulla verkon kautta. Tee WWW-sivu jossa on lomake jolla kysytään laskurikohdetta (merkkijonoa) ja sen jälkeen lomakkeen lähettäminen kasvattaa kyseisen laskurin arvoa. esim. http://omakone.example/kasvata?kohde=henkiloauto Toteuta verkkopalvelin erillisena ohjelmana (Laskuripalvelin).

Ohjelma osaa aina näyttää kaikkien laskurien yhteissumman. Mahdollista myös laskurien poistaminen ohjelmasta. Ohjelma muistaa automaattisesti sisältämiensä laskurien määrän, tyypit ja arvot ja käynnistää saman määrän samanlaisia laskureita aiemmilla laskutuloksilla ohjelman seuraavalla käyttökerralla.

Toteuta ohjelman laskurit omina kontrolleina ja mahdollista kielen vaihtaminen laskurikohtaisesti. Ts. käyttäjä voi valita onko kuorma-autolaskuri tai henkilöautolaskuri tai mikä liekään laskuri suomenkielinen tai englanninkielinen toisista laskureista riippumatta. Toteuta kielivalinta suoraan kontrollissa. Lisäksi toteuta ohjelman yhteisten osien kielivalinta laskurien kielestä riippumatta. Kukin laskurikontrolli muistaa kielensä ohjelman eri käynnistyskertojen välillä.

Kaikki ohjelman tallentamat asetukset ovat käyttäjäkohtaisia. Laskurien laskurisummat ovat globaaleja eli kaikille käyttäjille yhteisiä.

Lisää laskuripalvelimeen tuki tietokannalle eli luo pieni tietokanta johon kunkin laskurityypin arvo tallentuu. Käytä laskurikomponentissa samaa tietokantaa eli palvelinta, jonka osoite voidaan määrittää sopivan propertyn avulla. Pidä huoli, että tietokantaan tallentaminen toimii vaikka laskureita olisi samassa ohjelmassa kymmeniä ja selainta käyttäviä käyttäjiä myös useita. Varmista, että tietokantapalvelin toimii kunnolla vaikka laskuriohjelmia olisi samanaikaisesti päällä useita. Ohjelman graafisia käyttöliittymiä voidaan siis käynnistää useita mutta laskuripalvelimia on aina käynnissä vain yksi.

Käyttäjien kommentit

Kommentoi tätä sivua Lisää uusi kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/gko/vt/vt8/
© Antti Ekonoja (antti.j.ekonoja@jyu.fi) <http://users.jyu.fi/~anjoekon/>
Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
2012-03-27 09:45:16
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta