2009-12-18 20 views
12

C'è una domanda simile a WPF versus Windows Forms che ha alcune buone informazioni ma nella mia esperienza personale non vedo alcun motivo per usare WPF su Winforms. Inizialmente, con WPF si parlava molto della funzionalità multi-thread, ma in uso non vedo alcun beneficio.Perché dovrei usare WPF su Winforms? Qualche esempio di WPF che sovraperforma Winforms?

Ho due applicazioni che fanno la stessa cosa, una in WPF e una in Winforms. L'applicazione Winforms allontana l'applicazione WPF in termini di prestazioni (di un fattore 10) e sembra altrettanto bella.

Concesso Sono più abile nelle applicazioni Winforms rispetto a WPF.

+0

WPF> WinForms perché puoi mettere un browser web in un pulsante! ;) – Qberticus

+0

@Qberticus: Non sono sicuro di seguire la tua risposta. Posso facilmente creare un WebBrowserControl e gestire l'evento "Click". –

+0

Cosa vuol dire QBerticus è che il controllo WebBrowserControl sia * all'interno * del controllo Button, sia visivamente che logicamente (non si può dire perché qualcuno lo vorrebbe) –

risposta

15

C'è un'altra discussione sull'argomento qui: When is Windows Forms the correct choice vs WPF?

L'applicazione WinForms soffia l'applicazione WPF via in termini di prestazioni (di un fattore 10) e sembra altrettanto bello.

WPF è di circa più di grafica solo fantasia ... Io non sono un designer, l'inferno non ho alcun sentimento per i colori (ad un punto in cui la mia fidanzata ha deciso Non posso più comprare i miei vestiti) ma io amo WPF. Il supporto DataBinding per esempio è sorprendente per non parlare di quanto sia facile creare un ItemTemplate per un ListBox (ricorda di sovrascrivere i metodi di disegno in Windows Form solo per ottenere 2 righe di testo e un'immagine in un oggetto ListBox?)

Per quanto riguarda le prestazioni ... nella mia esperienza il miglioramento può essere notato solo se si utilizza Windows Vista/7 con una GPU. (E ovviamente il modo in cui scrivi il codice).

Forse è stato un errore da parte di Microsoft pubblicizzare sul mercato che WPF è tutto basato sulla grafica di elefanti rosa mentre fa molto di più. (Hanno commesso un errore simile con il rilascio affrettato di Silverlight 1, che a mio parere avrebbero dovuto saltare tutti insieme).

+5

+1 Sicuramente, i principali vantaggi di WPF sono la grande flessibilità che si ottiene e come scrivere codice molto migliore, come il modello Model-View-ViewModel. –

+3

D'accordo con Timothy e Martinho, riguarda l'architettura. I modelli e l'associazione dei dati sono motivi validi per utilizzare WPF: è possibile ottenere molto di più, in modo molto più semplice e molto più manutenibile. E sicuramente concordato sul fatto che la commercializzazione di WPF da parte di Microsoft come un modo per creare modelli di pulsanti stupidi è stato un errore. È * tutto * sull'architettura. – itowlson

0

WinForms e WPF sono entrambi ottimi framework per cui la domanda è quella più adatta alla propria applicazione. Se hai bisogno di un gui fluido con controlli animati e stili molto a tema, o stai semplicemente creando un'interfaccia grafica molto intuitiva, WPF è molto utile per questo tipo di applicazione. WinForms può essere molto limitativo a volte perché i controlli sono ciò che sono è possibile creare controlli utente per aggiungere cose a loro ma cambiando il loro aspetto può essere difficile se si ha un aspetto molto specifico in mente.

Un buon confronto potrebbe riguardare la differenza tra un'applicazione WinForms e un'applicazione Silverlight. Silverlight e WPF condividono un quadro comune e ti aiuteranno a capire le differenze tra i due.

Dai un'occhiata a questa libreria silverlight e wpf e vedrai alcune delle cose che possono essere fatte in un ambiente wpf.

Silverlight Libreria: http://demos.telerik.com/silverlight/

WPF Libreria: http://demos.telerik.com/wpf/

1

più grande problema con WPF è che il set di strumenti è zoppo e la curva di apprendimento è enorme. Finora l'adozione di WPF è stata molto bassa soprattutto a causa dei problemi che ho appena menzionato. Secondo Microsoft WPF è il futuro e hanno investito molto in esso.Infatti la prossima versione di Visual Studio è scritta in WPF (http://www.onedotnetway.com/writing-visual-studio-2010-shell-in-wpf-reflects-confidence/)

Tuttavia resta ancora da vedere se WPF diventerà mai mainstream. Il framework è fantastico e può fare cose davvero interessanti per lo più legate al piacere degli occhi. Microsoft lo chiama UX, ma in parole povere è un vero piacere per gli occhi. La maggior parte delle applicazioni non ne ha bisogno.

+3

Chiunque sostenga che le cose interessanti che si possono fare in WPF sia * principalmente * relative a eye-candy è 1) qualcuno che ha * giocato * con WPF, ma non ha * learn * WPF, 2) un utente. –

2

Il motivo principale per andare con WPF non è il piacere per gli occhi. I veri vantaggi sono in termini di affidabilità, produttività e possibilità per i tipi di artisti di modificare l'aspetto dell'interfaccia utente senza coinvolgere gli ingegneri.

4

WPF

  1. permette un designer/non-programmatore di migliorare l'aspetto dell'interfaccia utente, separato dal codice. I progettisti possono utilizzare strumenti come Expression Blend per modificare pesantemente l'aspetto di un'app.
  2. la conoscenza necessaria per scrivere WPF è quasi interamente trasportabile per scrivere il codice Silverlight, quindi stai scalando una curva di apprendimento per due tecnologie
  3. è fortemente e attivamente promosso da Microsoft e probabilmente ha più futuro di WinForms. WinForms farà la fine di MFC prima di WPF.

d'altra parte:

  1. la curva di apprendimento è più pesante per WPF di WinForms
  2. il supporto di design è carente rispetto a WinForms, anche se questo potrebbe cambiare con Visual Studio 2010
  3. la corrente tendenza è utilizzare View-ViewModel-Model per creare applicazioni: questo è un ulteriore apprendimento in cima al framework WPF, ma vale la pena se si vuole costruire qualcosa che va oltre la semplice interfaccia utente

Se le prestazioni (velocità e requisiti delle risorse) sono i criteri per una buona piattaforma UI per Windows, il vincitore è un'applicazione Win32 nativa. Adottate un'altra tecnologia per ciò che hanno da offrire e, in ultima analisi, WPF ha molto altro da offrire rispetto a WinForms.

+1

+1. Un punto che non capisco: si menziona l'utilizzo di Blend per modificare l'aspetto dell'app, e poi hai detto che il supporto del designer è carente. –

+0

Designer è parte di Visual Studio, mentre Expression Blend è un prodotto Microsoft separato. –

Problemi correlati