Windows Presentation Foundation (WPF)- Luento 12

Luentotaltiointi

Ongelmia videon katselussa?

luentoesimerkki (zip)

Demo 5

mallivastaus

Mallivastauksessa vuokrauksen muokkaaminen ei toimi täysin koska oliomalli ei anna muokata olioiden avaimia ja vuokrauksessa on käytössä yhdistetty avain (vuokraaja, elokuva ja vuokrauspvm). Tämä on valitettava ongelma oliomallin kanssa. Tämä voidaan kiertää muuttamalla joko tietokannan rakennetta siten, että vuokraus-tauluun lisätään erillinen id-kenttä perusavaimeksi ja tehdään nykyisestä avaimesta erillinen rajoite. Toinen vaihtoehto on vuokrauksen tietoja muutettaessa poistaa vanha vuokraustieto kokonaan ja luoda sen tilalle uusi, joka on identtinen vanhan kanssa poislukien muuttunut vuokrauspvm.

Tehtävä kolmosen viimeinen osa eli elokuvien suosittelu vaatii joko monimutkaista/monimutkaisia linq-kyselyjä tai sitten asian kiertämistä SQLn avulla. Oleellista on saada ensin tieto siitä mikä on kunkin jäsenen suosituin lajityyppi ja se voidaan tehdä seuraavalla SQL-kyselyllä:

SELECT     Jasen.JasenID, Lajityyppi.LajityyppiID, Jasen.Nimi, Lajityyppi.Tyypinnimi, COUNT(*) AS lkm
FROM         Lajityyppi INNER JOIN
                      Elokuva ON Lajityyppi.LajityyppiID = Elokuva.LajityyppiID INNER JOIN
                      Vuokraus ON Elokuva.ElokuvaID = Vuokraus.ElokuvaID INNER JOIN
                      Jasen ON Vuokraus.JasenID = Jasen.JasenID
GROUP BY Lajityyppi.LajityyppiID, Lajityyppi.Tyypinnimi, Jasen.JasenID, Jasen.Nimi
ORDER BY Jasen.Nimi, lkm DESC, Lajityyppi.Tyypinnimi

Tämä kysely kannattaa sijoittaa tietokantaan näkymäksi (view) niin sitä on sitten helppo käytellä oliomallin kautta. Lisääminen onnistuu Server Explorerin kautta. Tämän jälkeen vain päivittää oliomallin ajantasalle niin näkymä ilmestyy taulujen joukkoon.

Ohjelmakoodissa riittää nyt, kun tiedetään jäsen ja voidaan jäsenid:n perusteella näkymästä ottaa listaus tämän jäsenen lajityypeistä. Tämän ja vuokraustietojen perusteella voidaan sitten listata elokuvia halutussa järjestyksessä.

Elokuvat joita tietty henkilö EI ole vielä vuokrannut:

SELECT     Nimi, Arvio
FROM         Elokuva
WHERE     (ElokuvaID NOT IN
                          (SELECT     ElokuvaID
                            FROM          Vuokraus
                            WHERE      (JasenID = 3)))
ORDER BY Arvio DESC

WPF

WPF on rakennettu DirectX-rajapinnan päälle ja tarjoaa laitteistokiihdytyksen ja modernimpia käyttöliittymäominaisuuksia kuin Windows Forms.

WPF on resoluutioriippumaton ja vektoripohjainen.

XML-pohjaisella XAML (Extensible Application Markup Language) kielellä määritellään käyttöliittymä. Tämä mahdollistaa saman käyttöliittymän käyttämisen monissa ympäristöissä.

XAMLin avulla Käyttöliittymään voi määritellä tyylejä (vrt. WWW-sivuilla käytetty CSS).

Käyttöliittymä ja ohjelmakoodi saadaan pidettyä hyvin erillään

_ on sama kuin &-merkki windows formsissa.

Data binding

Lisätietoa

http://en.wikipedia.org/wiki/Windows_Presentation_Foundation http://msdn.microsoft.com/en-us/library/ms754130.aspx http://www.wpftutorial.net/ http://joshsmithonwpf.wordpress.com/2007/09/05/wpf-vs-windows-forms/ http://mdavey.wordpress.com/2007/09/05/wpf-vs-windows-forms/

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/luennot/luento12/
© Antti Ekonoja (antti.j.ekonoja@jyu.fi) <http://users.jyu.fi/~anjoekon/>
Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
Jukka Mäntylä (jmantyla@iki.fi) <http://www.iki.fi/jmantyla/>
2010-10-20 10:03:45
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta