Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

WPF ja Windows Forms - yhteiskäyttö Niko Suni Konsultti – sovelluskehitys ja integrointi Itagent (fi)

Samankaltaiset esitykset


Esitys aiheesta: "WPF ja Windows Forms - yhteiskäyttö Niko Suni Konsultti – sovelluskehitys ja integrointi Itagent (fi)"— Esityksen transkriptio:

1

2

3 WPF ja Windows Forms - yhteiskäyttö Niko Suni Konsultti – sovelluskehitys ja integrointi Itagent (fi)

4 AGENDA •Perusteiden kertaus lyhyesti •Motivaatio yhteiskäyttöön •WPF:n käyttäminen Forms-sovelluksessa •Formsin käyttäminen WPF-sovelluksessa •Yhteensopivuus •Sudenkuopat •Muut interoperaatiotekniikat - lyhyt katsaus •Kysymyksiä?

5 KERTAUS LYHYESTI •Windows Forms –”Vanha” käyttöliittymäkirjasto –Ensimmäinen versio julkaistiin.net 1.0-kirjastojen yhteydessä –Toteutettu Windowsin natiivi-ikkunoiden päälle •Windows Presentation Foundation –Kokonaan uusi, vektoripohjainen käyttöliittymäkirjasto –Julkaistiin.net 3.0:n yhteydessä –Ikkunoiden peruskehyksiä lukuunottamatta hyvin pieni riippuvuus natiivi-ikkunoihin

6 MOTIVAATIO YHTEISKÄYTTÖÖN •Useimmat käynnissä olevat sovelluskehitysprojektit on suunniteltu ennen Windows Presentation Foundationin julkaisua •WPF tehostaa kuitenkin merkittävästi tiettyjä sovelluskehityksen alueita –Sovelluksien ulkonäön muokkaus ja ”skinnaus” –Käytettävyys (sekä loppukäyttäjän että kehittäjän näkökulmasta) –Multimedian integrointi (interaktiivinen ohjeistus, viihde) •Formsissa on myös hyviä ominaisuuksia –Valtava määrä kolmansien osapuolien kontrolleja –Tuttu useimmille kehittäjille •Nämä asiat huomioon ottaen, teknologioiden yhdistäminen samaan projektiin muodostuu useissa tapauksissa hyväksi ratkaisuksi

7 WPF:N KÄYTTÖ FORMSISSA •.Net 3.0:n mukana toimitetaan yhteiskäyttöön suunniteltu kontrolli, ElementHost •Tähän kontrolliin voidaan upottaa mikä tahansa UIElementistä periytyvä luokka (eli WPF- kontrolli) •Upotettu kontrolli käyttäytyy suurimmaksi osaksi samalla tavalla kuin Formsin ”natiivi”- kontrollit –Pieniä ongelmia tosin on; näistä enemmän session loppupäässä

8 WPF:N KÄYTTÖ FORMSISSA •DEMO

9 FORMSIN KÄYTTÖ WPF:SSÄ •Samaan tapaan kuin Forms->WPF, myös tähän skenaarioon toimitetaan oma kontrolli – WindowsFormsHost •Toiminta on pitkälti samanlaista, paitsi että upotettava kontrolli periytyy Forms.Controls.Control-luokasta •Forms-nimitila voidaan tuoda XAML-tiedostoon jotta kontrollien alustus tapahtuu WPF-tyyliin –Kontrollit voidaan tietysti alustaa myös taustakoodissa

10 FORMSIN KÄYTTÖ WPF:SSÄ •DEMO

11 YHTEENSOPIVUUS 1/2 •Kaikki tärkeimmät toiminnot kytkeytyvät automaattisesti interop-tason läpi –Tabulointi, kursorit, marginaalit, fontit ja värit, jne. •Kaikki kontrollit ovat pohjimmiltaan.net- objekteja, joten ”binääritason” yhteensopivuus on 100% –Eli jos jokin ei toimi, koodilla voi paikata –PropertyMap-rajapinta on helppokäyttöinen

12 YHTEENSOPIVUUS 2/2 •Johtuen teknologioiden eroista, jotkut ominaisuudet eivät toimi samalla tavoin molemmissa kirjastoissa –Kontrollien skaalaus ja pyöritys, Z-järjestys, läpinäkyvyys

13 YHTEENSOPIVUUS •DEMO

14 SUDENKUOPAT •Interop-kontrollilla on aina oma ikkuna (HWND) –Hyvä tiedostaa, jos käsittelee manuaalisesti ikkunahandleja jostain syystä •Monikerroksinen yhteiskäyttö ei toimi –Interoperaatio ei ”näe” kuin yhden ”seinän” läpi •Lisensoitujen kontrollien alustus –Kutsu manuaalisesti CreateControl ennen upottamista •Forms-kontrollit näyttävät ”vaniljalta” WPF-sovelluksessa –Aseta Forms.Application.EnableVisualStyles = true ennen initializea •Focus ei aina siirry oikein –Johtuen eri HWND:stä –Voidaan korjata koodissa

15 MUUT YHTEISKÄYTTÖTEKNIIKAT •On mahdollista upottaa WPF:ää natiivisovellukseen (C++/CLR) ja toisin päin –HwndSource, HwndHost –Kaikki mitä voidaan tehdä natiivi-ikkunalla, voidaan periaatteessa toteuttaa näillä, joskaan kaikki ei välttämättä ole helppoa •Hakkeroimalla voidaan ohittaa rajoituksia yleensäkin, mutta yleensä suorituskyky ei ole optimaalinen

16 ESIMERKKI HAKKEROINNISTA •Kuvakaappaus nettiselaimesta piirrettynä WPF- piirtopintaan Image copyright assumed Leslie Godwin & Jeremiah Morrill. Image use in this educational context falls under common fair use.

17 KYSYMYKSIÄ?

18 LISÄTIETOJA –WindowsClient.net –MSDN.com –Codeplex.com –etsikää Codeplexistä ” WPFWin32Renderer” –blogs.msdn.com/scoberry (lisää tietoa sudenkuopista) –nikke@itagent.fi


Lataa ppt "WPF ja Windows Forms - yhteiskäyttö Niko Suni Konsultti – sovelluskehitys ja integrointi Itagent (fi)"

Samankaltaiset esitykset


Iklan oleh Google