TOC

This article has been localized into Finnish by the community.

WPF:stä:

WPF verrattuna WinFormsiin

Edellisessä luvussa puhuimme siitä, mikä WPF on ja hieman WinFormsista. Tässä luvussa vertaamme näitä kahta, koska vaikka ne palvelevat samaa tarkoitusta, niiden välillä on PALJON eroja. Jos et ole koskaan työskennellyt WinFormsin kanssa aiemmin, ja varsinkin jos WPF on ensimmäinen GUI-kehyksesi, voit ohittaa tämän luvun, mutta jos olet kiinnostunut eroista, lue eteenpäin.

Tärkein yksittäinen ero WinFormsin ja WPF:n välillä on se, että vaikka WinForms on yksinkertaisesti kerros tavallisten Windows-ohjausobjektien (esim. TextBox) päällä, WPF on rakennettu tyhjästä eikä turvaudu tavallisiin Windows-ohjaimiin lähes missään tilanteissa. Tämä saattaa tuntua hienovaraiselta erolta, mutta se ei todellakaan ole, minkä huomaat varmasti, jos olet koskaan työskennellyt kehyksen kanssa, joka riippuu Win32 / WinAPI: sta.

Hyvä esimerkki tästä on painike, jossa on kuva ja teksti. Tämä ei ole tavallinen Windows-kontrolli, joten WinForms ei tarjoa sinulle tätä mahdollisuutta automaatisesti. Sen sijaan sinun on piirrettävä kuva itse, toteutettava oma painike, joka tukee kuvia tai käytettävä 3. osapuolen ohjausta. WPF: ssä painike voi sisältää mitä tahansa, koska se on pohjimmiltaan raja, jossa on sisältöä ja erilaisia tiloja (esim. koskematon, leijuva, painettu). WPF-painike on "look-less", kuten useimmat muutkin WPF-ohjaimet, mikä tarkoittaa, että se voi sisältää joukon muita säätimiä. Haluatko painikkeen, jossa on kuva ja tekstiä? Laita vain Image- ja TextBlock-ohjausobjekti painikkeen sisään ja olet valmis! Et yksinkertaisesti saa tällaista joustavuutta tavallisista WinForms-kontrolleista, minkä vuoksi on olemassa suuret markkinat melko yksinkertaisille kontrollien toteutuksille, kuten painikkeille, joissa on kuvia ja niin edelleen.

Tämän joustavuuden haittapuolena on, että joskus sinun on käytettävä enemmän aikaa saavuttaaksesi jotain, joka oli erittäin helppoa WinFormsilla, koska se luotiin juuri sitä skenaariota varten, johon tarvitset sitä. Ainakin siltä se tuntuu alussa, kun huomaat luovasi malleja tehdäksesi ListView-näkymän, jossa on kuva ja hienosti kohdistettu teksti, mitä WinForms ListViewItem tekee yhdellä koodirivillä.

Tämä oli vain yksi ero, mutta kun työskentelet WPF: n kanssa, huomaat, että se on itse asiassa perimmäinen syy moniin muihin eroihin - WPF yksinkertaisesti tekee asioita omalla tavallaan, hyvässä ja pahassa. Sinun ei enää ole pakko tehdä asioita Windowsin tavalla, mutta saadaksesi tällaisen joustavuuden, joudut tekemään enemmän töitä jos haluat tehdä asiat Windowsin tavalla.

Seuraavassa on täysin subjektiivinen luettelo WPF: n ja WinFormsin tärkeimmistä eduista. Sen antaa sinulle paremman käsitys eroista .

WPF:n hyödyt

  • Se on uudempi ja siksi sopii paremmin viimeisimpiin standardeihin
  • Microsoft käyttää sitä moniin uusiin sovelluksiin, kuten Visual Studioon
  • Se on joustavampi, joten voit tehdä enemmän asioita joutumatta itse kirjoittamaan tai hankkimaan uusia kontrolleja
  • Kun sinun on käytettävä 3. osapuolen kontrolleja, näiden kontrollien kehittäjät keskittyvät todennäköisesti enemmän WPF: ään, koska se on uudempi
  • XAML helpottaa graafisen käyttöliittymän luomista ja muokkaamista sekä työn jakamista suunnittelijan (XAML) ja ohjelmoijan (C#, VB.NET jne.) kesken
  • Databinding, mikä mahdoillistaa selvemmän eron datan ja ulkoasun välillä
  • Käyttää laitteistokiihdytystä graafisen käyttöliittymän piirtämiseen paremman suorituskyvyn aikaansaamiseksi
  • Mahdollistaa tehdä käyttäjärajapintoja sekä Windows että web sovelluksiin (Silverlight/XBAP)

WinForms:n hyödyt

  • Se on vanhempi ja siksi enemmän käytetty ja testattu
  • Siinä on valmiiksi 3. osapuolen kontrolleja, joita voit joko ostaa tai saada ilmaiseksi
  • Visual Studion kehitysympäristö on edelleen, tällä hetkellä, parempi WinFormsiin kuin WPF:n. WPF:ssä joudut itse tekemään enemmän. töitä.