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

Slides:



Advertisements
Samankaltaiset esitykset
Näkökulmia järjestövetoisten kehittämishankkeiden ja kuntien yhteistyölle - Miten saada kehittämistyön tulokset pysyviksi toimintatavoiksi Antti Pelto-Huikko.
Advertisements

Useimmat esitetyt asiat pätevät myös muihin Office ohjelmiin.
SMART Board Interaktiivinen esitystaulu -> yhdistää perinteisen liitu- ja tussitaulun sekä tietokonekuvan Sormesi on hiiri! Laura Viljamaa 2011.
Tiedonhaku Internetistä PODCASTING Katarina Andersson TU08se
Johdatus Linuxiin Mauri Heinonen
Suunnitelma ohjelmiston testaukseen
Luku 5 – Tietojen hakeminen sovelluksiin
Samba seminaari. Historiaa  Ensimmäinen versio 1992  Kehittäjä Andrew TridgellAndrew Tridgell.
Info-TV Projekti.
Saatavuus kilpailukeinona
Valitse sanomapalkissa Ota muokkaus käyttöön,
Windows Presentation Foundation - perusteet
Visual Studio 2008 ja sovellusten elinkaaren hallinta Matti Antila Jukka Wallasvaara Iikka Paavolainen Microsoft Oy.
Perintä. Yleistä Olio-ohjelmoinnin menetelmä muodostaa uusia luokkia aiemmin määriteltyjen luokkien avulla Luokka saa automaattisesti käyttöönsä kaikki.
E-kirjojen metadata Työryhmän työskentely vielä kesken Erkki Tolonen.
Antti-Jussi Lakanen Nuorten peliohjelmointi 2009 / Jyväskylän yliopisto.
AS Automaation käyttöliittymät – Harjoitustyö 2009 ‹#› AS Automaation käyttöliittymät Harjoitustyö 2009  Harjoitustyö tehdään 3-4 hengen.
Ketterä testaus ja testauslähtöinen kehitys
Tekstiasiakirjan kirjoittaminen
Tekstin muotoilu Wordilla:
Windows Presentation Foundation UxE:n näkökulmasta
Ketterä kehitys käytännössä – TFS & Meteor
Internet-projekti - MUM2TM Heikki Hietala Jukka Mutikainen TIKO – Malmi
GIMP ja muut kuvankäsittelyohjelmat
Johdatus ohjelmointiin Ohjelmistosuunnittelu Jaana Holvikivi.
Finnish Support Center FSC Oy tietojärjestelmien asiantuntija.
Tehnyt: Jaska Kauppila Ti10 TIVE.  GIMP (GNU Image Manipulation Program) on yksi suosituimpia ilmaisia kuvankäsittelyohjelmia  Sitä on käännetty usealle.
Dokumenttien käsittely ja tietoverkot Wordin toiminnot, toinen tapaaminen.
Työasemasovelluksen käyttöliittymä sovelluksien käyttöliittymät voidaan jakaa kahteen pääluokkaan: –kohde-toiminto -pohjaisiin (object-action) käyttöliittymiin.
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
T Loppudemo Kaffetauko eAuction
C 1. Testaus on ”sarja toimintoja” Itse asiassa, testaus on vuorovaikutusta, jota rytmittää ohjelmiston arviointi. Vaikka on hyödyllistä tunnistaa sarja.
Peliohjelmointia Jypelillä Tero Jäntti Tomi Karppinen Syksy 2009.
XHTML-perusteita Teppo Räisänen
© Jukka Juslin1 Tiedostot Tuloksellinen Java-ohjelmointi.
Dokumenttien käsittely ja tietoverkot Wordin perusteet — kirjasimet ja kappaleet.
Jaakko Markkanen & Ari Laine. Yhteisö, joka kehittää työpöytäympäristöä KDE SC (Software Compilation) Avoimen lähdekoodin ja voittoa tavoittelematon yhteisö.
402T20E Digitaalisen sovellustuotannon työvälineet, 3 op Flash MX –perusteet Ari Vainionpää.
Sovelluskehittimet Nikolaos Avanidis oh5.
Ratkaisukeskeisen psykoterapian ihmiskäsitys
Lyhyt johdanto CVS:ään (ict1td002 - Ohjelmointitaito)
 MODx on julkaisujärjestelmän ja sovelluskehyksen risteytys, jonka lisenssinä on kaikille ilmainen avoimen lähdekoodin GNU GPL. MODx on suunniteltu ammattilaisten.
Älykkäiden käyttöliittymien käytettävyysvaatimukset Rami Annala T Käyttöliittymien ja käytettävyyden seminaari, Syksy 2002: Kontekstiherkkyydestä.
T Henkilökohtainen SE harjoitus
11. Rajapinnat Sisällys Mitä rajapinnat ovat? Kuinka ne määritellään ja otetaan käyttöön? Moniperiytyminen rajapintojen avulla. Varoituksen.
Iak115 Dokumenttien käsittely ja tietoverkot Dokumenttien käsittely ja tietoverkot — kurssirunko 1. Windows-käyttöliittymä ja ‑ tiedostojärjestelmä;
GNOME ja KDE Jani Pesu GNOME GNOME (GNU Network Object Model Environment) on graafinen työpöytäympäristö. Käytetään Unixin kaltaisissa käyttöjärjestelmissä.
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
CSS Dreamweaverilla Matti Viitala KaHa/OAMK 2005.
Graafinen käyttöliittymä, osa 1
Ja muut kuvankäsittelyohjelmat
Ydinpalveluiden (käyttäjä, käyttöoikeus, potilas).NET-palvelutoteutus: CoreServiceDemo PlugIT-loppuseminaari Koulutustyöpaja 1: Avoimet ohjelmistorajapinnat.
E –oppikirjan käyttöönotto
GIMP ja muut kuvankäsittelyohjelmat A Linux -järjestelmät TI07TIVE Janne Räsänen.
Pekka Paananen Toni Valkonen OH3. Historia 1994 NCSA:n HTTPd pääkehittäjä erosi NCSA:n palveluksesta syntyi Apache - A Patchy Server sekä Apache Group.
Silverlight Expression Blend 3 työkaluna. Mikäs on Silverlight? (1/2) Pääasiassa teknologia webbiin –Internet Explorer –Mozilla –Opera –Safari.
D OMAINHALLINTATYÖKALUN TOTEUTUS JQUERY JAVASCRIPT - KIRJASTOLLA Insinöörityö Irko Palenius 2009.
Monimedian työkurssi www-teknologioiden rajoitteet Ilmari Laakkonen.
PROJEKTISUUNNITELMA NURKKALA MAARIT & SAARIKKO SANNA Jyväskylän yliopisto syksy 2004.
Ajatuksesta albumiin Digitaalikameran käytön jatkokurssi.
Development Project for Visualizing Metrics
KANSALLISKIRJASTO - Kirjastoverkkopalvelut KOKO Laajennettu projektiryhmä
Aipal-järjestelmän tekniikkaa
KNX - DALI harjoitus 1 Yksittäiset ECG-ohjaukset RATKAISU
Linux pelikäytössä Simo-Pekka Taurama.
Projekti ja tulokset 1997 Resurssit 38,9 htkk, tulokset jaetaan tammikuun alussa 1998 suunniteltu ATM-virtuaali-kytkimen ohjelmisto uudet modulit: IN-rajapinta,
WWW-Sisällönhallintaohjelmat
Tulospalkkaus ja palkkahajonta teollisuudessa ja palvelualoilla
Windows 10 -vinkit Asetukset kuntoon.
CLT132 Tehtävät (viikko 9).
Esityksen transkriptio:

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

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

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

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

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ä

WPF:N KÄYTTÖ FORMSISSA •DEMO

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

FORMSIN KÄYTTÖ WPF:SSÄ •DEMO

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

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

YHTEENSOPIVUUS •DEMO

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

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

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.

KYSYMYKSIÄ?

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