c # - Hvilke Windows GUI-rammer er i øjeblikket værd at lære?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg planlægger at skrive en Windows-app for at hjælpe mig med nogle sonderende testopgaver (notering, datagenerering, fejllogning), og jeg har fast i det tidlige stadium at vælge en ramme/et sprog. Min eneste erfaring er med webudvikling, og fra hvad jeg kan se, WinForms, WPF, Silverlight, Swing osv. Er alle samtidig forældede og blomstrende afhængigt af hvem du spørger.


Selv om mit hovedmål er at oprette appen, vil jeg selvfølgelig lære noget nyttigt, mens jeg gør det, snarere end at samle færdigheder med noget, som aldrig kommer til at ses på et projekt på arbejdspladsen. Hvilke Java- eller C # -rammer vil folk anbefale at lære?

Bedste reference


Native applikationer



Til beskæftigelse :
Nå er de fleste virksomheder (i det mindste de fleste virksomheder fra Oman og UAE, hvor jeg bor) i dag langsomt migreret til skyen. Men der er stadig nogle muligheder for native app udvikling. Den mest krævende ramme i dag er, (nej ikke WPF), det er Windows Forms! [2] [3]


Hvorfor slette gamle Windows Forms i stedet for den fantastiske WPF? En grund til legacy apps . I dag starter de fleste virksomheder kun småskala GUI-applikationsprojekter, primært forretningsapplikationer. For det vil WPF være meget dyrt, da de allerede har en arbejdsstyrke i Windows Forms, og en masse arvskode, men for WPF skal de lave en ny kodebase, og det er ret risikabelt. Den bedste ting at holde dig ansat er Windows Forms.


Til nye projekter : Men hvis du ved 'værd at lære', mener du, ny, ambitiøs og glamourøs. Så kan WPF være det bedste valg for dig. Det afhænger af, hvad dine krav er, virkelig.


The Cloud



Nu, for skyen. Java FX og Silverlight er begge i øjeblikket hoved til hoved. Men Java FX kan have en kant, da den understøtter et større antal platforme. Men så igen har Silverlight al kraft og ressourcer fra Microsoft bagved den, og den er ideel til udvikling af Windows Phone.


Sammenligning



Til sammenligning er her hvad du får ved hvert værktøjssæt:


Windows Presentation Foundation :



  • Microsoft's magt og ressourcer

  • Ideel til oprettelse af nye skrivebordsprogrammer

  • Eye candy

  • Awesome API

  • XAML, den bedste måde at adskille design fra logik

  • Opret apps til Cloud (men de arbejder kun på Windows med .NET selv)

  • Windows Phone kan køre en delmængde af WPF



Windows Forms :



  • Brugt til at besidde Microsoft's magt og ressourcer, nu har WPF det

  • Ideel til at opretholde gamle applikationer

  • En veluddannet arbejdsstyrke, hvis du er en iværksætter

  • Smukt modent API

  • Understøtter flere platforme end WPF (via Mono)



Java FX :



  • Opret apps til skyen

  • Understøttet af Oracle

  • Pretty nice API

  • Cross-platform, kører på de fleste pc'er, smartphones er et problem.



Silverlight :



  • Opret apps til skyen

  • Understøttet af Microsoft

  • Pretty awesome API

  • XAML

  • Cross-platform, kører på Mac og PC, kører på Windows Phone.



GTK # :



  • Cross-platform, kører på de fleste pc'er, kører på ingen smart telefon.

  • Underbygget af Open Source-verdenen

  • Godkendt af Mono

  • Ideel til oprettelse af Apps for Gnome.



Swing :



  • Cross-platforme, kører på de fleste pc'er, smartphones er et problem.

  • Næsten moden

  • Ideel til at skabe 2D-spil, der bruger Java2D



Konklusion



Som du siger:



  Selv om mit hovedmål er at oprette appen, vil jeg selvfølgelig lære noget nyttigt, mens jeg gør det, snarere end at samle færdigheder med noget, som aldrig kommer til at ses på et projekt på arbejdspladsen.



De rammer, du sandsynligvis ser på arbejdspladsen (hvis du ikke har det for almindelige virksomheder som Microsoft, Oracle, Google osv.), Er Windows Forms og WPF. I det mindste er det de fleste virksomheder bruger her. Så det er det, jeg anbefaler. JavaFX og Silverlight ser også ud som de har potentiale og kan bruges i den nærmeste fremtid.

Andre referencer 1


WPF. Bedste support til Windows. BTW, det er ikke forældet.

Andre referencer 2


En mulighed for dig kan være at oprette din applikation som HTML + Javascript og køre den i din desktop-applikation ved at indlejre en browser-motor (IE eller noget andet). Hvis du har brug for native API'er, er der mekanismer til at gøre disse tilgængelige til browserens Javascript-kode.

Andre referencer 3


Java FX 2.0 virker meget lovende og lever nu, hvis swing ser forældet ud til dig. Bemærk at den har lidt til fælles med tidligere versioner. Se for eksempel denne korte sammenligning med swing. Og oracle sagde, at de planlægger at åbne kilden. [4] [5]


Nu er det ret nyt, så usandsynligt, at det bliver brugt i eksisterende applikationer.