TOC

This article has been localized into Slovenian by the community.

O WPF:

WPF proti WinForms

V prejšnjem poglavju smo predstavili WPF in WinForms. V tem poglavju bomo primerjali obe programski ogrodji. Čeprav služita istemu namenu, je med njima veliko razlik. Če še niste nikoli delali z WinForms, in še posebej, če je WPF vaše prvo GUI programsko ogrodje, lahko preskočite to poglavje. Če pa vas zanimajo razlike, potem berite naprej.

Najpomembnejša razlika med WinForms in WPF je dejstvo, da je WinForms preprosto plast nad standardnimi graficnimi elementi za Windows (npr. TextBox), je WPF zgrajen na novo in se ne zanaša na standardne graficne elemente operacijskega sistema Windows. To se morda zdi majhna razlika, vendar to ni res. To boste zagotovo opazili, če ste kdaj delali z ogrodjem, ki je odvisen od Win32/WinAPI.

Odličen primer te razlike je gumb s sliko in besedilom na njem. Tak element ni standarden element v operacijskem sistemu Windows, zato vam WinForms ne ponuja te možnosti kot privzeto. Namesto tega morate tak element sami izrisati, razviti lasten gumb, ki podpira slike ali uporabiti graficne elemente, ki so jih razvili drugi. Z WPF lahko gumb vsebuje poljubno vsebino, ker je v osnovi zgolj okvir z vsebino in različnimi stanji (npr. nedotaknjen, ali pritisnjen). Gumb WPF je "privzeto brez izgleda", kot tudi večina drugih WPF elementov, kar pomeni, da lahko vsebuje več drugih elementov v njem. Če želite gumb s sliko in nekaj besedila preprosto vstavite sliko in element z oznako znotraj gumba in to je to! Take vsestranskosti preprosto ne morete dobiti z uporabo standardnih elementov WinForms. Posledica tega je velik trg za precej preproste implementacije elementov, kot so gumbi s slikami in podobno.

Pomanjkljivost te prilagodljivosti je, da se boste včasih morali bolj potruditi, da dosežete nekaj, kar je bilo z WinFormsom zelo enostavno, saj je bilo ustvarjeno samo za scenarij, ki ga potrebujete. Vsaj tako se zdi na začetku, ko se znajdete pri ustvarjanju predloge za izdelavo ListView s sliko in nekaj lepo poravnanim besedilom, kar omogoča WinForms ListViewItem v eni sami vrstici kode.

To je bila samo ena razlika, toda ko boste delali z WPF, boste ugotovili, da je pravzaprav to osnovni razlog za številne druge razlike - WPF preprosto dela stvari po svoje. Sedaj nisi več omejen, da bi stvari opravljal po sistemu Windows, vendar za tovrstno prilagodljivost plačaš z malo več dela, ko iščeš stvarida bi delalo po sistemu Windows.

Sledi popolnoma subjektiven seznam ključnih prednosti za WPF in WinForms. Naj bi vam dalo boljšo predstavo o tem, v kaj se spuščate.

WPF prednosti

  • Je novejši in s tem bolj v koraku s trenutnimi standardi
  • Microsoft ga uporablja za veliko novih aplikacij, npr. Visual Studio
  • Je bolj prilagodljiv, tako da lahko naredite več stvari, ne da bi morali pisati ali kupovati nove kontrole
  • Ko boste morali uporabiti kontrole tretjih oseb, bodo razvijalci teh kontrol verjetno bolj osredotočeni na WPF, ker je novejši
  • XAML olajša ustvarjanje in urejanje GUI-ja ter omogoča, da se delo razdeli med oblikovalca (XAML) in programerja (C #, VB.NET itd.)
  • Podatkovno povezovanje vam omogoča boljšo razmejitev med podatki in izgledom
  • Z a risanje GUI-ja uporablja strojni pospešek, za boljšo zmogljivost
  • Omogoča vam izdelavo uporabniških vmesnikov za aplikacije Windows in spletne aplikacije (Silverlight / XBAP)

WinForm prednosti

  • Starejši je in s tem bolj preizkušen
  • Obstaja že veliko kontrol s strani tretjih oseb, ki jih lahko kupite ali dobite brezplačno
  • Oblikovalec v Visual studiu je še vedno, v času tega pisanja, boljši za WinForms kot za WPF, kjer boste morali za WPF več dela opraviti sami