TOC

This article has been localized into Afrikaans by the community.

Oor WPF:

WPF teen WinForms

In die vorige hoofstuk, het ons gepraat oor wat WPF is en 'n bietjie oor WinForms. In hierdie hoofstuk, sal ek probeer om die twee te vergelyk, want alhoewel hul die selfde doel het, is daar BAIE verskille tussen hulle. As jy nog nooit tevore met WinForms gewerk het nie, en veral as WPF jou eerste GUI raamwerk is, kan jy maar hierdie hoofstuk oorslaan, maar lees verder as jy belangstel in die verskille.

Die mees belangrikste verskil tussen WinForms en WPF is die feit dat terwyl WinForms eenvoudig 'n laag bo-op die standaard Windows kontroles is (bv. 'n TextBox), WPF gebou is van die grond af en is in die meeste gevalle nie afhanklik van Windows standaard kontroles nie. Dit is nie so subtiele verskil nie, soos jy sal opmerk as jy ooit met 'n raamwerk gewerk het wat afhanklik is van Win32/WinAPI.

'n Goeie voorbeeld hiervan is die button met 'n image en text daarop. Dis nie a standaard Windows kontrole nie, so WinForms gee nie 'n klaar gemaakte weergawe daarvan nie. Dit beteken jy sal moet self die image teken, jou eie button implementeer wat images ondersteun of 'n 3de party kontrole gebruik. Met WPF, kan 'n button enige iets bevat want dit is basies net 'n border met inhoud en verskillende state (bv. untouched, hovered, pressed). Die WPF button is "look-less", net soos meeste ander WPF kontroles, wat beteken dat dit 'n reeks ander kontroles kan bevat. Jy soek 'n button met 'n image en text? Sit net 'n Image en TextBlock kontroles in die button en jy's klaar. Hierdie soort buigsaamheid kry jy nie in standaard WinForms kontroles nie. Dis waarom daar 'n groot mark is vir eenvoudige implementasies van kontroles soos buttons met images ens.

Die nadeel van hierdie buigsaamheid is dat jy soms harder moet werk om dieselfte ding te doen wat maklik was met WinForms, want dit was net geskep vir die geval waarvoor jy dit nodig het. Te minste dis hoe dit voel in die begin, wanneer jy jouself kry templates maak vir 'n ListView met 'n image en mooi gespasieerde text, iets wat die WinForms ListViewItem al klaar doen in een lyn kode.

Dit was net een verskil. Maar soos jy met WPF werk sal jy besef dat dit die onderliggende rede is vir baie van die ander verskille - vir beter of slegter, WPF doen eenvoudig net dinge op sy eie manier. Jy's nie meer beperk om dit op Windows se manier te doen nie. Maar, om hierdie soort buigsaamheid te kry behels dit 'n bietjie meer werk wanneer jy werklik net dinge op Windows se manneer wil doen.

Die volgende is 'n subjektiewe lys van die sleutel voordele van WPF en WinForms. Dit sal jou 'n beter idee gee vaarvoor jy jouself inlaat.

WPF Voordele

  • Dit is nuwer en so ook meer in lyn met huidige standaarde
  • Microsoft gebruik dit vir baie van die nuwe applikasies, bv. Visual Studio
  • Dis meer buigsaam, so jy kan meer ding met dit doen sonder om nuwe kontroles te skryf of te koop
  • Wanneer jy wel 'n 3de party kontrole nodig het, sal die ontwikkelaar van hierdie kontrole tien teen een fokus op WPF, want dit is nuwer
  • XAML maak dit maklik om jou GUI te skep en wysig, en laat jou toe om die werk op te deel tussen die ontwerper (XAML) en die programmeerder (C#, VB.NET ens.)
  • Databinding, wat jou 'n better skeiding gee tussen data en uitleg
  • Dit gerbuik hardeware versnelling om die GUI vinniger te teken
  • Dit laat jou toe om gebruiker koppelvlakke vir beide Windows en web applikasies te maak (Silverlight/XBAP)

WinForms voordele

  • Dis ouer maar ook meer getoets
  • Daars alreeds baie 3de party kontroles what jy kan koop of gratis kry
  • Die ontwerper in Visual Studio is nog steeds beter vir WinForms as vir WPF, waar jy meer werk sal moet doen met WPF