TOC

This article is currently in the process of being translated into Albanian (~99% done).

About WPF:

WPF vs. WinForms

Në kapitullin e mëparshëm, folëm për çfarë është WPF dhe pak për WinForms. Në këtë kapitull, do të përpiqem të krahasoj të dyja, sepse edhe pse shërbejnë për të njëjtën qëllim, ka SHUMË dallime mes tyre. Nëse nuk keni punuar kurrë me WinForms më parë, dhe veçanërisht nëse WPF është framework-i juaj i parë GUI, mund të kalojnë këtë kapitull, por nëse jeni të interesuar për dallimet, atëherë vazhdoni të lexoni.

Dallimi me i rëndesishëm i vetëm midis WinForms dhe WPF eshtë fakti se ndersa WinForms eshte thjesht nje shtrese mbi kontrollat standarde të Windows (p.sh. njè TextBox), WPF është ndërtuar nga fillimi dhe nuk bazohet në kontrollat standarde të Windows në shumicen e situatave. Ky mund të duket si nje dallim i hollèsishëm, por nè tè vèrtetë nuk është, gjë qè do ta vèreni pa dyshim nèse keni punuar kurre me një framework që varet nga Win32/WinAPI.

Një shembull i shkëlqyer i kësaj është një buton me një imazh dhe tekst në të. Ky nuk është një kontroll standard i Windows, kështu që WinForms nuk ju ofron këtë mundësi nga fillimi. Në vend të kësaj, do të duhet të vizatoni imazhin vetë, të implementoni një buton të ri që mbështet imazhe ose të përdorni një kontroll të palës së tretë. Me WPF, një buton mund të përmbajë çdo gjë sepse në thelb është një kufi me përmbajtje dhe gjendje të ndryshme (p.sh. i paprekur, nën kursor, shtypur). Butoni WPF është "pa pamje", ashtu si shumica e kontrollave të tjerë WPF, që do të thotë se mund të përmbajë një gamë kontrollash të tjerë brenda tij. Dëshiron një buton me një imazh dhe disa tekst? Vetëm vendos një kontrol Image dhe një kontrol TextBlock brenda butonit dhe je i gatshëm! Thjesht nuk merrni këtë lloj fleksibiliteti nga kontrollat standard WinForms, kjo është arsyeja pse ka një treg i madh për implementime mjaft të thjeshta të kontrollave si butonat me imazhe dhe kështu me radhë.

Një pikë e dobët e kësaj fleksibiliteti është se ndonjëherë do të duhet të punoni më shumë për të arritur diçka që ishte shumë e lehtë me WinForms, sepse u krijua pikërisht për skenarin që ju duhet. Për fat të keq, në fillim ndodh që ju gjeni veten duke krijuar template për të bërë një ListView me një imazh dhe tekst të rregulluar bukur, diçka që ListViewItem-i i WinForms e bën në një rresht kod.

Ky ishte vetëm një dallim, por si punoni me WPF, do të kuptoni se ky është në fakt arsyeja themelore për shumë dallime të tjera - WPF thjesht po bën gjërat në mënyrën e vet, për të mirën dhe për të keqen. Ju nuk jeni më i kufizuar të bëni gjërat në mënyrën e Windows, por për të fituar këtë lloj fleksibiliteti, paguani me pak më shumë punë kur në të vërtetë jeni duke kërkuar të bëni gjërat në mënyrën e Windows.

Në vijim ēshtë një listë krejt subjektive e avantazheve kryesore të WPF dhe WinForms. Ajo do t'ju japè njè ide mè tè mirè pèr atè me ç'tè pèrballeni.

Avantazhet e WPF

  • Është më i ri dhe, në këtë mënyrë, më i përputhur me standardet aktuale.
  • Microsoft e përdor për shumë aplikacione të reja, si për shembull Visual Studio.
  • Është më fleksibël, kështu që mund të bëni më shumë gjëra pa nevojën për të shkruar ose blerë kontrolle të reja.
  • Kur keni nevojë për të përdorur kontrolle të palës së tretë, zhvilluesit e këtyre kontrolleve do të jenë më të përqendruar në WPF sepse është më i ri.
  • XAML e bën të lehtë krijimin dhe ndryshimin e ndërfaqes grafike, duke lejuar ndarjen e punës midis një dizajneri (XAML) dhe një programuesi (C#, VB.NET etj.).
  • Databinding, që ju lejon të keni një ndarje më të pastër të të dhënave dhe formës së tyre.
  • Përdor akcelerimin e harduerit për të vizatuar ndërfaqen grafike, për performancë më të mirë.
  • Ju lejon të krijoni ndërfaqe grafike për aplikacione Windows dhe aplikacione web (Silverlight/XBAP).

Avantazhet e WinForms

  • Është më i vjetër dhe, në këtë mënyrë, më i provuar dhe testuar.
  • Ka shumë kontrolle të palës së tretë që mund të blini ose të merrni falas.
  • Dizajneri në Visual Studio është ende, në momentin e shkrimit, më i mirë për WinForms se sa për WPF, ku do të duhet të bëni më shumë pjesën tuaj të punës vetë me WPF.