So che questo è un vecchio post, ma penso che sia ancora una domanda valida.
Ho utilizzato WinForms per 3 anni presso la prima azienda per cui ho lavorato. C'erano alcuni ottimi programmatori lì, e hanno trovato alcuni modi molto intelligenti per fare cose molto interessanti. WinForms ha superato la prova del tempo. È una piattaforma solida, affidabile ed efficiente. Molte persone e molte aziende grandi e piccole hanno utilizzato WinForms da anni e la tecnologia si è dimostrata più e più volte. L'inerzia del genere è difficile da combattere, anche se sei Microsoft.
Ancora, WPF è sicuramente il futuro. Microsoft lo ha reso chiaro con prodotti come Visual Studio 2010 ed Expression Blend. (Nell'utilizzo di WPF per progetti interni, Microsoft è stata costretta a risolvere molti dei problemi, come il rendering dei caratteri e la velocità, che impedivano alle persone di adottarli inizialmente Visual Studio 2010 mostra che WPF è stato a lungo pronto per la produzione
Quindi, è meglio scrivere il tuo programma in WinForms o WPF? La risposta è questa: WPF. Dico questo per due ragioni: in primo luogo, perché Microsoft lo sta supportando internamente, possiamo supporre che sarà in giro per un Microsoft ci ha mostrato che è il prossimo strumento di scelta che mi porta al mio prossimo punto: è diventato superiore a WinForms (alcune persone con cui ho parlato non sono d'accordo, ma è la verità comunque, e sta diventando più ovvio ogni giorno) .WPF ha una serie di funzionalità che WinForms (probabilmente) non verrà mai assegnate, come il supporto integrato di dati stupefacenti e le animazioni basate sulla timeline che lo rendono è facile creare fantastici temi per le tue app e i progettisti accattoneranno a cambiare idea.C'è molto di più in WPF di quanto possa mai essere descritto in un commento, ma questi sono due grandi per me :)
Detto questo, so che non c'è niente che puoi fare in WPF che non puoi fare in WinForms. Puoi fare qualsiasi cosa in qualsiasi lingua se vuoi abbastanza male. Il punto è che, dove WinForm ti lascerà perlustrando google per come qualcun altro ha fatto qualcosa di interessante, WPF viene fornito con il supporto integrato per tutte le funzionalità che Microsoft considera il futuro di Windows e li mette a portata di mano.
Nel corso del tempo, le persone saranno abituate alle nuove funzionalità direttamente integrate in Windows e si aspetteranno che siano disponibili in tutte le applicazioni che utilizzano. Questo raggiungerà il punto in cui tutto ciò che non li supporta diventerà goffo, meno utilizzabile e sembrerà meno spendibile spendere soldi. (Vedo l'integrazione Touch come l'esempio più ovvio di questo: sebbene ci siano soluzioni touch screen che si agganciano a un monitor ed emulano un mouse, su qualsiasi computer, la tecnologia touch screen ha fatto molta strada e con Windows 8 che sfoca la linea tra il desktop e i dispositivi mobili, le persone probabilmente vorranno utilizzare le applicazioni in un modo che sarà eccezionalmente difficile da implementare se l'applicazione utilizza WinForms.)
Prima o poi, credo che il supporto e lo sviluppo per WinForms si fermeranno, e tutti quelli che si sono lasciati indietro saranno costretti a fare il porto, e in fretta. Tuttavia, ci sono troppi programmi là fuori che si basano su WinForms per Microsoft per essere in grado di rilasciarlo nel prossimo futuro. Chi sa cosa accadrà. Forse WinForms sarà per Microsoft ciò che i processori Itanium sono per Intel, il prodotto che ha abbastanza utenti per mantenerlo attivo, anche se ci sono soluzioni migliori disponibili. (http://arstechnica.com/business/news/2011/06/ask-ars-why-itaniumask-ars-with-xeons-improvement-why-bother-with-itanium.ars)
Quindi il mio consiglio sarebbe questo: per quanto riguarda il nuovo sviluppo, passare a WPF. Invia del personale ai corsi di formazione o lasciali giocare per un po 'in modo che possano avere un'idea migliore della tecnologia. La curva di apprendimento sarà ripida, ma fare ciò aumenterà le abilità della tua squadra perché imparando WPF, saranno anche sulla buona strada per imparare SilverLight, che è abbastanza simile a WPF per le persone che hanno familiarità con WPF per essere in grado per impararlo rapidamente, ma è progettato per il web piuttosto che per il desktop. Questo è utile perché le app riscritte in WPF saranno molto più facili da convertire in app Web in un secondo momento. WPF è nuovo, ma è stato creato per una ragione, non semplicemente per creare qualcosa che le persone possano imparare. È stato progettato per rendere le applicazioni più facili da usare, intuitive e portatili. È stato progettato per aiutare gli sviluppatori a far sì che le loro applicazioni si adattino alla nuova era dei computer.
Per quanto riguarda le applicazioni scritte in WinForms: Penso che sia sicuro assumere che WinForms sarà ancora supportato per un periodo piuttosto lungo semplicemente a causa della quantità di supporto che ha guadagnato. Vorrei raccomandare al tuo team di familiarizzare con WPF e iniziare lentamente a trasferire le tue applicazioni su WPF. Prenditi tutto il tempo che Microsoft consente e non affrettare il processo, ma ricorda sempre che, in un modo o nell'altro, i giorni di WinForms sono finiti, e anche se nessuno può essere sicuro di ciò che accadrà, il supporto per il prodotto precedente verrà eliminato non appena può essere giustificato. Anche se le applicazioni WinForms vengono mantenute in giro per molti anni, è importante ricordare che i tempi stanno cambiando e tutti noi dobbiamo cambiare con loro.
Dipende davvero ... puoi darci più informazioni sulla tua applicazione? – Brann
Dup? http://stackoverflow.com/questions/388711/when-is-winforms-the-correct-choice-vs-wpf –
Non duplo - questo ha un 3D/DirectX piegato ad esso. –